HTML: Секция
На больших страницах содержится много контента, который помещён друг в друга. Внутри шапки может быть отдельная область с правилами использования, внутри main секции с формой, дополнительной информацией и так далее. Они могут быть выделены с помощью тега <section>, значение которого — разметка связанных, по смыслу, блоков внутри секции.
Может звучать немного запутано, но представьте себе страницу музыкального портала, у которого есть области:
- Информация об исполнителе
- Популярные треки исполнителя
- Дискография
- Список ближайших концертов
Если это страница об исполнителе, то весь этот контент будет расположен внутри секции main, при этом стоит выделить и эти 4 секции. Они связаны с общим контентом, но являются самостоятельными единицами внутри него. Такая вёрстка может выглядеть следующим образом:
<main>
<h1>Blue October</h1>
<p>Американская группа из Хьюстона, играющая в стиле альтернативный рок</p>
<section>
<h2>Популярные треки</h2>
</section>
<section>
<h2>Дискография</h2>
</section>
<section>
<h2>Ближайшие концерты</h2>
</section>
</main>Если «вытащить эти секции» из тега <main>, то они потеряют свой смысл, так как без текста об исполнителе такая информация может быть непонятна. Такая информация напрямую связана с основным содержанием и не может существовать без него.
Добавим в учебный пример форму заказа услуги. Эта форма для заказа именно той услуги, которая представлена на странице, поэтому секция находится внутри области main и вынесена в отдельный тег <section>.
<header>
<img src="https://cdn6.hexlet.io/1P6tmafZTIy5.png" alt="Логотип"> <!-- Логотип сайта -->
<nav> <!-- Меню -->
<ul>
<li><a href="/">Главная</a></li>
<li><a href="/about">О нас</a></li>
<li><a href="/contacts">Контакты</a></li>
</ul>
</nav>
</header>
<main>
<p>Основной контент страницы. Это может быть статья, описание услуги, данные на странице контакты</p>
<section class="callback-form">
<h2>Оставить заявку</h2>
<form>
<!-- Здесь форма заказа услуги -->
</form>
</section>
</main>В большинстве случаев все области section имеют свой заголовок. Это хороший способ понять, когда нужно добавить область section.
Задание
Создайте шапку сайта. Она состоит из 2-х элементов:
- Логотип
- Секция навигации. Внутри неё маркированный список из двух элементов
Добавьте секцию <main>. Внутри создайте две секции с заголовками второго уровня
Для картинки используйте следующий код:
<img src="https://cdn6.hexlet.io/1P6tmafZTIy5.png" alt="Code Basics">Полезное
Область
sectionдополняет основной контент и не должна существовать сама по себеСледите за тем, чтобы каждая секция имела свой заголовок
HTML: Секция
На больших страницах содержится много контента, который помещён друг в друга. Внутри шапки может быть отдельная область с правилами использования, внутри main секции с формой, дополнительной информацией и так далее. Они могут быть выделены с помощью тега <section>, значение которого — разметка связанных, по смыслу, блоков внутри секции.
Может звучать немного запутано, но представьте себе страницу музыкального портала, у которого есть области:
- Информация об исполнителе
- Популярные треки исполнителя
- Дискография
- Список ближайших концертов
Если это страница об исполнителе, то весь этот контент будет расположен внутри секции main, при этом стоит выделить и эти 4 секции. Они связаны с общим контентом, но являются самостоятельными единицами внутри него. Такая вёрстка может выглядеть следующим образом:
<main>
<h1>Blue October</h1>
<p>Американская группа из Хьюстона, играющая в стиле альтернативный рок</p>
<section>
<h2>Популярные треки</h2>
</section>
<section>
<h2>Дискография</h2>
</section>
<section>
<h2>Ближайшие концерты</h2>
</section>
</main>Если «вытащить эти секции» из тега <main>, то они потеряют свой смысл, так как без текста об исполнителе такая информация может быть непонятна. Такая информация напрямую связана с основным содержанием и не может существовать без него.
Добавим в учебный пример форму заказа услуги. Эта форма для заказа именно той услуги, которая представлена на странице, поэтому секция находится внутри области main и вынесена в отдельный тег <section>.
<header>
<img src="https://cdn6.hexlet.io/1P6tmafZTIy5.png" alt="Логотип"> <!-- Логотип сайта -->
<nav> <!-- Меню -->
<ul>
<li><a href="/">Главная</a></li>
<li><a href="/about">О нас</a></li>
<li><a href="/contacts">Контакты</a></li>
</ul>
</nav>
</header>
<main>
<p>Основной контент страницы. Это может быть статья, описание услуги, данные на странице контакты</p>
<section class="callback-form">
<h2>Оставить заявку</h2>
<form>
<!-- Здесь форма заказа услуги -->
</form>
</section>
</main>В большинстве случаев все области section имеют свой заголовок. Это хороший способ понять, когда нужно добавить область section.
Задание
Создайте шапку сайта. Она состоит из 2-х элементов:
- Логотип
- Секция навигации. Внутри неё маркированный список из двух элементов
Добавьте секцию <main>. Внутри создайте две секции с заголовками второго уровня
Для картинки используйте следующий код:
<img src="https://cdn6.hexlet.io/1P6tmafZTIy5.png" alt="Code Basics">Полезное
Область
sectionдополняет основной контент и не должна существовать сама по себеСледите за тем, чтобы каждая секция имела свой заголовок
Ваше упражнение проверяется по этим тестам
const { test } = require('tests');
test(({ query, querySelectorAll, expect }) => {
const header = query(document, 'header');
expect(header).to.be.visible;
const img = query(header, 'img');
expect(img).to.be.visible;
const nav = query(header, 'nav');
expect(nav).to.be.visible;
const ul = query(nav, 'ul');
expect(ul).to.be.visible;
const li = querySelectorAll(ul, 'li');
expect(li).to.be.length(2);
const main = query(document, 'main');
expect(main).to.be.visible;
const sections = querySelectorAll(main, 'section');
expect(sections).to.be.length(2);
sections.forEach((section) => {
const h2 = query(section, 'h2');
expect(h2).to.be.visible;
});
});Решение учителя откроется через:
20:00
