Почему < script src= "min.js" ></script> но <link rel= "stylesheet" href= "min" > почему бы не <style href= "min.css" ></style>
Мой вопрос, который начал изучать Веб-дизайн, задал мне этот вопрос.
Почему <script src="min.js"></script>
, но <link rel="stylesheet" href="min.css">
почему не <style href="min.css"></style>
почему мы используем тег link
для добавления внешнего CSS на странице, но когда мы связываем css на странице, но мы используем <style>...</style>
, когда пишем css внутри <head>
?
Я сказал ему, что это из-за спецификации. Есть ли больше информации, чтобы дать ему?
Ответы
Ответ 1
Это историческое... совпадение? Вы можете порекомендовать его прочитать часть о прошлом diveintohtml5.info, где есть интересные истории, на самом деле почтовые корреспонденции, между веб-разработчиками. Веб-разработчики означают, что они, по сути, разрабатывают Интернет, который мы видим в настоящее время;)
т.е. <img>
, который мы используем для:
<IMG SRC="file://foobar.com/foo/bar/blargh.xbm">
может быть:
<ICON name="NoEntry" href="http://note/foo/bar/NoEntry.xbm">
или
<A HREF="..." INCLUDE>See photo</A>
или
<INCLUDE HREF="...">
но наконец разработчики решили придерживаться <img>
, который уже был реализован:
Не были готовы поддержать INCLUDE/EMBED на этом этапе.... Так были вероятно, собирается пойти (не ICON, поскольку не все вложенные изображения могут быть значимо названы значками). В настоящее время, вложенные изображения не будут явно заполнены контентом; по дороге, мы планируют поддержать это (наряду с общей адаптацией MIME). На самом деле, в настоящее время процедуры считывания изображений используют вычисление формат изображения "на лету", поэтому расширение имени файла даже не будет существенным.
Я не знаю прямого ответа на ваш вопрос, но мне очень интересно, как тег <link>
тоже. Поиск ответа, вероятно, будет включать в себя некоторые копания веб-архивов.
Ответ 2
Существует разница, по крайней мере, с точки зрения W3C.
Элемент A <style>
вводит блок правил CSS, применимых к текущему документу. Однако внешние таблицы стилей фактически рассматриваются как целые документы на текущей странице, и пользовательские агенты могут игнорировать такие документы, в зависимости от type
и media
атрибуты ссылки. Например:
<link rel="stylesheet" type="text/css" media="screen" href="screen.css" />
<link rel="stylesheet" type="text/css" media="print" href="print.css" />
В этой ситуации пользовательские агенты обычно должны следовать только за одной из ссылок: либо screen
one (для обычной рендеринга), либо print
one (для, ну, печать). Идея заключалась в том, чтобы сохранить пропускную способность, загрузив соответствующий ресурс, вместо того, чтобы извлекать все и фильтровать на носителе позже.
Это указано в спецификации:
Когда элемент LINK
связывает внешнюю таблицу стилей с документом, Атрибут type
указывает язык таблицы стилей и media
Атрибут определяет предназначенный носитель или носитель. пользователь агенты могут сэкономить время, извлекая из сети только те стили листы, которые применяются к текущему устройству.
Ответ 3
Оба они имеют в основном идентичный смысл, и вы заметили своего рода несогласованность в HTML. Причиной этого является то, что стандарты были основаны на реализациях разных браузеров. Различные браузеры придумали атрибуты в разных тегах, и W3C просто решил сохранить некоторые несоответствия, чтобы поддерживать обратную совместимость.
Элементы, которые используют src
: script img iframe input video frame
Элементы, которые используют href
: a link base
Ответ 4
Тег <link>
используется для "связывания" других документов с текущим и описывает его отношение или rel
с ним.
Вы также можете использовать <link>
, чтобы связать другие вещи с документом. Например, значки:
<link rel="shortcut icon" href="favicon.ico" />
Ответ 5
Это может объяснить вещи, я думаю: http://www.w3.org/TR/html4/struct/links.html
Ответ 6
Возможная причина для link ref
vs style
:
link
может работать только на head
, где разрешено "Содержимое метаданных", обычно head
,
style
не мог идти в body
перед HTML5 (теперь вы можете с scoped
, но все же не для внешних стилей). Поэтому выбор между link ref
и style src
произволен.
script
, однако, уже может включать внешний script в body
перед HTML5, поэтому должен быть script src
. Но так как это должно было существовать, почему бы не разрешить его в head
(где script
уже было разрешено) и запретить link rel=script
, чтобы избежать дублирования?