CSS псевдоэлемент ::selection
Значение и применение
Псевдоэлемент ::selection позволяет добавлять тень к тексту, управлять цветом фона и цветом текста, выделенного пользователем (стандартные цвета зависят от браузера, системы и темы).
Обращаю Ваше внимание на то, что псевдоэлемент ::selection был добавлен в CSS3*, поэтому необходимо использовать его с двойным двоеточием, это обусловлено тем, что в CSS3 синтаксис для псевдоэлементов был изменён (до этой спецификации псевдоэлементы указывались с одинарным двоеточием).
Для сохранения поддержки старых сайтов, браузеры продолжают распознавать версии ранее введённых псевдоэлементов (с использованием одинарного двоеточия).
/* синтаксис CSS 3 */
селектор::псевдоэлемент { /* двойное двоеточие */
CSS свойство: значение;
}
/* синтаксис CSS 2 */
селектор:псевдоэлемент { /* одинарное двоеточие */
CSS свойство: значение;
}
Современный Firefox поддерживает ::selection без префикса. Запись ::-moz-selection ниже —
исторический вариант для старых версий, дублировать её в новом коде не нужно.
::selection { /* описание псевдоэлемента для всех браузеров */
color: blue; /* устанавливаем цвет текста */
background-color: orange; /* устанавливаем цвет заднего фона */
}
::-moz-selection { /* описание псевдоэлемента для Firefox */
color: blue; /* устанавливаем цвет текста */
background-color: orange; /* устанавливаем цвет заднего фона */
}
Для выделения действует ограниченный набор свойств. Например, color, background-color и
text-shadow подходят, а изменение размеров, отступов или background-image — нет.
Попробуйте псевдоэлемент ::selection
Выделите текст в примере. Выберите другой вариант и снова выделите текст, чтобы увидеть оформление ::selection.
.sample::selection { background-color: #005a99; color: white; }.sample::selection { background-color: #ffd166; color: #172c3d; }HTML примера
<p class="sample">
Учимся оформлять текст с помощью CSS. Меняйте ширину области: первая строка
зависит от доступного места, а первая буква остаётся той же. Выделите часть
этого текста мышью или с клавиатуры.
</p>
Поддержка браузерами
Спецификация: CSS pseudo
Нет поддержки: Safari iOS, WebView iOS.
Отдельные значения (1) поддерживаются не везде — смотрите таблицу.
| Возможность | Компьютеры | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
selection | 1 | 12 | 62 Версия 62 выпущена в 2018 г. Версия 1 выпущена в 2004 г. — Префикс -moz- | 9.5 | 1.1 | 18 | 62 Версия 62 выпущена в 2018 г. Версия 4 выпущена в 2011 г. — Префикс -moz- | 14 | 1.0 | 37 | ||
text-decoration | 105 | 105 | 91 | 105 | 72 | 20.0 | 105 | |||||
поддерживаетсяс ограниченияминет поддержкинет данных≤31 — не позднее версии 31
CSS синтаксис:
::selection {
блок объявлений;
}
Версия CSS
Псевдоэлемент описан в
CSS Pseudo-Elements Level 4. Вариант с одним двоеточием :selection не предусмотрен.
Примеры, попробуйте сами
Выделенный текст
Выделите текст внутри результата. Измените цвета и повторите выделение.
base.css
* {
box-sizing: border-box;
}
body {
margin: 16px;
font:
16px/1.5 system-ui,
sans-serif;
color: #24364b;
overflow-wrap: anywhere;
}
section {
margin-block: 16px;
padding: 12px;
border: 1px solid #a8b8c7;
}
p {
padding: 8px;
}
label {
display: block;
margin-block: 12px;
}
input,
button {
max-width: 100%;
font: inherit;
padding: 8px;
}
input[type='checkbox'] + label {
display: inline;
}
a {
color: #135fb5;
}
index.html
<html lang="ru">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Выделенный текст</title>
</head>
<body>
<p class="sample">Выделите несколько слов мышью или долгим нажатием на сенсорном экране.</p>
</body>
</html>
style.css
.sample::selection {
background: #ffe29a;
color: #593600;
}