Почему cellspacing и cellpadding не являются стилями CSS
-
19-08-2019 - |
Вопрос
Я не знаю, почему это меня так беспокоит, но когда я создаю веб-сайты, я всегда стараюсь делать весь свой стиль с помощью CSS.Однако одна вещь, о которой я всегда должен помнить, когда работаю с таблицами, - это добавить cellspacing="0" и cellpadding="0"
Почему нет свойства CSS, которое переопределяло бы эти устаревшие атрибуты HTML 4?
Решение
table { border-collapse: collapse; }
Что касается cellpadding , вы можете сделать
table tr td, table tr th { padding: 0; }
Другие советы
мэт уже ответил, но просто для полноты картины:
padding
→cellpadding
border-spacing
→cellspacing
border-collapse
→ нет эквивалента HTML
Также стоит помнить, что вы можете задать отдельные горизонтальные и вертикальные значения для CSS-файлов, например border-spacing: 0 1px
.
Эрик Майер таблица стилей сброса содержит следующий стиль «сброса» для таблицы: р>
/* tables still need 'cellspacing="0"' in the markup */
table {
border-collapse: collapse;
border-spacing: 0;
}
Кроме того, TD, TR сбрасываются:
thead, tr, th, td {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-size: 100%;
vertical-align: baseline;
background: transparent;
}
Причина, по которой я упоминаю об этом, состоит в том, что у него есть комментарий «Таблицы все еще нуждаются в cellpadding = 0». Я предполагаю, что он поместил это здесь по причине - вероятно, необходимой для некоторых старых браузеров. Судя по тому, что это один из немногих комментариев, которые он включил, я предполагаю, что это важно, и что для этого есть веская причина.
На основании этого комментария - и только этот комментарий! - я продолжаю использовать cellspacing = " 0 " в разметке, если кто-то не скажет мне окончательно (ниже), почему мне это не нужно. Однако это может быть ненужным в любом современном браузере, который стоит поддерживать в наши дни.
table { border-collapse:collapse; }
Полагаю, кто-то считал расстояние между ячейками & # 8220; плохая практика & # 8221 ;. Насколько я понимаю, это эквивалентно включенному в стандарт CSS2, но IE не поддерживает это свойство. border-collapse позволяет установить интервал в 0 значение. Заполнение ячейки может быть достигнуто путем установки свойства заполнения для элементов TD таблицы.