Кратко
СкопированоЭлемент <head>
содержит основную информацию о документе: метаданные (например, заголовок окна или кодировку), ссылки на скрипты и таблицы стилей.
Эта информация не отображается на странице браузера. Пользователи увидят только заголовок окна страницы — его задаёт тег <title>
, ну и фавиконку, если вы её поставите.
Пример
Скопировано<html> <head> <title>Заголовок страницы</title> </head></html>
<html> <head> <title>Заголовок страницы</title> </head> </html>
Как пишется
СкопированоКроме <title>
, внутри контейнера <head>
можно разместить и другие элементы: <base>
, <link>
, <meta>
, <script>
, <style>
, <template>
, <noscript>
. Вот пример того, как можно поставить фавиконку — маленькую иконку в углу вкладки браузера.
<head> <link rel="shortcut icon" type="image/png" href="/favicon.png"></head>
<head> <link rel="shortcut icon" type="image/png" href="/favicon.png"> </head>
На практике
Скопированосоветует Скопировано
🛠 <head>
— это мозги, которые всем управляют. Метаданные и стили, которые прописываются в <head>
, указывают, как ваша страница ведёт себя в тех или иных случаях.
советует Скопировано
🛠 <head>
является невидимой частью вашей страницы. По факту это блок, предназначенный для технической информации.
Единственное, что торчит наружу — заголовок страницы и фавиконка.
🛠 Есть ещё метатеги, нужные для правильного отображения сниппета вашего сайта в поисковых системах.
Поскольку этот тег невидим для пользователя, то и применять к нему стили не имеет никакого смысла. Вы просто не увидите никакого результата. Не тратьте своё время 🙂
На собеседовании
Скопировано отвечает
СкопированоКогда мы размещаем стили внутри тега <head>
, браузер понимает как и с какими стилями отрисовывать контент при первом рендере. То есть, чтобы отобразить страницу, браузеру нужно знать какой контент нарисовать (HTML) и как должны выглядеть элементы (CSS). Если браузер не получит CSS заранее, то HTML-элементы сначала отобразятся со стилями по умолчанию, а после загрузки CSS применяться новые стили. Это вызовет мигание контента. Добавление тега <link>
co стилями в начало документа предотвращает повторную перерисовку.
Тег <script>
обычно идёт перед закрывающимся тегом <
. Это даёт уверенность, что элементы, к которым идёт обращение в скрипте, существуют на странице.
Мы можем размещать скрипт в <head>
, если он должен выполнится первым и не полагается на то, существует ли элемент на странице. Или если добавляем атрибуты async
или defer
к тегу <script>
. Про их отличия можно почитать подробнее в доке про <script>
.
defer
сообщает браузеру, что скрипт нужно загружать в фоновом режиме и запустить его, как только DOM-дерево будет полностью построено.
Ещё один способ — указать атрибут <script type
, который говорит браузеру, что скрипт нужно запустить как модульный. Модульные скрипты по дефолту являются отложенными, то есть <script type
равносильно <script type
, и указание defer
не будет иметь никакого эффекта.