2016-04-04 4 views
1

Да, мы все знаем, что означает comma between selectors.В CSS3, что означает запятая между блоками объявления?

Это другое. Я думал, что очень хорошо знаю CSS, но сегодня я наткнулся на то, чего я никогда раньше не видел - запятая между блоками объявления. Я использую clean-css, и сгенерирована Минимизированный, очищенную выход (я повторно вставить некоторые пробелы для удобства чтения):

body .container 
{ 
    color:#EEE 
} 
, 
.navbar-default .navbar-nav>.active>a:hover, 
h1 
{ 
    color:#000 
} 

Обратите внимание на запятую (который я разместил на своей собственной линии) после закрывающая фигурная скобка в блоке объявления для body .container. Является ли это действительным CSS? Если да, что это значит?

Мой вход CSS для очистки CSS следующим образом:

body .container { 
    color: #EEEEEE; 
} 

h1{ 
    color: #000; 
} 

.navbar-default .navbar-nav > .active > a:hover, { 
    color: black; 
} 
+0

Я считаю, что это неверный CSS. – Aziz

+0

Я хочу поблагодарить вас за то, что вы задали этот вопрос, так как я обнаружил, что из-за этого был установлен только селектор exclude-IE8 и ошибка в текущих версиях Chrome/Firefox/Edge. Попробуйте '.selector, # excludeIE8 :: before' в IE8 или' .selector, .selector :: future-pseudo' в Chrome/Firefox/Edge haha ​​ – abluejelly

+0

Нет проблем, рад, что я смог продвинуть знание IE8 хаки и, таким образом, коллективное знание человечества в целом ;-) – alexw

ответ

6

Нет, это не действует CSS. Запятая в этой позиции означает, что перед ним есть пустой селектор. Но пустой селектор не является селектором вообще; селектор должен содержать, как минимум, простой селектор или псевдоэлемент (с неявным *). От spec:

Пустой селектор, содержащий последовательность простых селекторов и псевдоэлемент, является недопустимым селектором.

Это может быть следствием ошибки в чистом css. В качестве альтернативы входной CSS был недействительным для начала, и это было просто результатом попытки очистить css для его обработки.

+0

Почему, черт возьми, кто-нибудь будет использовать это XD – Phiter

+0

Ах, ха! Казалось бы, действительно есть некоторые потенциально недопустимые входные CSS. Было правило '.navbar-default .navbar-nav> .active> a: hover, {...}' - отметить запятую между последним селектором и началом блока объявления. У моего ученика-дизайнера все еще есть кое-что, чему можно научиться ;-) Я посмотрю больше на clean-css и посмотрю, есть ли у них какой-то «строгий» вариант для того, чтобы поймать что-то вроде этого. – alexw

+0

Следует учитывать, что это также можно использовать как взломать для загрузки всего правила только в LTE IE 7, поскольку все другие браузеры (даже IE 8, к сожалению) выкинут все правило независимо от действительности любого другого селектора (s) для него. – abluejelly

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

  • Нет связанных вопросов^_^