Почему псевдокласс так называется?

Этюды для программистов Charles Wetherell, больше жемчуга программирования (Jon Bently),

7
задан BoltClock 25 January 2012 в 22:13
поделиться

4 ответа

В терминах CSS, класс - это селектор, который начинается с точки, например

.foo { ... }

Он будет использоваться в форме

<div class="foo">

Это использование «класса» больше в смысл «набор или категория вещей, имеющих общую характеристику и отличающихся от других по виду или качеству», а не заимствование из терминологии OO.

Псевдокласс - это «не совсем настоящий», как пользовательский агент определяет, когда и / или сколько контента соответствует требованиям (например, : hover , : active и т. д.).

5
ответ дан 6 December 2019 в 23:11
поделиться

Это псевдо , потому что вы этого не сделали » т сделать это; браузер "создал" его и позволяет настроить его так, чтобы он изменял внешний вид ссылки, когда она находится в этом состоянии.

4
ответ дан 6 December 2019 в 23:11
поделиться

С CSS2 / 3, допускающим более сложные правила для элементов (такие как input [type = checkbox] и т.п., термин псевдокласс кажется все более и более устаревшим.

Однако псевдокласс -классы - единственные идентификаторы CSS, которые (более или менее) надежно изменяются при взаимодействии с пользователем. С селекторами атрибутов, а с другими, большинство браузеров, как правило, сохраняют состояние всех элементов при загрузке страницы, и любые внесенные изменения игнорируются. Но с псевдо -классы, они фактически изменяют стиль, когда псевдокласс становится истинным (или ложным).

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

Также интересно отметить, я думаю, что с некоторыми основанными на пользовательском интерфейсе псевдоклассами (я имею в виду конкретно : hover ]) только один элемент в любой момент времени действительно может иметь этот «класс», так что это скорее псевдоидентификатор, основанный на моем вышеупомянутом определении.

1
ответ дан 6 December 2019 в 23:11
поделиться

Из спецификации селектора w3c CSS2 :

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

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

  • Псевдоклассы классифицируют элементы по характеристикам, отличным от их имени, атрибутов или содержимого; в принципе характеристики, которые не могут быть выведены из дерева документа. Псевдоклассы могут быть динамическими в том смысле, что элемент может приобретать или терять псевдокласс, когда пользователь взаимодействует с документом. Исключениями являются «: first-child», который может быть выведен из дерева документа, и «: lang ()», который в некоторых случаях может быть выведен из дерева документа.

Таким образом, псевдокласс - это то, к чему вы можете прикрепить стиль, но вы никогда не распечатаете его самостоятельно в HTML. Кроме того, псевдокласс может быть получен и потерян в зависимости от взаимодействия пользователя с пользовательским интерфейсом.

1
ответ дан 6 December 2019 в 23:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: