В приведенном ниже коде я поместил внутреннюю таблицу стилей с тегом body вместо заголовка. Для одностраничного приложения я собираюсь сделать это для стилей, применимых только к этой странице, а не иметь отдельный файл pagespecific.css.
Есть сценарий, где это имеет недостаток, поскольку я не помещаю то же самое в головной раздел?
<!-- myPartial.html starts here -->
<!-- Like to keep styles unique to this html right here in this file -->
<div>
<style>
body { background-color: red; }
#myText { color: white; }
</style>
<span id='myText'>Hello</span>
</div>
<!-- myPartial.html ends here -->
head
элемента. HTML-страница всегда есть.(Поскольку мы находимся здесь в SE.SX, более стратегический подход может стать ценным дополнением к обычным техническим соображениям.)
[преамбула] Спецификация HTML5 является постоянно движущейся целью, и у них есть политика, позволяющая следить за установившейся общей практикой. Они устарели и возродили особенности в прошлом, изменили значение других, сместили фокус методических рекомендаций и т. Д. Это написано не на всю вечность со всей мудростью человечества, доступной одновременно. Спекуляция не является священным источником истины. Вполне естественно, что иногда браузеры правы. [/ Преамбулы]
Ситуация ОП в подавляющем большинстве случаев является общепринятой и действительной.
У вас есть CMS с разработанной и установленной темой, весь CSS-файл загружен должным образом из HEAD, и вот вы, редактор страниц, оставили модное окно WYSIWYG, которое вы можете (слава Богу!) Переключить в «режим исходного кода» и введите (вставьте) в HTML-разметку (ранее созданную с помощью более подходящих инструментов). К счастью, вы даже можете включить
STYLE
теги (возможно, из-за случайного упущения в фильтре тегов) ... День спасен от множества повторяющихся разрушающих душу ворчаний. Но у вас все еще нет никаких средств для вмешательства в элемент HEAD системы из сценария редактирования страницы.Должно ли это лишить вас возможности использовать ваш CSS простым способом с вашими фрагментами HTML, просто потому, что в спецификации так сказано?
Или у вас есть одностраничное приложение AJAX.
Он работает без перезагрузки в течение длительного сеанса, и есть синдицированный контент, поступающий из различных случайных источников, все в произвольном и независимом стиле. Требовать, чтобы они были сначала преобразованы, чтобы использовать только встроенные
STYLE
атрибуты вместо того, чтобы простоSTYLE
идти со встроенным элементом, было бы абсурдно.Более того: вы можете a) уже встраивать любой CSS в любом месте
BODY
черезSTYLE
атрибуты, так что CSS в любом случае «теоретически» разрешен; и b) вы уже можете делать все, что захотите, практически с любым стилем, когда захотите (и даже больше) из Javascript, так что CSS также уже можно неправильно использовать патологически неэффективными способами. И никто из нас никогда не будет возражать против этих особенностей. Как и W3C.Итак, что же такого плохого в
STYLE
элементахBODY
? Каковы те дополнительные неблагоприятные последствия, которые это добавило бы к нашему широкому арсеналу злоупотреблений для конструкций HTML? Более низкая производительность? Вероятно. Иногда.Является ли это веской причиной отмены этой невероятно полезной практики, поддерживаемой каждым браузером по определенной причине? Не за миллион миль!
Мы не идиоты. Ну, не все или не всегда ...;) Техники с риском плохой работы могут быть просто задокументированы , а не просто запрещены. Раньше у нас были Java-апплеты, и мы выжили. Неправильное использование автомобилей может привести к несчастьям, даже пищу можно использовать беспокоящими, неэффективными способами, а водители, которые могут есть, могут быть в среднем даже глупее, чем обычный веб-дизайнер. Кроме того, дорогой W3C, не нужно беспокоиться: сердитые стада тинкеров-HTML, отстреливших свои ноги
STYLE
элементами,BODY
все еще не могут пойти за W3C и отомстить. Они не знают адрес. И у них нет ног.Итак, пожалуйста: сделайте так, чтобы ваш голос был услышан, чтобы
STYLE
стать законным вBODY
! Послушное цитирование текста, но неспособность предоставить жизнеспособную альтернативу, которая лучше, чем текущая ситуация, не поможет. На самом деле это угроза этой последней инстанции.Помните: спецификация HTML5 называется рекомендацией .
источник
STYLE
в настоящее действует вBODY
! ;)Спецификация HTML гласит, что
Атрибут scoped - это логическое значение, указывающее, что его следует применять только к поддереву, корнями которого является родительский элемент элемента стиля.
В настоящее время только Firefox поддерживает атрибут scoped. http://www.w3schools.com/tags/att_style_scoped.asp
источник
Есть несколько технических причин, по которым ваш css находится в файле и теге стиля:
Некоторые основанные на мнении причины использовать файл:
Мое личное предпочтение состоит в том, чтобы использовать Compass для хранения отдельных файлов для каждой страницы, а затем использовать его для компиляции их всех в один файл. Этот единственный файл будет включен на каждой странице. Если в будущем файлы должны быть разделены по какой-либо причине, они всегда могут быть, но это не стоит хлопот тем временем.
источник