Комментарии 28
виноват :( опять забыл… не так часто что-то публикую здесь
а зачем пост-коллекция мест, где можно опечататься?
можно было просто написать «Вы можете опечататься, где угодно. Если не работает — ищите опечатку»
эта коллекция чтобы НЕ опечатываться :)
да и большинство современных средств разработки с автоподстановками и подсказками практически не даёт шанса ошибиться… но…

вам никогда не приходилось чужой css исправлять… мне приходилось — оказывается далеко не все знают о topStyle например или aptana…
что обстоит иначе!?!?
если есть html
div id=«navigation» class=«nav».../div

и стиль
.nav { width: 200px; }
#navigation { width: 500px; }

какой по-вашему будет ширина div?????
по моему скромному мнению — 500px

и что я перевёл или автор написал не так!?!?!?
точнее наверное надо было написать что не правило последнее работает… а берётся последнее свойство в таблице стилей

т.е.
.nav { width: 200px; color:red; }
#navigation { width: 500px; padding: 0;}

то результирующий стиль элемента будет
color:red;
width: 500px;!!!
padding: 0;

что не так?
Я не говорю, что лично вы неправы, я говорю, что проблема надумана.

Выдержка из книги Эрика Мейнра «CSS каскадные таблицы стилей. Полное руководство»:
Специфичность селектора определяется компонентами самого селектора. Значение специфичности состоит из четырёх частей: 0, 0, 0, 0. Реальная специфичность селектора определяется следующим образом:

— Для каждого указанного в селекторе значения идентификатора к специфичности добавляется 0, 1, 0, 0.

— Для каждого указанного в селекторе имени класса, псевдокласса или атрибута к специфичности добавляется 0, 0, 1, 0.

— Для каждого заданного в селекторе элемента и псевдоэлемента к специфичности добавляется 0, 0, 0, 1. Внутренне противоречие CSS2 состояло в том, что не было определено, обладают ли псевдоэлементы какой-либо специфичностью, но в CSS2.1 их специфичность явно определена и учитывается данным правилом.

— Комбинаторы и универсальный селектор не учитываются.



…первый нуль зарезервирован для встроенных объявлений стилей, специфичность которых превосходит специфичность всех остальных объявлений.


Такие дела.
Ну и, естественно, применяются те правила, специфичность которых больше. Есть ещё каскадирование которое тоже влияет на то, какие применять правила. Часть механизма каскадирования вы описали сами в комментарии на мой пост ниже.
ну ваще-то да… я погорячился… вообще о другом подумал… а про специфичность я знаю… читал :)
Наверно по тому что у id преоритет над классом и в любом случае он затерет то что прописано в класе :)
Кстати да. Даже если бы это были два класса или два айди, то и из-за порядка объявления применился бы пятисотпиксюлёвый стиль )
По этому я стараюсь стили к id не привязывать проблем потом меньше
Крнкурирующие правила — не есть проблема. Специфичность в четыре уровня в CSS 2.1 без проблем разруливает эту ситуацию.
что кого разруливает… никто ничего не разруливает…
просто есть рекомендация как высчитывать стили и приоритеты (по увеличени приоритетности)
1. встроенный стиль браузера (самый низкий приоритет)
2. внешний css-файл
3. внутренний стиль <style> </style>
4. инлайн-стиль, т.е. стиль прописанный в аттрибуте style в самом html-элементе (самый высокий приоритет)
Почитайте в спецификации про каскадирование и про вычисление специфичности, там ответ на ваш вопрос. И да, ваш список из 4-х пунктов — это только вершина айсберга.
95% описанных проблем решается использованием любого редактора текста с подсветкой синтаксиса.
согласен… :) — но предупреждён — значит вооружён… многие даже не смотрят на предупреждения
тьфу… это с блога — там автоподсветка скриптовая включена — сейчас поправлю
мдя… больше переводить не буду…
всем спасибо, всем удачи
Тут проблема не в переводе, а в том что перевел. Здесь опечатки (даже не ошибки), которые встречаются только у начинающих верстальщиков. А на хабре то все уже давно прокаченные )
Хабр читают далеко не только гугу. Сегодня хабр уже не тот © и его читает масса новичков.
Было бы на английском — дал бы своему менеджеру, а то достал меня со своим левым CSS…
вообще-то по ссылке на оригинал и есть английская статья
Я не согласен с тем, что «все измеряемые свойства должны иметь значения с указанием единицы измерения».

Например, line-height лучше указывать в безразмерных единицах, только так они правильно и красиво наследуются. В противном же случае наследуется вычисленное значение, которое для дочерних элементов может оказаться неприемлемым в силу отличий в кегле их шрифта.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.