Установить cellpadding и cellspacing в CSS?

3045

В таблице HTML cellpadding и cellspacing могут быть установлены следующим образом:

<table cellspacing="1" cellpadding="1">

Как это можно сделать с помощью CSS?

  • 5
    Просто общее предложение, проверьте, выполняет ли ваш style.css «перезагрузку» в ваших таблицах, прежде чем пытаться использовать эти решения. Пример. Если для таблиц не задано значение width:auto то border-collapse может работать не так, как ожидалось.
  • 1
    Используйте интервал границы на столе и отступы на тд.
Теги:
html-table
alignment
stylesheet

26 ответов

3052
Лучший ответ

Основы

Для управления "cellpadding" в CSS вы можете просто использовать padding для ячеек таблицы. Например. для 10px "cellpadding":

td { 
    padding: 10px;
}

Для "cellpacing" вы можете применить свойство CSS border-spacing к своей таблице. Например. для 10px "cellpacing":

table { 
    border-spacing: 10px;
    border-collapse: separate;
}

Это свойство позволит даже разделить горизонтальное и вертикальное расстояние, что вы не могли бы сделать со старой "ячейкой" старой школы.

Проблемы в IE <= 7

Это будет работать практически во всех популярных браузерах, за исключением Internet Проводник через Internet Explorer 7, где вам почти не повезло. Я говорю "почти", потому что эти браузеры все еще поддерживают свойство border-collapse, которое объединяет границы соседних ячеек таблицы. Если вы пытаетесь устранить cellpacing (т.е. cellspacing="0"), то border-collapse:collapse должен иметь тот же эффект: нет места между ячейками таблицы. Однако эта поддержка является ошибкой, поскольку она не переопределяет существующий атрибут cellspacing HTML в элементе таблицы.

Вкратце: для браузеров, не связанных с Интернетом и браузером 5-7, border-spacing обрабатывает вас. Для Internet Explorer, если ваша ситуация в порядке (вы хотите, чтобы 0 cellpacing и ваша таблица не определили ее уже), вы можете использовать border-collapse:collapse.

table { 
    border-spacing: 0;
    border-collapse: collapse;
}

Примечание. Для большого обзора свойств CSS, которые можно применить к таблицам и для каких браузеров, см. эту фантастическую страницу Quirksmode.

  • 22
    cellpadding = "0" может по-прежнему иметь значение в Chrome 13.0.782.215, даже если к таблице применены border-collapse: collapse и border-spacing.
  • 1
    Это, безусловно, имеет смысл из-за специфичности CSS, поэтому вам может потребоваться применить стили к идентификатору CSS для максимальной специфичности. Не уверен, что это переопределит значения атрибутов во всех случаях, но это место для начала проверки.
Показать ещё 7 комментариев
802

По умолчанию

Поведение браузера по умолчанию эквивалентно:

table {border-collapse: collapse;}
td    {padding: 0px;}

          Изображение 2563

CELLPADDING

Устанавливает объем пространства между содержимым ячейки и стеной ячейки

table {border-collapse: collapse;}
td    {padding: 6px;}

        Изображение 2564

CELLSPACING

Управляет пространством между ячейками таблицы

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

        Изображение 2565

Оба

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

        Изображение 2566

Оба (специальные)

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

        Изображение 2567

Примечание: Если установлено border-spacing, оно указывает на свойство border-collapse таблицы separate.

Попробуйте сами!

Здесь вы можете найти старый способ html для достижения этого.

  • 1
    Как исчезают расстояния вокруг стола? Когда я устанавливаю «border-spacing: 8px 12px», это добавляет интервал не только между, но и между границей таблицы и внешними ячейками! Но это не изображено на изображениях здесь; они расположены на одном уровне слева.
  • 1
    @ 2astalavista И, к сожалению, если кто-то захочет удалить эффект внешнего интервала, он не будет работать таким образом с этими атрибутами CSS.
Показать ещё 2 комментария
296
table
{
    border-collapse: collapse; /* 'cellspacing' equivalent */
}

table td, table th
{
    padding: 0; /* 'cellpadding' equivalent */
}
  • 2
    На самом деле это единственное, что я мог получить для меня, хотя я применил информацию к идентификатору, чтобы не быть слишком общим.
  • 19
    Это cellspacing=0 эквивалент. Эквивалент для cellspacing=1 совершенно другой. Смотрите принятый ответ.
Показать ещё 4 комментария
98

Настройка полей в ячейках таблицы на самом деле не имеет никакого эффекта, насколько я знаю. Истинным эквивалентом CSS для cellspacing является border-spacing - но он не работает в Internet Explorer.

Вы можете использовать border-collapse: collapse, чтобы надежно установить расстояние между ячейками до 0, как упоминалось, но для любого другого значения, я думаю, единственный способ перекрестного браузера - использовать атрибут cellspacing.

  • 46
    В сегодняшнем веке эта реальность - сосание до N-й степени.
  • 7
    Это почти правильно, но border-collapse работает только в IE 5-7, если в таблице еще не определен атрибут cellspacing . Я написал исчерпывающий ответ, который объединяет все правильные части других ответов на этой странице на случай, если это будет полезно.
Показать ещё 1 комментарий
83

Этот хак работает для Internet Explorer 6 и более поздних версий, Google Chrome, Firefox и Opera:

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 вы можете передавать больше аргументов, чем ожидалось, и все они будут оцениваться.

  • 0
    для тех, кто пытается отвечать на электронные письма, обратите внимание, что * не распознается в outlook 2007+ (использует word в качестве движка рендеринга) campaignmonitor.com/css
58

Для тех, кто хочет ненулевое значение ячейки, для меня работал следующий CSS, но я могу проверить его только в Firefox. Подробнее о деталях совместимости см. В Quirksmode в другом месте. Кажется, он не может работать со старыми версиями Internet Explorer.

table {
    border-collapse: separate;
    border-spacing: 2px;
}
43

Простое решение этой проблемы:

table
{
    border: 1px solid #000000;
    border-collapse: collapse;
    border-spacing: 0px;
}
table td
{
    padding: 8px 8px;
}
40

Кроме того, если вы хотите cellspacing="0", не забудьте добавить border-collapse: collapse в таблицу стилей table.

31

Оберните содержимое ячейки с помощью 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>

Да, это хлопот. Да, он работает с IE. Фактически, я тестировал это только с помощью IE, потому что это все, что нам разрешено использовать на работе.

  • 0
    Хотелось бы, чтобы я проголосовал больше ... Первый пример, который не повторял другие, и тот, который показывает, как ограничить эффект одной таблицей или ячейкой, а не всеми ими на странице !!!
15

Просто используя border-collapse: collapse для вашей таблицы и padding для th или td

14

Этот стиль предназначен для Полный Reset для таблиц - cellpadding, cellspacing и границ.. p >

У меня был этот стиль в моем 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*/
}
14

ТВН. Для всех fannying вокруг с помощью CSS вы можете просто использовать cellpadding="0" cellspacing="0", поскольку они не устарели...

Любой, кто предлагает маржи на <td>, очевидно, не пробовал это.

  • 33
    Они фактически устарели в html5.
12
table th,td {
    padding: 8px 2px;
}
table {
    border-collapse: separate;
    border-spacing: 2px;
}
11

Из того, что я понимаю из классификаций W3C, является то, что <table> предназначены для отображения только данных.

Основываясь на этом, мне было намного проще создать <div> с фоном и все такое и иметь таблицу с данными, плавающими над ней, с помощью position: absolute; и background: transparent;...

Он работает на Chrome, IE (6 и более поздних) и Mozilla (2 и более поздних).

Поля используются (или подразумеваются в любом случае) для создания разделителя между элементами контейнера, такими как <table>, <div> и <form>, а не <tr>, <td>, <span> или <input>. Использование его для чего-либо другого, кроме элементов контейнера, заставит вас заняться настройкой вашего сайта для будущих обновлений браузера.

  • 6
    ОП никогда не говорил, для чего он использовал таблицу.
10

Просто используйте правила заполнения CSS с данными таблицы:

td { 
    padding: 20px;
}

И для интервала между границами:

table { 
    border-spacing: 1px;
    border-collapse: collapse;
}

Тем не менее, он может создавать проблемы в более старой версии браузеров, таких как Internet Explorer, из-за различной реализации модели окна.

8

CSS

selector{
    padding:0 0 10px 0; // Top left bottom right 
}
7

Попробуйте следующее:

table {
    border-collapse: separate;
    border-spacing: 10px;
}
table td, table th {
    padding: 10px;
}

Или попробуйте следующее:

table {
    border-collapse: collapse;
}
table td, table th {
    padding: 10px;
}
6

Я использовал !important после краха-обвала вроде

border-collapse: collapse !important;

и он работает для меня в IE7. Кажется, он переопределяет атрибут cellspacing.

  • 9
    Параметр !important необходим только для переопределения других настроек CSS в сложной ситуации (и даже в этом случае это неправильный подход).
  • 1
    Также повторение ответа Дэна, просто добавляет !important , который мог бы быть включен в качестве комментария вместо другого ответа.
5
<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;
}

Fiddle.

3

Для таблиц cellpacing и cellpadding устарели в HTML 5. Теперь для ячейки необходимо использовать интервал между границами И для cellpadding вы должны использовать border-collapse.

И убедитесь, что вы не используете это в своем коде HTML5. Всегда старайтесь использовать эти значения в файле CSS-3.

3
td {
    padding: npx; //for cellpadding
    margin: npx; //for cellspacing
    border-collapse: collapse; //for showing borders in a better shape.
}

Если margin не работает, попробуйте установить display с tr на block, а затем поле будет работать.

2

Вы можете легко установить прописку внутри ячеек таблицы с помощью свойства прошивки CSS, это допустимый способ получить тот же эффект, что и атрибут cellpadding таблицы.

  table,
го,
td {
 border: 1px solid # 666;
}

table th,
table td {
 padding: 10px;
 /* Применить прокладку клавиатуры */
}Код>
  <! DOCTYPE html >
< html lang =  "en"  >
< & головка GT;

 < meta charset =  "utf-8"  >
 <title> Set Cellpadding в CSS </title>

</головка >

& Л; тело >

 < & таблицы GT;
   <THEAD>
     < & тр GT;
       & Л; е > строка </й >
       <th> Имя </th>
       <th> Фамилия </th>
       & Л; й > E-mail </й >
     & Л;/тр >
   </THEAD>
   <TBODY>
     < & тр GT;
       < & тд GT; 1 </& тд GT;
       < & тд GT; Clark & ​​л;/& тд GT;
       < & тд GT; Кент </& тд GT;
       < & тд GT; [email protected]</тд >
     & Л;/тр >
     < & тр GT;
       < & тд GT; 2 </тд >
       < & тд GT; Питер </тд >
       & Л; тд > Паркер </& тд GT;
       < & тд GT; [email protected]</тд >
     & Л;/тр >
     < & тр GT;
       < & тд GT; 3 </& тд GT;
       < & тд GT; Джон </& тд GT;
       < & тд GT; Рэмбо </& тд GT;
       < & тд GT; [email protected]</тд >
     & Л;/тр >
   </TBODY>
 </таблица >

</тело >
</HTML>код>

Аналогично, вы можете использовать свойство border-spacing CSS для применения расстояния между соседними границами ячейки таблицы, например атрибутом cellspacing. Тем не менее, для того, чтобы работать с интервалом между границами, значение свойства mase границы-collapse будет раздельным, что по умолчанию.

  table {
 пограничный коллапс: отдельный;
 интервал между границами: 10 пикселей;
 /* Применение интервала между ячейками */
}

Таблица,
го,
td {
 border: 1px solid # 666;
}

table th,
table td {
 padding: 5px;
 /* Применить прокладку клавиатуры */
}Код>
  <! DOCTYPE html >
< html lang =  "en"  >
< & головка GT;

 < meta charset =  "utf-8"  >
 <title> Установить привязку ячеек в CSS </title>

</головка >

& Л; тело >

 < & таблицы GT;
   <THEAD>
     < & тр GT;
       & Л; е > строка </й >
       <th> Имя </th>
       <th> Фамилия </th>
       & Л; й > E-mail </й >
     & Л;/тр >
   </THEAD>
   <TBODY>
     < & тр GT;
       < & тд GT; 1 </& тд GT;
       < & тд GT; Clark & ​​л;/& тд GT;
       < & тд GT; Кент </& тд GT;
       < & тд GT; [email protected]</тд >
     & Л;/тр >
     < & тр GT;
       < & тд GT; 2 </тд >
       < & тд GT; Питер </тд >
       & Л; тд > Паркер </& тд GT;
       < & тд GT; [email protected]</тд >
     & Л;/тр >
     < & тр GT;
       < & тд GT; 3 </& тд GT;
       < & тд GT; Джон </& тд GT;
       < & тд GT; Рэмбо </& тд GT;
       < & тд GT; [email protected]</тд >
     & Л;/тр >
   </TBODY>
 </таблица >

</тело >
</HTML>код>
2
table{border-spacing:4px; color: #000; background:#ccc; }
td{padding-left:4px;}
1

В таблице HTML cellpadding и cellspacing могут быть установлены следующим образом:

Для Cell-Padding: Просто позвоните в простую ячейку td/th padding

EX:

/******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;
}

Для Сопряжения ячейки

Просто позвоните просто table border-spacing

EX:

/********* 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

0

Вы можете просто сделать что-то подобное в своем 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>
  • 0
    Правило межграничного интервала игнорируется, когда границы свернуты.
-2

Как добавить стиль непосредственно в таблицу? Это вместо использования table в вашем CSS, который является подходом BAD, если на вашей странице несколько таблиц:

<table style="border-collapse: separate;border-spacing: 2px;">
    <tr>
        <td style="padding: 4px 4px;">Some Text</td>
    </tr>
</table>
  • 2
    Поместить «style» в тег table лучше, чем «table # someId» в вашем css, так как стилизация должна отделяться от содержимого. Но главный вопрос заключается в том, как преобразовать устаревший HTML в правильный CSS. Что вы правильно сделали, но на самом деле ничего не добавили в ответ и сосредоточены на не связанной с этим проблеме.
  • 0
    Ничего не добавлено ?! То, что я добавил, было сосредоточено на том, как каждый другой ответ здесь в основном говорит использовать td { padding: ... } или table { border-spacing: ... } , вместо того, чтобы применять его непосредственно к таблице. Те ничего не добавляют. Как я уже сказал, когда у вас есть несколько таблиц на вашей странице и вы не хотите на них влиять, вы не хотите этого! Нам не нужна целая страница ответов с надписью «Используйте таблицу стилей!», Когда, возможно, это последнее, что вы хотите, потому что вам нужно форматирование только для одной ячейки или таблицы. Это когда применение к table или td Нежелательно и создание совершенно нового класса для него является излишним.
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню