Все справочники находятся в стадии наполнения. Если у вас есть идеи на счёт того как улучшить этот раздел, то вы можете оставить комментарий под конкретной записью или написать свои предложения по адресу 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.17%
10
0.07%
11
2.21%
Edge
16
0.12%
17
1.63%
18
0%
Firefox
62
0.06%
63
1.64%
64
1.66%
65
0.05%
66
0%
Chrome
69
0.38%
70
12.88%
71
11.99%
72
0.04%
73
0.02%
Safari
11
0.1%
11.1
0.34%
12
1.54%
TP
0%
iOS Safari
11.0-11.2
0.49%
11.3-11.4
1.35%
12.0-12.1
7.75%
Chrome for Android
70
33.72%

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

Примечание

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

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

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

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

Доступность

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

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

Пример

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

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