Все справочники находятся в стадии наполнения. Если у вас есть идеи на счёт того как улучшить этот раздел, то вы можете оставить комментарий под конкретной записью или написать свои предложения по адресу admin@tuhub.ru.

::before

CSS ::before

::before - это псевдоэлемент, который позволяет добавлять содержимое на страницу с помощью CSS.

Общие сведения

Содержимое добавленное с помощью ::before появляется перед остальным содержимым внутри элемента и по умолчанию отображается в строковом виде. Значение содержимого указывается с помощью свойства content.

Синтаксис псевдоэлемента

/* Старый синтаксис CSS2*/

.element:before {
  /* Здесь содержимое и стили */
}

/* Новый синтаксис CSS3 */

.element::before {
  /* Здесь содержимое и стили */
}

Поддержка браузерами

CSS Generated content for pseudo-elements

IE
9
0.15%
10
0.09%
11
2.64%
Edge
15
0.07%
16
0.26%
17
1.38%
18
0%
Firefox
59
0.08%
60
0.45%
61
2.91%
62
0.09%
63
0%
Chrome
66
0.53%
67
23.47%
68
0.59%
69
0.04%
70
0%
Safari
10.1
0.22%
11
0.22%
11.1
1.37%
12
0.01%
TP
0%
iOS Safari
10.3
0.61%
11.0-11.2
1.3%
11.3-11.4
7.25%
12
0.07%
Chrome for Android
67
32.65%

Internet Explorer не поддерживает свойство z-index на псевдоэлементах.

Примечание

Разница между нотациями: (:) и (::)

Скорее всего вы встретите (или уже встречали) нотацию :before, которая использует одно двоеточие вместо двух.

В CSS1 и CSS2 псевдоэлементы определялись с помощью одного двоеточия (:), также как и псевдоклассы (например :hover). В CSS3 для псевдоэлементов была добавлена нотация с двумя двоеточиями чтобы отличать их от псевдоклассов.

Все браузеры, которые поддерживают нотацию с двумя двоеточиями также поддерживают и нотацию с одним двоеточием. Однако, Internet Explorer 8 не поддерживает нотацию с двойным двоеточием. Поэтому если вам не нужна поддержка Internet Explorer 8, то можете использовать вариант с двумя двоеточиями и не беспокоится за поддержку браузерами.

Доступность

Содержимое добавленное с помощью псевдоэлементов не добавляется в DOM, оно отображается только визуально. Следовательно, устройства для чтения экрана не смогут получить к нему доступ и прочитать содержимое сгенерированное с помощью псведоэлементов. Поэтому не рекомендуется использовать псевдоэлементы для добавления жизненно важного содержимого на страницу.

Псевдоэлементы в основном используются для добавления и стилизации косметического содержимого и на них нельзя полагаться при добавлении контента, который имеет отношение к значению и полноте содержимого на странице.
Кроме того, так как содержимое добавленное с помощью псевдоэлементов не добавляется в DOM, это означает, что вы не сможете применить к нему какие-либо обработчики событий с помощью JavaScript.

Пример

Ниже показан пример реализации эффекта наведения на элементы меню с помощью псевдоэлемента :before.

Здесь прописать свой код адсенс