Почему ::first-letter является псевдоэлементом, а не псевдоклассом?

#html #css

#HTML #css

Вопрос:

Я просматривал псевдоклассы и элементы в CSS.

До сих пор я читал, что псевдоклассы используются для выбора элементов, которые находятся в определенном состоянии.

И псевдоэлементы используются для добавления виртуальных элементов, таких как ::before и ::after .

Я в замешательстве, почему ::first-letter and ::first-line являются псевдоэлементами, а не псевдоклассами? Потому что они также выбирают элементы в определенном состоянии.

Комментарии:

1. Они не выбирают элементы в любом состоянии, они просто нацелены на узлы dom.

Ответ №1:

Потому что они также выбирают элементы в определенном состоянии.

Это не так. Они выбирают содержимое.

Псевдоэлементы создают абстракции о дереве документа помимо тех, которые указаны в языке документа. Например, языки документов не предлагают механизмов для доступа к первой букве или первой строке содержимого элемента. Псевдоэлементы позволяют авторам ссылаться на эту недоступную в противном случае информацию. Псевдоэлементы также могут предоставлять авторам способ ссылаться на содержимое, которого нет в исходном документе (например, псевдоэлементы ::before и ::after предоставляют доступ к сгенерированному содержимому).ссылка

и

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

Они не могут быть псевдоклассами, потому что их выбор находится внутри дерева документа.