#javascript #html #css
#javascript #HTML #css
Вопрос:
Возможно ли / рекомендуется ли использовать <link href"">
для включения таблиц стилей вне <head>
тега, или они работают только / должны ли они использоваться только в <head>
?
Ответ №1:
Это возможно сделать.
Это не рекомендуется делать, потому что любой контент, который появляется перед <link>
, начнет отображаться, а затем, когда таблица стилей будет загружена, будет повторно отображаться с новыми стилями. Это означает, что загрузка страниц будет медленнее (потому что браузеру придется переделывать всю эту работу) и уродливее (потому что появится эта вспышка контента с одним стилем, который затем будет изменен, чтобы выглядеть по-другому).
Комментарии:
1. Однако это не соответствует спецификации w3c
2. Конечно. Вопрос о том, что «возможно» и что «допустимо», — это совершенно разные вопросы!
3. В HTML 5 это нормально;
<link rel="stylesheet">
является ли тело в порядке: w3.org/TR/html52/links.html#sec-link-types
Ответ №2:
Они недопустимы вне head
, хотя ни один браузер, о котором я знаю, не будет применять стили, если не является дочерним для head
.
Ответ №3:
Тег определяет взаимосвязь между документом и внешним ресурсом.
Тег чаще всего используется для ссылки на таблицы стилей.
Примечание: Элемент link должен быть встроен в раздел head, и он может появляться любое количество раз.
От:http://www.w3schools.com/tags/tag_link.asp
Элемент LINK
(<link>)
используется для добавления внешней информации, относящейся к HTML-документу, в заголовок вашего документа в элементе HEAD.
Комментарии:
1. Я добавил ссылку на W3C в качестве альтернативы
2. w3schools должны быть последним местом, на которое вы ссылаетесь в качестве ссылки на практику работы с HTML.
3. Также утверждение о том, что все
link
типы разрешены только вhead
, неверно для HTML5.
Ответ №4:
Согласно спецификации HTML 4.01, <link>
тег должен отображаться в разделе head:
Этот элемент определяет ссылку. В отличие от A, он может отображаться только в разделе HEAD документа, хотя может появляться любое количество раз. Хотя ССЫЛКА не имеет содержимого, она передает информацию об отношениях, которая может быть отображена агентами пользователя различными способами (например, панель инструментов с выпадающим меню ссылок).
Исходный код W3C: http://www.w3.org/TR/html401/struct/links.html#edef-LINK
Ответ №5:
<link>
Тег не определяет структуру веб-страницы, поэтому его не следует использовать в <body>
и <footer>
.
Я не могу придумать ни одной причины, по которой вы когда-либо хотели бы / нуждались поместить его куда-либо, кроме <head>
Комментарии:
1. Я использую javascript datepicker только на 1 странице, и мне нужно включить его css только для этой страницы, все мои страницы используют шаблон заголовка, поэтому, если я добавлю его
<head>
, он будет загружен на каждую страницу2. Это проблема наследования. Должно быть лучшее решение, чем использование мета-тегов в вашей структуре. Возможно, вам нужно перенастроить способ загрузки ваших шаблонов, чтобы вы могли добавлять код заголовка на отдельные страницы, если это необходимо.
Ответ №6:
В HTML5 допустимо, чтобы внутри "stylesheet"
элемента body
помещался определенный тип ссылки, как из https://html.spec.whatwg.org/multipage/links.html#linkTypes это body-ok.
Примечание: html
разрешено содержать только два элемента, head
за которыми body
следует. Однако, если вы ставите link
прямо под html
, стандарт, к сожалению, допускает это в некоторых ситуациях, поскольку в некоторых ситуациях он позволяет опускать теги <head>
и <body>
start и end. Это связано с дрянными устаревшими страницами, и вы никогда не должны этого делать.
Итог: Просто вставьте свои link
в head
.
Ответ №7:
Да, элемент — это элемент метаданных, разрешенным родительским элементом которого является head или элемент в head.