Добавляют ли псевдоэлементы узлы в DOM

Ответ

Псевдоэлементы (::before, ::after и др.) создаются CSS-движком и добавляются в виртуальное DOM-дерево, но не являются частью реального DOM. Они существуют только в области отображения (рендеринга) и не доступны через стандартные DOM-методы, такие как querySelector, если не указан их тип.

Пример:

.element::before {
  content: "";
  color: red;
}

Хотя псевдоэлемент визуально присутствует, в DOM его нет. Однако, можно получить его стили через getComputedStyle().

Особенности:

  • Нельзя выбрать через JS без указания типа (::before)
  • Не участвуют в DOM-событиях
  • Не влияют на структуру DOM-дерева
  • Содержимое (content) доступно только для чтения через CSSOM