Ссылки на разделы и идентификаторы фрагментов
Переходите к разделам страницы с помощью атрибутов id и ссылок с хэшем
«Ссылки на разделы и идентификаторы фрагментов» — бесплатный урок HTML Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения HTML Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс HTML Academy содержит 4 уроков всего.
Что такое фрагментный идентификатор?
Фрагментный идентификатор — это часть URL после символа #:
https://example.com/page#section-3
│
└─ Fragment: "section-3"
<!-- The browser: -->
<!-- 1. Loads the page -->
<!-- 2. Scrolls to the element with id="section-3" -->Создание якорных целей с помощью id
Чтобы создать ссылку на раздел, задайте ему id:
<!-- The target: give any element an id -->
<h2 id="installation">Installation</h2>
<h2 id="configuration">Configuration</h2>
<h2 id="faq">Frequently Asked Questions</h2>
<!-- The link: use # + id value -->
<a href="#installation">Jump to Installation</a>
<a href="#faq">Go to FAQ</a>Ссылка с другой страницы
Вы можете создать ссылку на раздел другой страницы:
<!-- From a different page -->
<a href="/docs/guide#installation">Installation Guide</a>
<!-- Loads /docs/guide and scrolls to #installation -->
<!-- Absolute URL to a section -->
<a href="https://example.com/docs#api">API Documentation</a>Правила именования id
Правила для допустимых значений id:
- Значение должно быть уникальным на странице — никакие два элемента не могут иметь один и тот же id
- В CSS значение не может начинаться с цифры, хотя в HTML это допустимо
- Не используйте пробелы — ставьте дефисы:
my-section - Регистр имеет значение:
#FAQи#faq— разные значения
Шаблон оглавления
Фрагментные ссылки позволяют создавать оглавление на странице:
<nav aria-label="Table of Contents">
<ol>
<li><a href="#intro">Introduction</a></li>
<li><a href="#setup">Setup</a></li>
<li><a href="#usage">Usage</a></li>
<li><a href="#api">API Reference</a></li>
</ol>
</nav>
<h2 id="intro">Introduction</h2>
<h2 id="setup">Setup</h2>Плавная прокрутка с помощью CSS
Добавьте плавную прокрутку при переходе по фрагментным ссылкам:
/* Apply to the entire page */
html {
scroll-behavior: smooth;
}
/* Or for specific containers */
.scrollable {
scroll-behavior: smooth;
}Отступ прокрутки для фиксированных заголовков
Фиксированные панели навигации перекрывают разделы, к которым выполняется прокрутка. Исправьте это с помощью scroll-margin-top:
/* If you have a 60px fixed header */
:target {
scroll-margin-top: 70px;
}
/* Or set globally for all headings */
h2, h3, h4 {
scroll-margin-top: 70px;
}
/* scroll-margin-top offsets where the browser scrolls to */Псевдокласс CSS :target
Оформите раздел, на который сейчас указывает ссылка, с помощью :target:
/* Highlight the targeted section */
:target {
background-color: #fff3cd;
outline: 2px solid #ffc107;
padding: 1rem;
}
<!-- Result: when user clicks #installation, -->
<!-- the installation section gets highlighted -->Ссылка для возврата к началу
Распространённый шаблон — ссылка для возврата к началу с использованием фрагмента:
<a href="#top" id="back-to-top">↑ Back to top</a>
<!-- Link to page top: either id="top" on body or use empty href # -->
<!-- Always give it meaningful text for accessibility -->
<!-- Position it fixed with CSS: -->
<!--
#back-to-top {
position: fixed;
bottom: 1rem;
right: 1rem;
}
-->Фрагменты и история браузера
Переход по фрагментной ссылке добавляет запись в историю браузера:
- При нажатии на фрагментную ссылку добавляется запись в историю
- Кнопка «Назад» в браузере возвращает к предыдущей позиции прокрутки
- Это обычное поведение — одностраничные приложения могут изменять его с помощью pushState
Именованные якоря (устаревший способ)
До появления атрибутов id для якорей использовался <a name> — теперь этот способ устарел:
<!-- Old way (do not use): -->
<a name="section-1"></a>
<h2>Section 1</h2>
<!-- Modern way: -->
<h2 id="section-1">Section 1</h2>
<!-- Use id on the target element, not a separate anchor tag -->Проверка
Какое свойство CSS не позволяет фиксированной панели навигации перекрывать раздел, к которому выполняется прокрутка?
Итоги: фрагментные идентификаторы
Основные сведения о фрагментных ссылках:
#idв href прокручивает страницу к элементу с такимid- Каждому целевому элементу нужен уникальный атрибут
id - Работает как на той же странице, так и при переходе с других страниц
scroll-behavior: smoothобеспечивает анимированную прокруткуscroll-margin-topпредотвращает перекрытие фиксированным заголовком- Псевдокласс
:targetвыделяет текущий раздел
Изучай HTML с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 40
- Уроки
- 159
Часто задаваемые вопросы
Урок «Ссылки на разделы и идентификаторы фрагментов» бесплатный?
Да — полный текст урока «Ссылки на разделы и идентификаторы фрагментов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс HTML Academy, подпишись на CoddyKit PRO. Курс HTML Academy содержит 4 уроков всего.
Чему я научусь в уроке «Ссылки на разделы и идентификаторы фрагментов»?
Переходите к разделам страницы с помощью атрибутов id и ссылок с хэшем Ты практикуешь HTML Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать HTML Academy?
Предыдущий опыт не требуется. HTML Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Ссылки на разделы и идентификаторы фрагментов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке HTML Academy?
Да. Каждый урок HTML Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Элемент anchor и атрибут href
- Абсолютные и относительные URL
- Открытие ссылок в новых вкладках и атрибут download
- Ссылки на разделы и идентификаторы фрагментов