Почему < 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" />

Ответ 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, чтобы избежать дублирования?