Ответы:
основы
Для управления «cellpadding» в CSS, вы можете просто использовать padding
ячейки таблицы. Например, для 10px "cellpadding":
td {
padding: 10px;
}
Для «cellspacing» вы можете применить border-spacing
свойство CSS к вашей таблице. Например, для 10px "cellspacing":
table {
border-spacing: 10px;
border-collapse: separate;
}
Это свойство даже допускает раздельные интервалы по горизонтали и вертикали, чего вы не могли бы сделать с помощью "cellspacing" старой школы.
Проблемы в IE <= 7
Это будет работать практически во всех популярных браузерах, кроме Internet Explorer до Internet Explorer 7, где вам почти не повезло. Я говорю «почти», потому что эти браузеры все еще поддерживают border-collapse
свойство, которое объединяет границы соседних ячеек таблицы. Если вы пытаетесь исключить пространство ячеек (то есть cellspacing="0"
), то border-collapse:collapse
должны иметь тот же эффект: нет места между ячейками таблицы. Однако эта поддержка содержит ошибки, поскольку она не переопределяет существующий cellspacing
атрибут HTML в элементе таблицы.
Короче говоря: для браузеров не Internet Explorer 5-7, border-spacing
обрабатывает вас. Для Internet Explorer, если ваша ситуация правильная (вам нужно 0 ячеек, а в вашей таблице это еще не определено), вы можете использовать border-collapse:collapse
.
table {
border-spacing: 0;
border-collapse: collapse;
}
Примечание. Большой обзор свойств CSS, которые можно применять к таблицам и для каких браузеров, см. На этой фантастической странице Quirksmode .
Поведение браузера по умолчанию эквивалентно:
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;}
Примечание: если
border-spacing
установлено, это означает, чтоborder-collapse
свойство таблицы являетсяseparate
.
Здесь вы можете найти старый HTML-способ достижения этого.
table
{
border-collapse: collapse; /* 'cellspacing' equivalent */
}
table td, table th
{
padding: 0; /* 'cellpadding' equivalent */
}
cellspacing=0
эквивалентно Эквивалент для cellspacing=1
совершенно другой. Смотрите принятый ответ.
table td
и table th
просто быть td
и th
соответственно? Это работает в любом случае, но меньший селектор означает немного более быстрое соответствие
table > tr > td
и table > tr > th
. Это почти так же быстро, как tr
и th
, и он гарантированно будет работать, если у вас есть вложенная таблица. Просто мой 2с
table
нужен ли селектор? IIRC, <td>
является недействительным, если внутри <tr>
.
Насколько я знаю, установка полей в ячейках таблицы не имеет никакого эффекта. Истинный CSS эквивалент cellspacing
ISborder-spacing
- но это не работает в Internet Explorer.
Вы можете использовать, border-collapse: collapse
чтобы надежно установить интервал между ячейками в 0, как уже упоминалось, но для любого другого значения, я думаю, единственный кросс-браузерный способ - это продолжать использовать cellspacing
атрибут.
border-collapse
работает только в IE 5-7, если в таблице еще не определен cellspacing
атрибут. Я написал исчерпывающий ответ, который объединяет все правильные части других ответов на этой странице на случай, если это будет полезно.
Этот хак работает для 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 вы можете передать больше аргументов, чем ожидалось, и все они будут оценены.
Для тех, кто хочет отличное от нуля значение в пространстве ячеек, следующий CSS работал для меня, но я могу протестировать его только в Firefox.
См QuirksMode ссылки размещенной в других местах по вопросам совместимости. Кажется, он может не работать со старыми версиями Internet Explorer.
table {
border-collapse: separate;
border-spacing: 2px;
}
Простое решение этой проблемы:
table
{
border: 1px solid #000000;
border-collapse: collapse;
border-spacing: 0px;
}
table td
{
padding: 8px 8px;
}
Оберните содержимое ячейки с помощью 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, потому что это все, что нам разрешено использовать на работе.
Этот стиль для полного сброса для таблиц - CELLPADDING , CELLSPACING и границ .
У меня был этот стиль в моем файле 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 */
}
table th,td {
padding: 8px 2px;
}
table {
border-collapse: separate;
border-spacing: 2px;
}
Просто используйте правила заполнения CSS с табличными данными:
td {
padding: 20px;
}
И для интервала границы:
table {
border-spacing: 1px;
border-collapse: collapse;
}
Однако это может создать проблемы в старых версиях браузеров, таких как Internet Explorer, из-за различий в реализации блочной модели.
Из классификаций W3C я понимаю, что <table>
они предназначены для отображения данных «только».
Исходя из этого, я обнаружил, что намного проще создать <div>
фон с фонами и тому подобным, и иметь таблицу с данными, плавающими над ней, используя position: absolute;
иbackground: transparent;
...
Он работает в Chrome, Internet Explorer (6 и более поздних версиях) и Mozilla Firefox (2 и более поздних версиях).
Используется Маржа (или подразумеваются в любом случае) , чтобы создать распорку между контейнерными элементами, как <table>
, <div>
и <form>
, не <tr>
, <td>
, <span>
или <input>
. Используя его для чего-либо, кроме элементов контейнера, вы будете заняты настройкой своего сайта для будущих обновлений браузера.
CSS:
selector{
padding:0 0 10px 0; // Top left bottom right
}
Вы можете легко установить отступы внутри ячеек таблицы, используя свойство заполнения CSS. Это правильный способ создать тот же эффект, что и атрибут 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>clarkkent@mail.com</td>
</tr>
<tr>
<td>2</td>
<td>Peter</td>
<td>Parker</td>
<td>peterparker@mail.com</td>
</tr>
<tr>
<td>3</td>
<td>John</td>
<td>Rambo</td>
<td>johnrambo@mail.com</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>clarkkent@mail.com</td>
</tr>
<tr>
<td>2</td>
<td>Peter</td>
<td>Parker</td>
<td>peterparker@mail.com</td>
</tr>
<tr>
<td>3</td>
<td>John</td>
<td>Rambo</td>
<td>johnrambo@mail.com</td>
</tr>
</tbody>
</table>
</body>
</html>
Попробуй это:
table {
border-collapse: separate;
border-spacing: 10px;
}
table td, table th {
padding: 10px;
}
Или попробуйте это:
table {
border-collapse: collapse;
}
table td, table th {
padding: 10px;
}
Я использовал !important
после обвала границы как
border-collapse: collapse !important;
и это работает для меня в IE7. Кажется, он переопределяет атрибут cellspacing.
!important
потребовалось бы только для переопределения других настроек CSS в сложной ситуации (и даже в большинстве случаев это неправильный подход).
!important
, который мог бы быть включен в качестве комментария вместо другого ответа.
<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;
}
Скрипки .
td {
padding: npx; /* For cellpadding */
margin: npx; /* For cellspacing */
border-collapse: collapse; /* For showing borders in a better shape. */
}
Если margin
не работает, попробуйте набор display
из tr
к , block
а затем маржа будет работать.
Для таблиц, cellspacing и cellpadding устарели в HTML 5.
Теперь для клеточного пространства вы должны использовать интервал границы. А для мобильного телефона вы должны использовать border-collapse.
И убедитесь, что вы не используете это в своем коде HTML5. Всегда старайтесь использовать эти значения в файле CSS 3.
table {
border-spacing: 4px;
color: #000;
background: #ccc;
}
td {
padding-left: 4px;
}
В HTML-таблице cellpadding
иcellspacing
может быть установлен следующим образом:
Для заполнения клеток :
Просто назовите простую td/th
клетку padding
.
Пример:
table {
border-collapse: collapse;
}
td {
border: 1px solid red;
padding: 10px;
}
Для расстояния между ячейками
Просто позвони просто table
border-spacing
Пример:
/********* 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>
Как насчет добавления стиля непосредственно к самой таблице? Это вместо того, чтобы использовать table
в своем CSS, который является ПЛОХИМ подходом, если у вас есть несколько таблиц на вашей странице:
<table style="border-collapse: separate;border-spacing: 2px;">
<tr>
<td style="padding: 4px 4px;">Some Text</td>
</tr>
</table>
td { padding: ... }
или table { border-spacing: ... }
вместо того, чтобы применять его непосредственно к таблице. Те ничего не добавляют. Как я уже сказал, когда у вас есть несколько таблиц на вашей странице и вы не хотите на них влиять, вы не хотите этого! Нам не нужна целая страница ответов с надписью «Используйте таблицу стилей!», Когда, возможно, это последнее, что вы хотите, потому что вам нужно форматирование только для одной ячейки или таблицы. Это когда применять его table
или td
нежелательно, а создавать новый класс для него - это излишне.
table#someId
).
Я предлагаю это, и все ячейки для определенной таблицы осуществляются.
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>
ВЫВОД :
width:auto
тоborder-collapse
может работать не так, как ожидалось.