Перейти к содержимому

CSS свойство user-select

Свойство user-select указывает, может ли пользователь выделять текст или нет.

Значение по умолчанию — auto, которое определяется следующим образом:

  • На псевдоэлементах ::before и ::after вычисленное значение равно none
  • Если элемент является редактируемым, вычисленное значение равно contain,
  • Если вычисленное значение user-select у родителя этого элемента равно all, вычисленное значение равно all.
  • Если вычисленное значение user-select у родителя этого элемента равно none, вычисленное значение равно none,
  • В остальных случаях вычисленное значение равно text.

INFO

В современных браузерах вендорные префиксы (-webkit-, -moz-) устарели. Стандартное свойство user-select полностью поддерживается без них.

Начальное значениеauto
Применяется кВсе элементы, хотя некоторые значения не влияют на нестрочные элементы.
НаследуетсяНет.
АнимацияНет.
ВерсияCSS3
Синтаксис DOMobject.style.userSelect = "text";

Синтаксис

Значения CSS user-select

css
user-select: auto | none | text | all | contain | initial | inherit;

Пример свойства user-select со значением "auto":

Пример кода CSS user-select

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      div {
        user-select: auto;
      }
    </style>
  </head>
  <body>
    <h2>User-select property example</h2>
    <div>Lorem ipsum is simply dummy text.</div>
  </body>
</html>

В приведённом примере текст можно выделить, если браузер это позволяет.

Пример свойства user-select со значением "none":

Пример кода CSS user-select

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      div {
        user-select: none;
      }
    </style>
  </head>
  <body>
    <h2>User-select property example</h2>
    <div>Lorem ipsum is simply dummy text.</div>
  </body>
</html>

Текст выделить нельзя.

Пример свойства user-select со значением "all":

Пример кода CSS user-select (all)

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      div {
        user-select: all;
      }
    </style>
  </head>
  <body>
    <h2>User-select property example</h2>
    <div>Lorem ipsum is simply dummy text.</div>
  </body>
</html>

Клик в любом месте элемента выделяет весь текст внутри него.

Пример свойства user-select со значением "text":

Пример кода CSS user-select (text)

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      div {
        user-select: text;
      }
    </style>
  </head>
  <body>
    <h2>User-select property example</h2>
    <div>Lorem ipsum is simply dummy text.</div>
  </body>
</html>

Текст можно выделить обычным способом.

Значения

ЗначениеОписаниеЗапустить
autoТекст можно выделить, если браузер это позволяет. Это значение по умолчанию для данного свойства.Запустить »
noneТекст не выделяется.Запустить »
textТекст выделяется пользователем.Запустить »
allТекст выделяется одним кликом.Запустить »
containТекст можно выделить, но выделение не может выходить за границы элемента. Обычно используется для редактируемых элементов.Запустить »
initialУстанавливает свойству значение по умолчанию.Запустить »
inheritНаследует свойство от родительского элемента.

Практика

Какое утверждение верно относительно свойства CSS user-select?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.