Неэффективно ли указывать правила по умолчанию для CSS? - PullRequest
2 голосов
/ 01 июля 2010

В качестве примера представьте, что у меня есть стол.Похоже, стандартное поведение выравнивания (не уверен, что это спецификация html или только браузеры, которые я использую?) Заключается в выравнивании элементов body по левому краю и выравнивании элементов head по центру.

Так что, если я хочу, чтобы все выравнивалось по левому краюменее эффективно писать

#MyTable td {
    text-align: left;
}

, чем писать

#MyTable tbody td {
    text-align: left;
}

Или это действительно не имеет никакого значения?

Что является наилучшей практикой в ​​этой ситуации?

Наверное, мой вопрос на самом деле о том, как устанавливаются стили по умолчанию.На самом ли деле они явно установлены браузером, если не найден соответствующий стиль, если он найден в CSS?Или это подлинное поведение по умолчанию, когда стиль отсутствует.

Ответы [ 2 ]

6 голосов
/ 01 июля 2010

Вы можете увидеть стиль браузера по умолчанию и его стиль с помощью встроенного инспектора firebug / webkit.Соответствие селектора идет справа налево.Таким образом, сначала должен быть быстрее , в теории. На практике практически нет разницы .Даже за ~ 100 элементов.Но если вы хотите написать эффективные селекторы, правило простое: будьте самым правым селектором, насколько это возможно.

2 голосов
/ 01 июля 2010

По умолчанию все выровнено по левому краю, если не указано иное (хотя ситуация может отличаться для некоторых языков, таких как арабский).Существует рекомендуемая таблица стилей для элементов HTML, но она не является частью спецификации.

Если вы переопределяете text-align для каждой таблицы в отдельности, то это может быть проблемой,Браузеры соответствуют CSS справа налево, поэтому по вашим правилам они сначала найдут все элементы td и начнут поиск вверх, чтобы найти родителя с этим идентификатором.Лучшим способом было бы пойти проще:

td {
    text-align: left;
}

Но, честно говоря, это, вероятно, стоит делать только для элементов, выравнивание которых отличается от значения по умолчанию, например для элемента <th>.

...