← Все статьи

Туториалы

Подсвети посещённые ссылки — и почему CSS позволяет так мало

Результаты поиска, список статей, документация — и никакого способа понять, какие ссылки ты уже открывал. Одно CSS-правило это решает. И по пути стоит узнать, почему селектор :visited так странно урезан.

Правило

На вкладке CSS правила, URL-паттерн для страницы со списками ссылок или * глобально:

a:visited {
  color: #9333ea !important;
}

Вот и всё. Посещённые ссылки становятся фиолетовыми. Выбери цвет, сильно отличающийся от цвета обычной ссылки, чтобы контраст читался мгновенно.

Почему можно так мало

Естественный инстинкт: раз я могу менять цвет, добавлю ещё иконку или фон. Не сделаешь — и это намеренно.

Если бы :visited позволял произвольные стили, любая страница могла бы определить твою историю. Она вставила бы тысячу скрытых ссылок, дала бы каждой разный размер или фон через :visited, измерила бы layout с помощью JavaScript и прочитала бы, какие URL ты посетил. Это была реальная уязвимость (history sniffing) — и браузеры её закрыли.

Что разрешено, что нет

На :visited работают только свойства цвета: color, background-color, border-color, outline-color. И даже эти «привираются» в одну сторону:

Хочешь больше, чем цвет?

Бейджи, иконки, счётчики визитов — :visited тебе их не даст. Они требовали бы трекинга твоей истории в JavaScript, что отдельная и куда более тяжёлая тема. Для большинства случаев одного цвета хватает с избытком — потому что единственное, что тебе реально нужно, это «был я здесь или нет».

Ловушки

Смотри также

Установи JustZix — и понимай с одного взгляда, где ты уже был.

Оцени эту статью

Оценок пока нет — оцени первым.

Попробуй сам

Установи JustZix и вставь любой сниппет из этой статьи. Две минуты от нуля до работающего правила на всех твоих устройствах.

Получить JustZix

Возможности · Как это работает · Примеры · Применение