В таблице HTML cellpadding и cellspacing могут быть установлены следующим образом:
<table cellspacing = "1" cellpadding = "1">
Как сделать то же самое с помощью CSS?
Используйте border-spacing на table и padding на td.






Кроме того, если вам нужен cellspacing = "0", не забудьте добавить border-collapse: collapse в свою таблицу стилей table.
Насколько я знаю, установка полей для ячеек таблицы на самом деле не имеет никакого эффекта. Настоящий CSS-эквивалент для cellspacing - border-spacing, но он не работает в Internet Explorer.
Вы можете использовать border-collapse: collapse, чтобы надежно установить интервал между ячейками равным 0, как уже упоминалось, но для любого другого значения, я думаю, единственный кроссбраузерный способ - продолжать использовать атрибут cellspacing.
В наше время эта реальность в высшей степени отстойна.
Это почти правильно, но border-collapse работает только в IE 5-7, если для таблицы еще не определен атрибут cellspacing. Я написал исчерпывающий ответ, который объединяет все правильные части других ответов на этой странице на случай, если это будет полезно.
Если честно, кого волнует Internet Explorer? Любой, кто его использует, должен знать, что сломанные веб-сайты - ошибка их - из-за использования такого некачественного браузера. Сайты не должны иметь с этим дело. Пусть заблудится Internet Explorer. Забудьте о поддержке. Нам это не нужно, а развиваться - это боль.
table
{
border-collapse: collapse; /* 'cellspacing' equivalent */
}
table td, table th
{
padding: 0; /* 'cellpadding' equivalent */
}
На самом деле это единственное, что я мог заставить работать на себя, хотя я применил информацию к идентификатору, чтобы не быть слишком общим.
Это эквивалент cellspacing=0. Эквивалент для cellspacing=1 совершенно другой. См. Принятый ответ.
Разве table td и table th не должны быть просто td и th соответственно? Это работает в любом случае, но меньший селектор означает немного более быстрое сопоставление
@Cole На самом деле, я думаю, это должны быть table > tr > td и table > tr > th. Это почти так же быстро, как tr и th, и гарантированно работает, если у вас есть вложенная таблица. Просто мой 2с
@ aboveyou00, но нужен ли селектор table? IIRC, <td> недействителен, если он не находится внутри <tr>.
@Cole Да, но может быть другая таблица, вложенная где-нибудь в ячейку таблицы. Если вы не дадите конкретный класс ячейкам в одной таблице, вы не сможете применить правило только к внешней таблице.
TBH. Для всех забав с CSS вы можете просто использовать cellpadding = "0"cellspacing = "0", поскольку они не устарели ...
Кто-то другой, предлагающий маржу на <td>, очевидно, не пробовал этого.
На самом деле они устарели в html5.
Основы
Для управления "заполнением ячеек" в CSS вы можете просто использовать padding для ячеек таблицы. Например. для 10 пикселей "cellpadding":
td {
padding: 10px;
}
Для "ячеек" вы можете применить свойство CSS border-spacing к своей таблице. Например. для 10 пикселей «пространства ячеек»:
table {
border-spacing: 10px;
border-collapse: separate;
}
Это свойство даже позволит разделить интервалы по горизонтали и вертикали, чего нельзя было сделать с помощью "ячеек" старой школы.
Проблемы в IE ≤ 7
Это будет работать почти во всех популярных браузерах, кроме Internet Explorer до Internet Explorer 7, где вам почти не повезло. Я говорю «почти», потому что эти браузеры все еще поддерживают свойство border-collapse, которое объединяет границы соседних ячеек таблицы. Если вы пытаетесь исключить расстояние между ячейками (то есть cellspacing = "0"), то border-collapse:collapse должен иметь тот же эффект: нет места между ячейками таблицы. Однако эта поддержка содержит ошибки, поскольку не отменяет существующий атрибут HTML cellspacing в элементе таблицы.
Вкратце: для браузеров, отличных от Internet Explorer 5-7, border-spacing справится с вами. Для Internet Explorer, если ваша ситуация подходит (вам нужно 0 ячеек, а в вашей таблице он еще не определен), вы можете использовать border-collapse:collapse.
table {
border-spacing: 0;
border-collapse: collapse;
}
Примечание. Подробный обзор свойств CSS, которые можно применить к таблицам и для каких браузеров, см. В этом фантастическая страница Quirksmode.
cellpadding = "0" по-прежнему может иметь значение в Chrome 13.0.782.215, даже если к таблице применены border-collapse: collapse и border-spacing.
Это, безусловно, имеет смысл из-за специфики css, поэтому вам может потребоваться применить стили к идентификатору css для максимальной специфичности. Не уверен, что это переопределит значения атрибутов во всех случаях, но это место для начала проверки.
@LeeWhitney вам нужно установить padding: 0 в ячейках таблицы.
Это немного не по теме, но атрибуты cellpadding и cellspacing в HTML5 удалены, так что CSS - единственный выход сейчас.
Всем привет. Я обновил ответ для ясности, включая раздел о добавлении ячеек, который, на мой взгляд, был очевиден (просто используйте «заполнение»). Надеюсь, теперь это более полезно.
Это НЕ хороший ответ. Он говорит, что добавьте этот CSS, который применит его ко всем таблицам и ячейкам на странице. Что делать, если у вас есть несколько таблиц на странице и вам нужны разные поля ячеек или интервалы для каждой из них?
Правда, @vapcguy, в любой из бесконечно изменяемых других ситуаций, в которых вы можете стилизовать таблицу, вам нужно будет определить более конкретные селекторы. Выше отмечены как примеры.
Заполнение по умолчанию не то же самое. Например, если ваша ячейка таблицы имеет цвет фона, то заполнение также будет включать этот фон. Не совсем «расстояние между ячейками». Вот почему это называется «заполнение». Естественно, маржа должна работать с ячейками таблицы, но это не так, и я не тот, кто ее нарушил.
Обратите внимание, что border-collapse:collapse НЕ эквивалентен cellspacing = "0". В первом случае получается одна линия между ячейками, а во втором - две линии между ячейками.
Для тех, кто хочет ненулевое значение расстояния между ячейками, у меня сработал следующий CSS, но я могу протестировать его только в Firefox.
См. Ссылку Quirksmodeразмещено в другом месте для подробностей совместимости. Похоже, это может не работать со старыми версиями Internet Explorer.
table {
border-collapse: separate;
border-spacing: 2px;
}
Этот взлом работает для Internet Explorer 6 и более поздних версий, Гугл Хром, Firefox и Опера:
table {
border-collapse: separate;
border-spacing: 10px; /* cellspacing */
*border-collapse: expression('separate', cellSpacing = '10px');
}
table td, table th {
padding: 10px; /* cellpadding */
}
Объявление * предназначено для Internet Explorer 6 и 7, и другие браузеры будут его игнорировать.
expression('separate', cellSpacing = '10px') возвращает 'separate', но оба оператора выполняются, так как в JavaScript вы можете передать больше аргументов, чем ожидалось, и все они будут оценены.
для тех, кто пытается реагировать на электронные письма, обратите внимание, что * не распознается Outlook 2007+ (использует слово в качестве механизма рендеринга) campaignmonitor.com/css
Простое решение этой проблемы:
table
{
border: 1px solid #000000;
border-collapse: collapse;
border-spacing: 0px;
}
table td
{
padding: 8px 8px;
}
Поведение браузера по умолчанию эквивалентно:
table {border-collapse: collapse;}
td {padding: 0px;}

Устанавливает расстояние между содержимым ячейки и стенкой ячейки
table {border-collapse: collapse;}
td {padding: 6px;}

Управляет расстоянием между ячейками таблицы
table {border-spacing: 2px;}
td {padding: 0px;}

table {border-spacing: 2px;}
td {padding: 6px;}

table {border-spacing: 8px 2px;}
td {padding: 6px;}

Note: If there is
border-spacingset, it indicatesborder-collapseproperty of the table isseparate.
Здесь вы можете найти старый способ HTML.
Как исчезает интервал вокруг стола? Когда я устанавливаю «border-spacing: 8px 12px, он добавляет интервал не только между, но и между границей таблицы и внешними ячейками! Но это не изображено на изображениях здесь; они находятся на одном уровне с левым краем».
@ 2astalavista И, к сожалению, если кто-то захочет удалить эффект внешнего интервала, это не сработает с этими атрибутами CSS.
@Kaz Возможно, вам понадобится использовать отрицательный запас, чтобы скрыть эту раздражающую часть.
Отступ по умолчанию на TD обычно составляет 1 пиксель, а не 0.
Осторожно: border-spacing:horizontal vertical;, тогда как, например, padding:vertical horizontal;.
Оберните содержимое ячейки с помощью div, и вы можете делать все, что захотите, но вам нужно обернуть каждую ячейку в столбце, чтобы получить однородный эффект. Например, чтобы просто расширить левое и правое поля:
Итак, CSS будет,
div.cellwidener {
margin: 0px 15px 0px 15px;
}
td.tight {
padding: 0px;
}<table border = "0">
<tr>
<td class = "tight">
<div class = "cellwidener">My content</div>
</td>
</tr>
</table>Да, хлопотно. Да, работает с Internet Explorer. Фактически, я тестировал это только с Internet Explorer, потому что это все, что нам разрешено использовать на работе.
Хотел бы я проголосовать больше ... Первый пример, который не повторяет другие, и тот, который показывает, как ограничить эффект одной таблицей или ячейкой, а не всеми ими на странице !!!
Насколько я понимаю из классификации W3C, <table> предназначены только для отображения данных.
Основываясь на этом, я обнаружил, что намного проще создать <div> с фоном и всем остальным и иметь таблицу с плавающими над ней данными, используя position: absolute; и background: transparent; ...
Он работает в Chrome, Internet Explorer (6 и новее) и Mozilla Firefox (2 и новее).
Поля используются (или в любом случае предназначены) для создания разделителя между элементами контейнера, такими как <table>, <div> и <form>, а не <tr>, <td>, <span> или <input>. Использование его для чего-либо, кроме элементов контейнера, заставит вас заняться настройкой вашего сайта для будущих обновлений браузера.
OP никогда не указывал, для чего он использовал таблицу.
Я использовал !important после краха-коллапса, как
border-collapse: collapse !important;
и у меня это работает в IE7. Кажется, переопределяет атрибут ячейки.
!important потребуется только для переопределения другие настройки CSS в сложной ситуации (и даже тогда в большинстве случаев это неправильный подход).
Также повторение ответа Дэна просто добавляет !important, который можно было бы включить в качестве комментария вместо другого ответа.
Попробуй это:
table {
border-collapse: separate;
border-spacing: 10px;
}
table td, table th {
padding: 10px;
}
Или попробуйте это:
table {
border-collapse: collapse;
}
table td, table th {
padding: 10px;
}
Просто используйте border-collapse: collapse для своего стола и padding для th или td.
table th,td {
padding: 8px 2px;
}
table {
border-collapse: separate;
border-spacing: 2px;
}
CSS:
selector{
padding:0 0 10px 0; // Top left bottom right
}
Просто используйте правила заполнения CSS с данными таблицы:
td {
padding: 20px;
}
И для интервала между границами:
table {
border-spacing: 1px;
border-collapse: collapse;
}
Однако это может создать проблемы в старых версиях браузеров, таких как Internet Explorer, из-за реализации блочной модели diff.
Этот стиль предназначен для полный сброс таблиц - клетка, расстояние между ячейками и границы.
В моем файле reset.css был такой стиль:
table{
border:0; /* Replace border */
border-spacing: 0px; /* Replace cellspacing */
border-collapse: collapse; /* Patch for Internet Explorer 6 and Internet Explorer 7 */
}
table td{
padding: 0px; /* Replace cellpadding */
}
td {
padding: npx; /* For cellpadding */
margin: npx; /* For cellspacing */
border-collapse: collapse; /* For showing borders in a better shape. */
}
Если margin не работает, попробуйте установить display из tr на block, и тогда маржа будет работать.
Как насчет добавления стиля непосредственно в саму таблицу? Это вместо использования table в вашем CSS, что является подходом ПЛОХОЙ, если у вас есть несколько таблиц на вашей странице:
<table style = "border-collapse: separate;border-spacing: 2px;">
<tr>
<td style = "padding: 4px 4px;">Some Text</td>
</tr>
</table>
Помещение «style» в тег таблицы хуже, чем «table # someId» в вашем CSS, поскольку стили должны быть отделены от содержимого. Но главный вопрос в том, как преобразовать устаревший html в правильный css. Что вы сделали правильно, но на самом деле ничего не добавили в свой ответ и сосредоточились на несвязанной проблеме.
Ничего не добавлено ?! Я добавил, чтобы сосредоточиться на том, как каждый другой ответ здесь в основном говорит об использовании td { padding: ... } или table { border-spacing: ... } вместо того, чтобы применять его непосредственно к таблице. Те ничего не добавляют. Как я уже сказал, когда у вас есть несколько таблиц на вашей странице и вы не хотите на них влиять, вы этого не хотите! Нам не нужна целая страница с ответами «Используйте таблицу стилей!», Хотя, возможно, это последнее, что вам нужно, потому что вам нужно форматирование только для одной ячейки или таблицы. Это когда применение его к table или td нежелательно, а создание совершенно нового класса для него - это излишне.
В каждом другом ответе используется таблица стилей, потому что исходный вопрос был «как я могу сделать это с помощью css». Если бы вопрос был «как я могу заставить css воздействовать только на эту одну таблицу», то ваш ответ был бы более подходящим (хотя я все же предпочел бы table#someId).
Технически встроенные стили по-прежнему являются CSS, только без использования таблиц стилей, но я понимаю вашу точку зрения.
Как насчет того, чтобы просто добавить класс в таблицу?
Потому что идея, лежащая в основе класса, заключается в возможности повторного использования. Для одноразового использования это не имеет особого смысла и является излишним, ИМХО.
Downvoter, не могли бы объяснить? Что касается других комментариев в пользу table или td в таблице стилей, я все еще считаю это плохой практикой. Если у вас есть только одна таблица, на которую вы хотите повлиять, как я сделал, когда искал это в Google, это последнее, что вам нужно, и почему я опубликовал это. Просто потому, что обычно вы хотите, чтобы все таблицы выглядели точно так же, не означает, что это всегда уместно, поскольку у меня был случай, когда это не было, из-за того, что отображаемые данные занимали непропорционально много места, чем другие мои таблицы и поэтому нужна была другая величина заполнения. Людям нужно мыслить нестандартно и о других вариантах использования.
Встроенный CSS - всегда плохая идея. Если вы хотите стилизовать уникальную таблицу, присвойте ей атрибут id и используйте его в CSS: table#id {border-collapse: separate;border-spacing: 2px;} table#id td {padding: 4px 4px;}.
Встроенный всегда плохо? Какие? Для меня ваш ответ просто повторяет все остальные ПЛОХИЕ ответы здесь. Таблица стилей предназначена для всеобъемлющих объектов, а не для единичных экземпляров, поэтому вставлять ее в таблицу стилей, для меня, ЭТО было бы плохой практикой. Вы не хотите, чтобы вам приходилось много прокручивать назад и вперед к своей таблице стилей и обратно к своей одноразовой таблице, чтобы убедиться, что все сделано правильно, и исправить / добавить что-то, когда вы можете сделать это прямо здесь. Не говоря уже о ком-то после того, как вам придется искать свое решение по тому идентификатору, который есть в таблице стилей. Нет ничего плохого в применении единого набора стилей к одной таблице.
Для таблиц интервалы между ячейками и заполнение ячеек в HTML 5 устарели.
Теперь для размещения ячеек вам нужно использовать границы. А для cellpadding вы должны использовать border-collapse.
И убедитесь, что вы не используете это в своем коде HTML5. Всегда старайтесь использовать эти значения в файле CSS 3.
<table>
<tr>
<th>Col 1</th>
<th>Col 2</th>
<th>Col 3</th>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</table>
cell-padding можно задать с помощью padding в CSS, в то время как cell-spacing можно задать, установив border-spacing для таблицы.
table {
border-spacing: 10px;
}
td {
padding: 10px;
}
table {
border-spacing: 4px;
color: #000;
background: #ccc;
}
td {
padding-left: 4px;
}
В таблице HTML cellpadding и cellspacing могут быть установлены следующим образом:
Для заполнение ячеек:
Просто назовите простую ячейку td/thpadding.
Пример:
/******Call-Padding**********/
table {
border-collapse: collapse;
}
td {
border: 1px solid red;
padding: 10px;
}<table>
<tr>
<th>Head1 </th>
<th>Head2 </th>
<th>Head3 </th>
<th>Head4 </th>
</tr>
<tr>
<td>11</td>
<td>12</td>
<td>13</td>
<td>14</td>
</tr>
<tr>
<td>21</td>
<td>22</td>
<td>23</td>
<td>24</td>
</tr>
<tr>
<td>31</td>
<td>32</td>
<td>33</td>
<td>34</td>
</tr>
<tr>
<td>41</td>
<td>42</td>
<td>43</td>
<td>44</td>
</tr>
</table>table {
border-collapse: collapse;
}
td {
border: 1px solid red;
padding: 10px;
}
Для расстояние между ячейками
Просто позвоните простому tableborder-spacing
Пример:
/********* Cell-Spacing ********/
table {
border-spacing: 10px;
border-collapse: separate;
}
td {
border: 1px solid red;
}<table>
<tr>
<th>Head1</th>
<th>Head2</th>
<th>Head3</th>
<th>Head4</th>
</tr>
<tr>
<td>11</td>
<td>12</td>
<td>13</td>
<td>14</td>
</tr>
<tr>
<td>21</td>
<td>22</td>
<td>23</td>
<td>24</td>
</tr>
<tr>
<td>31</td>
<td>32</td>
<td>33</td>
<td>34</td>
</tr>
<tr>
<td>41</td>
<td>42</td>
<td>43</td>
<td>44</td>
</tr>
</table>/********* Cell-Spacing ********/
table {
border-spacing: 10px;
border-collapse: separate;
}
td {
border: 1px solid red;
}
Больше стиля таблицы по ссылке на источник CSS здесь вы получаете больше стилей таблицы с помощью CSS.
Вы можете просто сделать что-то подобное в своем CSS, используя border-spacing и padding:
table {
border-collapse: collapse;
}
td, th {
padding: 1em;
border: 1px solid blue;
}<table>
<tr>
<th>head_1</th>
<th>head_2</th>
<th>head_3</th>
<th>head_4</th>
</tr>
<tr>
<td>txt_1</td>
<td>txt_2</td>
<td>txt_3</td>
<td>txt_4</td>
</tr>
</table>При свертывании границ правило интервала между границами игнорируется.
Вы можете легко установить отступ внутри ячеек таблицы, используя свойство CSS padding. Это действительный способ произвести тот же эффект, что и атрибут cellpadding таблицы.
table,
th,
td {
border: 1px solid #666;
}
table th,
table td {
padding: 10px;
/* Apply cell padding */
}<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "utf-8">
<title>Set Cellpadding in CSS</title>
</head>
<body>
<table>
<thead>
<tr>
<th>Row</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Clark</td>
<td>Kent</td>
<td>[email protected]</td>
</tr>
<tr>
<td>2</td>
<td>Peter</td>
<td>Parker</td>
<td>[email protected]</td>
</tr>
<tr>
<td>3</td>
<td>John</td>
<td>Rambo</td>
<td>[email protected]</td>
</tr>
</tbody>
</table>
</body>
</html>Точно так же вы можете использовать свойство CSS border-spacing, чтобы применить интервал между границами соседних ячеек таблицы, как атрибут cellspacing. Тем не менее, для работы с интервалом между границами значение свойства «border-collapse» должно быть отдельным, что является значением по умолчанию.
table {
border-collapse: separate;
border-spacing: 10px;
/* Apply cell spacing */
}
table,
th,
td {
border: 1px solid #666;
}
table th,
table td {
padding: 5px;
/* Apply cell padding */
}<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "utf-8">
<title>Set Cellspacing in CSS</title>
</head>
<body>
<table>
<thead>
<tr>
<th>Row</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Clark</td>
<td>Kent</td>
<td>[email protected]</td>
</tr>
<tr>
<td>2</td>
<td>Peter</td>
<td>Parker</td>
<td>[email protected]</td>
</tr>
<tr>
<td>3</td>
<td>John</td>
<td>Rambo</td>
<td>[email protected]</td>
</tr>
</tbody>
</table>
</body>
</html>Я предлагаю это, и это повлияет на все ячейки для конкретной таблицы.
table.tbl_classname td, th {
padding: 5px 5px 5px 4px;
}
Вы можете проверить приведенный ниже код, просто создайте index.html и запустите его.
<!DOCTYPE html>
<html>
<head>
<style>
table {
border-spacing: 10px;
}
td {
padding: 10px;
}
</style>
</head>
<body>
<table cellspacing = "0" cellpadding = "0">
<th>Col 1</th>
<th>Col 2</th>
<th>Col 3</th>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</table>
</body>
</html>ВЫХОД :
Это сработало для меня:
table {border-collapse: collapse}
table th, table td {padding: 0}
Предположим, мы хотим назначить нашей таблице «заполнение ячеек» 10 пикселей и 15 пикселей «пространство ячеек» совместимым с HTML5 способом. Я покажу здесь два метода, дающих действительно похожие результаты.
Два разных набора свойств CSS применяются к одной и той же разметке HTML для таблицы, но с противоположными концепциями:
первый использует значение по умолчанию для border-collapse (separate) и использует border-spacing для определения расстояния между ячейками,
второй переключает border-collapse на collapse и использует свойство border в качестве пространства ячеек.
В обоих случаях добавление ячеек достигается путем назначения padding:10px на td, и в обоих случаях назначенный им background-color используется только для более ясной демонстрации.
Первый способ:
table{border-spacing:15px}
td{background-color:#00eb55;padding:10px;border:0}<table>
<tr>
<td>Header 1</td><td>Header 2</td>
</tr>
<tr>
<td>1</td><td>2</td>
</tr>
<tr>
<td>3</td><td>4</td>
</tr>
</table>Второй способ:
table{border-collapse:collapse}
td{background-color:#00eb55;padding:10px;border:15px solid #fff}<table>
<tr>
<td>Header 1</td><td>Header 2</td>
</tr>
<tr>
<td>1</td><td>2</td>
</tr>
<tr>
<td>3</td><td>4</td>
</tr>
</table>
Просто общее предложение, прежде чем пробовать эти решения, проверьте, выполняет ли ваш style.css «сброс» таблиц. Пример: Если у вас нет таблиц, настроенных на
width:auto, тогдаborder-collapseможет работать не так, как ожидалось.