Original size 928x1232

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

PROTECT STATUS: not protected
25

Селекторы по псевдо-классу элемента (pseudo-classes)

Концепция псевдо-классов позволяет «выделять» не отмеченные тегами части документа по их псевдо-признакам. Псевдо-классы указываются через двоеточие.

Псевдо-классы «детей»

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

Например, элемент может быть первым или последним внутри какого-то другого элемента. Может быть единственным или стоять каким-то определённым номером по порядку.

E:first-child { styles block }

Селектор первого «ребёнка»

Селектор «выделит» все элементы типа E, которые идут первыми внутри какого-то другого элемента.

E:last-child { styles block }

Селектор последнего «ребёнка»

Селектор «выделит» все элементы типа E, которые идут последними внутри другого элемента.

E:only-child { styles block }

Селектор единственного «ребёнка»

Селектор выделит все элементы типа E только при условии, что каждый элемент один единственный находится внутри какого-то другого элемента.

E:first-of-type { styles block }

Селектор первого «ребёнка» по типу элемента

Селектор «выделит» все элементы типа E, которые также являются первыми внутри какого-то другого элемента.

E:last-of-type { styles block }

Селектор последнего «ребёнка» по типу элемента

Селектор «выделит» все элементы типа E, которые также являются последними внутри какого-то другого элемента.

E:only-of-type { styles block }

Селектор единственного «ребёнка» по типу элемента

Селектор «выделит» все элементы типа E, которые также являются единственными внутри какого-то другого элемента.

Селекторы по порядковому псевдо-классу «детей»

E:nth-child(n) { styles block }

Селектор «ребёнка» по порядку

«Выделит» все элементы типа E, которые являются «детьми» какого-то другого элемента и стоят по порядку под номером n (задаётся целым числом).

E:nth-last-child(n) { styles block }

E:nth-of-type(n) { styles block }

E:nth-last-of-type(n) { styles block }

Композитные селекторы «детей» по псевдо-классу

В этих селекторах совмещается техника выделения элементов стоящих последними, элементов по типу и стоящих в определённом порядке.

Другие селекторы по псевдо-классу

E:empty { styles block }

Селектор пустого элемента

Выделит все элементы типа E, внутри которых нет никакого контента и никаких других элементов.

E:target { styles block }

Селектор «якорных ссылок»

«Выделит» все элементы типа E, которые являются ссылками на какую-то часть страницы, на которой находится элемент.

E:not(F) { styles block }

Селектор «не»

«Выделит» все элементы типа E, которые не являются F. В качестве F можно использовать классы, идентификаторы, другие псевдо-классы и прочее.

Селекторы элементов по динамическому псевдо-классу (dynamic pseudo-classes)

Селекторы по псевдо-классу состояния ссылки (link pseudo-classes)

E:link { styles block }

Селектор непосещённой ссылки

Выделит все элементы, которые являются ссылками и по которым пользователь ещё не переходил.

E:visited { styles block }

Селектор посещённой ссылки

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

Селекторы по интерактивным псевдо-классам

E:hover { styles block }

Селектор элемента в состоянии «при наведении»

Выделит все элементы типа E, состояние которых в данный момент «при наведении». То есть над которыми пользователь в данный момент держит курсор.

E:active { styles block }

Селектор элемента в состоянии «при нажатии»

Выделит элемент типа E, на который пользователь нажал курсором и в данным момент держит элемент в «активном» состоянии.

E:focus { styles block }

Селектор элемента в состоянии «фокуса»

Выделит элемент типа E, который находится в состоянии «фокуса». В таком состоянии могут находится различные виды полей ввода и другие элементы ввода информации.

Селекторы элементов по их состоянию (UI element states pseudo-classes)

E:enabled { styles block }

E:disabled { styles block }

Селекторы «вслюченности»

Выделяют все элементы типа E, если доступны для взаимодействия с ними или не доступны. Применяется на интерактивных элементах, полях ввода, кнопках.

E:checked { styles block }

E:not(:checked) { styles block }

Селектор «поставленной галочки»

Выделит все элементы типа E, у которых стоит «галочка». Применяется на элементах типа: checkbox, radio. При совмещении с псевдо-классом: not можно выделить все элементы, у которых не стоит «галочка».

Селекторы псевдо-элементов

Ещё одна концепция, которая позволяет создавать и выделять так называемые псевдо-элементы. Псевдо-элементы указываются через двойное двоеточие.

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

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

E:first-letter { styles block }

Псевдо-элемент первой буквы

«Выделит» первую букву в тексте внутри всех элементов типа E. Таким способом можно сделать оформление типа «буквица».

E:first-line { styles block }

Селектор первой строки (first-line pseudo-element)

Выделит все первые строки всех элементов типа E.

E:before { styles block }

E:after { styles block }

Селекторы создания псевдо-элементов до или после элемента

Селекторы создают новый элемент, который будет стоять до или после всех элементов типа E. В псевдо-элемент можно добавить контент.

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

Существует ещё большое количество селекторов, которые реже применяются. Для того, чтобы полноценно ориентироваться в текущем стандарте CSS Selectors изучайте веб-стандарт CSS Selectors Level 3.

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

CSS селекторы: псевдо-классы и псевдо-элементы
25
We use cookies to improve the operation of the website and to enhance its usability. More detailed information on the use of cookies can be fo...
Show more