Теги помещаются только в тег ?

#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.

От:http://www.w3.org/QA/Tips/use-links

Комментарии:

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.