Специфика CSS и устаревшие атрибуты HTML
Какова будет подразумеваемая специфика следующего стиля, если таковой имеется:
<iframe src="..." height="300" width="500"></iframe>
Это все еще получается specificity = 1,0,0,0
и переопределить любой другой стиль применяется? Как это будет работать вместе с правильными встроенными стилями, то есть что будет иметь приоритет:
<iframe src="..." height="300" width="500" style="height:150px;width:600px;"></iframe>
Согласились ли браузеры предпочесть style=""
декларации по недействительным, или что-то еще происходит?
NB: Мне просто любопытно, как правильно выбрать стили, которые будут применяться в этом сценарии, но я не поддерживаю такие декларации.
2 ответа
Специфичность правил CSS, в которые могут быть отображены атрибуты представления HTML, равна нулю (0), в соответствии с последним разделом на странице, на которую вы ссылались, " Приоритет представлений, не связанных с CSS". Таким образом, настройки в реальной таблице стилей страницы переопределяют такие атрибуты, например style="height:150px;width:600px;"
выигрывает height
а также width
атрибутов.
Это не зависит от достоверности атрибутов. Валидность является формальной вещью и не влияет на поведение браузера. Даже если вы объявите строгий тип документа, браузеры по-прежнему будут учитывать те атрибуты представления, которые они распознают. (Там нет никаких спецификаций. Это просто, как все работает.)
PS Пример в разделе может выглядеть странно. Почему не font[color] { color: orange; }
в таблице стилей пользователя влияет font
элементы с color
атрибуты в документах HTML? Причина в том, что атрибуты переводятся в правила CSS в таблице стилей автора (страницы) и (при отсутствии !important
) все в авторской таблице стилей выигрывает пользовательскую таблицу стилей. Но font[color] { color: orange; }
в таблице стилей автора будет переопределять цвет, установленный в разметке, как <font color=red>
,
style=""
атрибут и / или любое объявление CSS всегда будет иметь приоритет над width
а также height
атрибуты HTML.
В любом случае всегда рекомендуется использовать таблицы стилей CSS.