Почему сотовое пространство и сотовая панель не являются стилями CSS

Я не знаю, почему это так беспокоит меня, но когда я создаю веб-сайты, я всегда стараюсь делать все свои стили с помощью CSS. Однако одна вещь, которую я всегда должен помнить при работе с таблицами, это добавить cellspacing="0" и cellpadding="0"

Почему нет свойства CSS для переопределения этих устаревших атрибутов HTML 4?

5 ответов

Решение

Cellspacing:

table { border-collapse: collapse; }

Что касается мобильного телефона, вы можете сделать

table tr td, table tr th { padding: 0; }

Мат уже ответил, но только для полноты:

  • paddingcellpadding
  • border-spacingcellspacing
  • 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; }

Я предполагаю, что кто-то считал, что расстояние между клетками - "плохая практика". Насколько я понимаю, это эквивалентно включенному в стандарт CSS2, но IE не поддерживает это свойство. border-collapse позволяет установить интервал в 0 значение. Заполнение ячейки может быть достигнуто путем установки свойства заполнения для элементов TD таблицы.

По-прежнему жаль, что ячейки не могут наследовать свои отступы по умолчанию от свойства CSS строки (tr), в противном случае от группы строк (thead/tbdy/tfoot), если она не "начальная", colgroup, если она не "начальная", или целой Таблица.

"cellspacing" не имеет этой проблемы (но на самом деле они являются полями вокруг ячеек, и эти внешние поля сжимаются с полями соседних ячеек и с внутренними отступами таблицы / группы строк или строки, где они заполняются таблицей настройка "фона" (фон таблицы также включает в себя "границу" таблицы, которая рисуется поверх нее и которая также обрезает этот фон на внешнем крае границы таблицы, особенно когда эта граница имеет закругленные углы).

Но для заполнения ячеек было бы проще определить "cell-padding: n" как свойство таблицы или группы, а не для каждой ячейки отдельно и явно с собственным стилем "border: n" (который следует использовать только в том случае, если мы необходимо переопределить заполнение в некоторых конкретных ячейках).

Другие вопросы по тегам