В CSS есть один интересный вид селекторов – псевдоклассы. То есть классы, которые по умолчанию есть у элементов и их не нужно дополнительно задавать. Некоторые из них работают только для ссылок, а некоторые можно применить ко всем элементам. В любом случае css псевдоклассы сильно облегчают работу веб-разработчику.
Псвевдокласс – это стилевой класс элемента, который мы на самом деле не задавали сами, просто он есть сам по себе. Например, увидев в html такой код:
<p class = “special”>Абзац</p>
Вы абсолютно точно можете сказать, что у этого абзаца есть класс special
, потому что он там прописан. Но псевдоклассы не нужно писать, они есть у элементов по умолчанию и в этом их преимущество в данном случае. Далее давайте рассмотрим самые популярные из них.
Для ссылок
:visited
– цвет посещенной ссылки (по которой уже кликали).
:active
– активная ссылка. Стиль применяется в то мгновение, когда происходит клик по ссылке.
Для полей ввода и ссылок
:focus
– стиль применяется к элементу, который получает фокус ввода.
На самом деле для полей ввода появилось очень много новых классных псевдоклассов, но все они впервые введены в CSS3, а в этой статье я хотел бы обсудить только самые простые. О CSS3 селекторах обязательно будет статья в дальнейшем.
Для всех элементов
:hover
– стиль применяется при наведении на элемент:first-child
– выбрать первый дочерний элемент:last-child
– последний дочерний элемент-
:nth-child()
– в скобках записывается число или формула, которая определяет, какие элементы будут выбраны. Подробнее об этом псевдоклассе здесь. :first-of-type, :last-of-type, :nth-of-type()
– работают практически аналогично предыдущим псевдоклассам. Разница только в том, что здесь учитывается тип элемента. Разницу можно почувствовать на примере:
li:first-child
– будет выбран первый пункт списка, но только в том случае, если в родительском блоке элементli
идет первым. Если до него стоит другой тег, не выберется ничего.li:first-of-type
– будет выбран первый пункт списка из всех, что есть в родителе. При этом не важно, где они располагаются в коде. Надеюсь, разница понятна.:nth-last-child
– работает аналогично :nth-child, но отсчет ведется от последнего элемента, а не от первого.:nth-last-of-type
– аналогично :nth-last-child, но с учетом типа элемента.
Это не все псевдоклассы, но самые популярные и необходимые. О более специфических я обязательно напишу в будущем. Подписывайтесь на обновления, если не хотите пропустить. Собственно, все псевдоклассы помечаются в css одинаково, через двоеточие. К тому же можно комбинировать селекторы и получать интересные возможности:
a:visited:active
– стили для уже посещенной ссылки, на которую кликают.
div:first-child:hover
– стили для всех первых блоков в их родителях, на которые наводят курсор.
Как видите, такие селекторы дают большие возможности в плане стилизации элементов. Используйте их и сможете без труда дотянуться до любых элементов.