Кратко
СкопированоПсевдокласс :target выбирает элемент, на который указывает фрагмент URL — часть адреса после символа #.
Это позволяет изменять внешний вид элемента, к которому пользователь перешёл по якорной ссылке.
Например, если открыт адрес: https, то браузер найдёт элемент с идентификатором example и применит к нему стили из селектора :target.
Пример
СкопированоЧасто :target используют для подсветки разделов статьи после перехода по оглавлению.
<nav> <a href="#html">HTML</a> <a href="#css">CSS</a> <a href="#js">JavaScript</a></nav><section id="html"> <h2>HTML</h2></section><section id="css"> <h2>CSS</h2></section><section id="js"> <h2>JavaScript</h2></section>
<nav>
<a href="#html">HTML</a>
<a href="#css">CSS</a>
<a href="#js">JavaScript</a>
</nav>
<section id="html">
<h2>HTML</h2>
</section>
<section id="css">
<h2>CSS</h2>
</section>
<section id="js">
<h2>JavaScript</h2>
</section>
section:target { background-color: #fff4b8;}
section:target {
background-color: #fff4b8;
}
Как пишется
СкопированоПосле селектора ставим двоеточие и указываем псевдокласс target.
.title { color: black;}.title:target { color: pink;}
.title {
color: black;
}
.title:target {
color: pink;
}
Можно комбинировать :target с псевдоэлементами:
p:target::before { content: "►"; color: yellow; margin-right: 0.25em;}
p:target::before {
content: "►";
color: yellow;
margin-right: 0.25em;
}
А также со вложенными селекторами:
article:target h2 { color: crimson;}
article:target h2 {
color: crimson;
}
Как понять
СкопированоКогда браузер загружает страницу, он анализирует её адрес. Если в URL есть фрагмент после символа #, браузер ищет элемент с соответствующим значением атрибута id. Например, для адреса:
https
целевым элементом станет:
<section id="installation"> Инструкция по установке</section>
<section id="installation">
Инструкция по установке
</section>
Такой элемент считается текущей целью документа и совпадает с селектором :target. Важно понимать, что браузер не добавляет элементу дополнительный класс. Вместо этого он временно считает элемент подходящим под псевдокласс :target. Если пользователь перейдёт по другому якорю, состояние автоматически перейдёт к новому элементу. Если в URL нет фрагмента или соответствующий элемент не найден, :target не совпадает ни с одним элементом страницы.
Подсказки
Скопировано💡 :target удобно использовать для подсветки разделов длинных статей после перехода по оглавлению.
💡 Часто применяется вместе с плавной прокруткой:
html { scroll-behavior: smooth;}
html {
scroll-behavior: smooth;
}
💡 С помощью :target можно создавать простые интерфейсы без JavaScript — например, вкладки, аккордеоны или модальные окна.
💡 Целевым элементом может быть любой HTML-элемент с уникальным id, а не только заголовки и секции.
💡 Хорошей практикой считается добавлять анимацию или визуальный акцент, чтобы пользователь сразу заметил нужный элемент:
:target { animation: highlight 1s ease;}@keyframes highlight { from { background-color: #ffec99; } to { background-color: transparent; }}
:target {
animation: highlight 1s ease;
}
@keyframes highlight {
from {
background-color: #ffec99;
}
to {
background-color: transparent;
}
}
- Chrome 1, поддерживается
- Edge 12, поддерживается
- Firefox 1, поддерживается
- Safari 1.3, поддерживается