2010-03-22 2 views
1

Возможно, этот вопрос задан в другом месте, но я не могу его найти. Когда модули HTML5 и CSS3 приближаются, я заинтересован в обсуждении того, как мы пишем CSS.Семантика CSS; выбор элементов напрямую или по заказу

Что-то like this, где выбор осуществляется с помощью порядка элементов, а псевдоклассы особенно увлекательны. Большим преимуществом этого метода является полная модуляция HTML и CSS для упрощения настроек и редизайнов.

В то же время семантические идентификаторы и классы кажутся полезными по разным причинам. В частности, прямые ссылки, JS-таргетинг и более короткие CSS-селектора. Кроме того, похоже, что длина селектора может быть проблемой. Например, я написал следующее, что было бы проще, по общему признанию, используя некоторые семантические элементы HTML5:

body>div:nth-child(2)>div:nth-child(2)>ul:nth-child(2)>li:last-child

Так что вы скажете, переполнение стека? Является ли будущее написания CSS ориентированным на порядок элементов и псевдоклассы? Или идентификаторы и классы и текущие пути здесь?

(Я хорошо знаю, что идентификаторы и классы имеют свое место, хотя я хочу, чтобы узнать больше, как вы думаете, они будут по-прежнему необходимы. Я не хочу искажать это или создавать его как «Являются ли псевдо-классы идентификаторами убийц?» Дискуссия, в которой меня интересует, - это большая картина и способы изменения CSS.)

ответ

3

Я думаю, что это нечитаемая мерзость, которая загадочно перестанет работать при изменении HTML.

Селекторы на основе заказа полностью не являются документально оформленными.
Если кто-то другой возьмет на себя проект и изменит HTML, он не будет знать, что должен выбрать селектор, и будет жестко исправлять его правильно.

Это особенно важно, если какая-либо часть HTML автоматически создается.

+2

Отличная точка, и мой пример был, безусловно, более образцом того, как ** не ** делать что-то. n-й ребенок кажется особенно проблематичным, тем более, что вы ищете целевые элементы по определенному местоположению, а не по формуле или «нечетные» и «четные». Этот пример в стороне, вы бы придерживались той же позиции, что и кто-то, пишущий гораздо более ловко, чем я? В частности, связанный пример? http://camendesign.com/design/ –

+0

Я пойду дальше и отметю это как ответ, потому что вы предоставили отличный контрапункт моему предложению. Я надеялся на большее обсуждение от других, но большое спасибо за ваш вклад! –

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