Шапка сайта (header)

Тренажер по HTML для пользователей с начальным уровнем подготовки.

Тренажер HTML
В этой серии заданий мы сосредоточимся на создании одного из самых важных и заметных элементов любого сайта — шапки (header). Шапка сайта обычно содержит логотип, основную навигацию, контактную информацию или кнопки призыва к действию. Правильная структура шапки важна не только для удобства пользователей, но и для поисковых систем, которые анализируют семантику вашего кода. Мы начнем с создания основного контейнера, добавим заголовок, логотип, создадим навигационное меню и постепенно усложним структуру, чтобы в итоге получить полнофункциональную и стилизованную шапку сайта. Вам будет предоставлен готовый CSS, а ваша задача — правильно дописать HTML-код, заполняя пропуски.
Список тем

Создание базовой шапки

id: 37864_header-01

Для начала создадим основной контейнер для шапки сайта. Используйте для этого наиболее подходящий <span class="cfb-tt-hover" data-title="Теги, которые описывают свое содержимое для браузера и поисковых систем.">семантический</span> тег, чтобы браузер и поисковые системы понимали, что это верхняя часть страницы.

CSS
header {
  background-color: #f8f9fa;
  padding: 20px;
  text-align: center;
  border-bottom: 1px solid #dee2e6;
  font-family: sans-serif;
  color: #333;
}
HTML
<input1>
  Это шапка нашего будущего сайта
</input1>
В HTML5 для обозначения шапки сайта предназначен специальный тег `<header>`. Он используется как контейнер для вводного контента или навигационных ссылок. Просто оберните предоставленный текст в этот тег.
Заполнить ответами все поля
Результат
Сообщения
Выполнить
Показать подсказку

Добавление заголовка

id: 37864_header-02

Теперь добавим в нашу шапку главный заголовок сайта. Это может быть название компании или проекта. Используйте самый важный тег заголовка, чтобы обозначить его значимость.

CSS
header {
  background-color: #7f5af0;
  padding: 15px;
  text-align: center;
}

h1 {
  margin: 0;
  color: #ffffff;
  font-size: 24px;
  font-family: sans-serif;
}
HTML
<header>
  <input1>Мой Проект</input1>
</header>
Для самых важных заголовков на странице используется тег `<h1>`. Разместите его внутри тега `<header>`.
Заполнить ответами все поля
Результат
Сообщения
Выполнить
Показать подсказку

Размещение логотипа

id: 37864_header-03

Шапка сайта почти всегда содержит логотип. Давайте добавим изображение в наш header. Вам нужно вставить тег для изображения и указать два его важнейших атрибута: путь к файлу и альтернативный текст.

CSS
header {
  background-color: #24252a;
  padding: 10px 20px;
}

.logo {
  max-width: 150px;
  height: auto;
}
HTML
<header>
  <input1 input2="https://naytikurs.ru/img/11s.svg" class="logo" input3="Логотип компании TechFlow">
</header>
Для вставки изображений используется тег `<img>`. У него есть обязательные атрибуты: `src` (source) для указания URL изображения и `alt` (alternative text) для описания изображения, если оно не загрузится.
Заполнить ответами все поля
Результат
Сообщения
Выполнить
Показать подсказку

Создание навигационного меню

id: 37864_header-04

Пришло время добавить навигацию. Для начала создайте специальный контейнер для навигационных ссылок, а внутри него — маркированный список. Это стандартная практика для создания меню.

CSS
header {
  padding: 20px;
  background: #f1f1f1;
  font-family: sans-serif;
}

nav ul {
  list-style-type: none; /* Убираем маркеры */
  padding: 0;
  margin: 0;
  text-align: center;
}
HTML
<header>
  <input1>
    <input2>
      <li>Главная</li>
      <li>О нас</li>
      <li>Контакты</li>
    </input2>
  </input1>
</header>
Для навигационных блоков используется семантический тег `<nav>`. Внутрь него поместите тег для создания маркированного списка `<ul>` (unordered list).
Заполнить ответами все поля
Результат
Сообщения
Выполнить
Показать подсказку

Добавление ссылок в меню

id: 37864_header-05

Наше меню пока не функционально. Превратите текстовые пункты в настоящие кликабельные ссылки. Каждый пункт списка должен содержать ссылку.

CSS
nav ul {
  list-style-type: none;
  padding: 0;
  margin: 0;
  text-align: center;
  background: #333;
}
nav li {
  display: inline-block; /* Располагаем пункты в ряд */
}
nav a {
  display: block;
  padding: 15px;
  color: white;
  text-decoration: none;
  font-family: sans-serif;
}
HTML
<nav>
  <ul>
    <input1><input2 href="#">Главная</input2></input1>
    <input1><input2 href="#">О нас</input2></input1>
    <input1><input2 href="#">Контакты</input2></input1>
  </ul>
</nav>
Каждый пункт меню должен быть обернут в тег `<li>` (list item). Внутри `<li>` поместите тег ссылки `<a>`. У тега `<a>` должен быть атрибут `href`, указывающий адрес. Если ссылка никуда не ведет, используйте значение `#`.
Заполнить ответами все поля
Результат
Сообщения
Выполнить
Показать подсказку

Структурирование шапки с помощью классов

id: 37864_header-06

Для более сложной стилизации шапку часто делят на блоки, например, для логотипа и для навигации. Оберните логотип и навигацию в `<div>` и задайте им классы `logo-container` и `nav-container` соответственно, чтобы CSS мог их стилизовать.

CSS
.site-header {
  display: flex;
  justify-content: space-between; /* раскидываем по сторонам */
  align-items: center; /* выравниваем по центру */
  padding: 10px 20px;
  background: #fff;
  border-bottom: 1px solid #eee;
}
.logo-container img {
  max-width: 120px;
}
.nav-container ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.nav-container li {
  display: inline-block;
  margin-left: 20px;
}
.nav-container a {
  text-decoration: none;
  color: #333;
  font-family: sans-serif;
}
HTML
<header class="site-header">
  <div class="input1">
    <img src="https://naytikurs.ru/img/12s.svg" alt="Лого">
  </div>

  <div class="input2">
    <nav>
      <ul>
        <li><a href="#">Продукты</a></li>
        <li><a href="#">Решения</a></li>
      </ul>
    </nav>
  </div>
</header>
Используйте тег `<div>` для группировки элементов. Добавьте к нему атрибут `class` со значением, указанным в CSS (`logo-container` или `nav-container`).
Заполнить ответами все поля
Результат
Сообщения
Выполнить
Показать подсказку

Кнопка призыва к действию (CTA)

id: 37864_header-07

Часто в шапке размещают кнопку для важного действия, например, 'Вход' или 'Регистрация'. Добавьте ссылку с классом `cta-button`. Обратите внимание, что это обычная ссылка, которая выглядит как кнопка благодаря CSS.

CSS
.site-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px;
  background: #1d2d44;
  font-family: sans-serif;
}
nav a {
  color: #f0f4f8;
  text-decoration: none;
  margin: 0 10px;
}
.cta-button {
  background-color: #3e92cc;
  color: white;
  padding: 8px 16px;
  border-radius: 5px;
  text-decoration: none;
  font-weight: bold;
}
HTML
<header class="site-header">
  <nav>
    <a href="#">Главная</a>
    <a href="#">Цены</a>
  </nav>
  <a href="#" class="input1">Регистрация</a>
</header>
Создайте обычную ссылку с помощью тега `<a>`. Добавьте ей атрибут `class` и укажите в качестве значения имя класса `cta-button`, которое уже определено в CSS.
Заполнить ответами все поля
Результат
Сообщения
Выполнить
Показать подсказку

Добавление контактного телефона

id: 37864_header-08

Добавим в шапку контактный телефон. Важно сделать его кликабельным, чтобы пользователи со смартфонов могли сразу позвонить. Используйте специальную схему URI для телефонных номеров.

CSS
.header-contacts {
  text-align: right;
  background-color: #f8f9fa;
  padding: 15px;
  font-family: sans-serif;
  border-bottom: 1px solid #dee2e6;
}
.phone-link {
  font-size: 18px;
  font-weight: bold;
  color: #2c3e50;
  text-decoration: none;
}
HTML
<header class="header-contacts">
  <a input1="input2:+79991234567" class="phone-link">+7 (999) 123-45-67</a>
</header>
Для создания телефонной ссылки используется тег `<a>`. В атрибуте `href` нужно указать схему `tel:`, а затем номер телефона без пробелов и дефисов, например: `tel:+79991234567`.
Заполнить ответами все поля
Результат
Сообщения
Выполнить
Показать подсказку

Шапка с формой поиска

id: 37864_header-09

В качестве финального задания, давайте добавим в шапку небольшую форму поиска. Вам нужно создать саму форму и поле для ввода текста.

CSS
.header-with-search {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 15px;
  background-color: #fff;
  border-bottom: 1px solid #ddd;
  font-family: sans-serif;
}
.search-input {
  border: 1px solid #ccc;
  border-radius: 4px;
  padding: 8px;
}
.search-button {
  padding: 8px 12px;
  background-color: #007bff;
  color: white;
  border: none;
  border-radius: 4px;
  margin-left: 5px;
}
HTML
<header class="header-with-search">
  <img src="https://naytikurs.ru/img/5.png" alt="logo" style="height: 40px;">
  <input1 action="/search">
    <input2 type="search" class="search-input" placeholder="Поиск по сайту...">
    <button type="submit" class="search-button">Найти</button>
  </input1>
</header>
Для создания форм используется тег `<form>`. Внутри него разместите поле для ввода, используя тег `<input>`. Чтобы поле было предназначено для поиска, задайте ему `type="search"`.
Заполнить ответами все поля
Результат
Сообщения
Выполнить
Показать подсказку
НайтиКурс.Ру