2008-11-20 4 views
1

Я задаюсь вопросом, почему стилизации элемент в пределах определенного класса, например:Контекстные селекторы в CSS2

.reddish H1 { color: red } 

показан как пример правильного синтаксиса в спецификации CSS1 под Контекстные селекторы:

Cascading Style Sheets, level 1

, но это не показано, как, например, в спецификации CSS2:

Cascading Style Sheets, Level 2

По крайней мере, я не могу найти пример. Имеют ли правила синтаксиса для этого в CSS2, или это просто выведено как правильный синтаксис?

ответ

3

Этот синтаксис верен, но пример может быть изменен по нескольким причинам.

Во-первых, не рекомендуется называть классы описанием того, что они делают. В случае с .reddish h1 пример CSS показывает, что он должен быть окрашен в красный цвет. Однако, если в последующем изменении МОДЕЛИРОВКИ h1 на самом деле должна быть синего цвета, то

.reddish h1 { color: blue; } 

имеет мало смысла. Вы должны называть свои классы своей функцией или назначением на странице, а не тем, какой стиль они должны представлять.

Во-вторых, не рекомендуется использовать ключевые слова для цветов, так как цвет, который вы получаете, зависит от интерпретации браузера. Вместо «красного» вы должны использовать шестнадцатеричный код «# ff0000», чтобы получить точный цвет во всех браузерах. (красным может быть не лучший пример здесь, но есть некоторые странные цветовые ключевые слова).

Хотя ни одна из этих вещей не так уж плоха, они оба могут добавить, почему пример изменился в спецификации.

1

Вы должны писать элементы строчными буквами (h1, а не H1).

Смежные вопросы