HTML Academy · Урок

Ссылки на разделы и идентификаторы фрагментов

Переходите к разделам страницы с помощью атрибутов id и ссылок с хэшем

Урок 4 из 413 шагов

«Ссылки на разделы и идентификаторы фрагментов» — бесплатный урок 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 — локальная установка не требуется.

Все уроки этого курса

  1. Элемент anchor и атрибут href
  2. Абсолютные и относительные URL
  3. Открытие ссылок в новых вкладках и атрибут download
  4. Ссылки на разделы и идентификаторы фрагментов
← Назад к HTML Academy