Контакты

CSS-селекторы и их виды. CSS селекторы – что это, зачем нужны и какими они бывают Виды css

CSS-селекторы – это определенная CSS-структура, позволяющая выбрать определенный элемент в HTML-коде и стилизовать его. Каждый из них обладает своей специфичностью, то есть может перекрывать по свойствам другие, более «слабые».

Селектор CSS по тегу и классу

Самые простые селекторы – по тегу и по классу. Селектор по тегу самый общий и выбирает все элементы с определенным тегом. Например, можно написать в свойствах CSS-код следующего вида: «p {color: blue}», где «p» – тег абзаца, а свойство «color: blue» обозначает цвет текста. В результате текст во всех абзацах окрасится в синий цвет. Селекторы по тегу можно перечислить через запятую, тогда не нужно будет писать свойство дважды.

Если некоторым абзацам присвоить какой-то класс, например «blue», тогда срабатывание селектора CSS можно настроить еще более точно. Но его запись в свойствах будет отличаться – перед названием класса появится точка. То есть, чтобы выбрать все абзацы, которым присвоен класс «blue» и окрасить их в синий цвет, нужно в свойствах CSS написать такой код: «.blue: {color: blue}». Этот селектор более специфичный, чем CSS-селектор по тегу, и сильнее его, но относится к самым простым. Существуют и более сложные правила, позволяющие выбирать небольшие группы элементов.

Особенности селекторов по идентификатору

Селекторы по id или по идентификатору более специфичны, чем по классу и по атрибуту. То есть при использовании в каскаде они будут «перевешивать» остальные подобные селекторы. Идентификаторы также помогают точно выбрать определенный элемент в коде, но их использование при оформлении страниц считается плохой практикой среди верстальщиков. Только в очень редких случаях, например при создании слайдера на CSS, такая практика допустима. Дело в том, что в пределах одной страницы может быть только один элемент с определенным id. Следовательно, из-за уникальности селектора CSS по id он может использоваться только для одного-единственного элемента. В этом случае намного логичнее использовать классы, а не идентификаторы.


Различные мнения о селекторе по id

Но существует и противоположное мнение, что идентификатор помогает определить тот фрагмент кода на странице, который должен быть в единственном экземпляре. При этом, хотя селекторы по классам могут заменить его, они должны использоваться для больших групп элементов, а в тех местах, где требуется точность, лучше использовать id. Каждый верстальщик вправе выработать свое личное мнение по этому вопросу и писать код в своей собственной стилистике. При написании селектора по id перед ним используется символ «#». То есть строка кода будет выглядеть так: «#blue: {color: blue}». При такой записи будет окрашен в синий цвет элемент с идентификатором «#blue».


Использование каскада

При использовании в HTML селекторов CSS по id можно также использовать свойство каскадности. Например, если внутри тега с идентификатором нужно выбрать какой-то дочерний тег и изменить его свойства, сначала нужно записать имя идентификатора с решеткой, затем дочерний тег и его свойства. Такие селекторы называются вложенными. То есть строка кода будет выглядеть примерно так: «#id p {color: blue}». Тогда внутри родительского элемента с этим идентификатором у дочернего абзаца цвет текста изменится на синий.

Использование селекторов дочерних элементов

Еще один вариант использования каскада для изменения свойств дочерних элементов используется, если нужно выбрать только определенную часть кода. Его также называют селектором потомков. Например, чтобы выбрать абзац внутри какой-то строки таблицы, используется следующая запись CSS селектора: «ul li > p: {color: blue}». Стоит обратить внимание на то, что чем длиннее запись, тем выше вероятность, что получится изменить какое-то конкретное свойство элемента, так как он становится более приоритетным для каскада. Например, элементы с каким-то другим свойством CSS-селектора по классу, который является родительским, не изменит свои свойства полностью. Перекрасится только определенная часть текста внутри списка.

Селектор сестринских элементов

Еще один интересный способ использования каскадности - соседние селекторы CSS. Записываются они как сумма селекторов: «span + a {color blue}». При этом соседом считается тот, под которым есть еще один, подходящий под нужные параметры. Таким образом, если в коде есть три элемента, то к первому из них свойство не применится, потому что у него нет соседнего, а ко всем последующим - да. Так происходит из-за значка суммы, когда складываются последующие селекторы, а не предыдущие. Такая запись помогает сократить код и не записывать несколько CSS-селекторов для разных тегов, применяя к ним одинаковые свойства. Если второму элементу списка задать дополнительно еще и класс, а запись изменить на «.class + a{color blue}», тогда отсчет пойдет от него и свойства изменятся у последующих подходящих под правило элементов, а два первых останутся прежними.


Теперь предположим, что в нашем коде есть три одинаковых тега с различными классами и нужно выбрать все элементы после какого-то определенного. В этом случае не поможет применение только лишь селекторов тегов CSS. Для этого используется селектор следующего вида: «.class ~ div». При этом выбираются элементы с тегом div, которые идут после заданного класса. Если мы хотим выбрать не только элементы с тегом div, но и все последующие, вместо тега после знака тильды нужно поставить символ звездочки - «*». Такая запись будет означать, что нужно выбрать все, что следует после заданного класса. Можно выбрать вообще все элементы на странице, если оставить в качестве селектора только звездочку.

Селекторы по CSS-атрибуту

Допустим, что в нашем коде присутствуют элементы с какими-то атрибутами, но все они отличаются друг от друга и написаны через дефис, а нам нужно выбрать все те, у которых название класса начинается с определенного слова, например «selector», и классы разделены знаком «-». Что нужно делать в этом случае? Запись селектора начинается с квадратных скобок, куда сначала записывается название атрибута, затем вертикальный слеш, знак «=» и «selector»: «data- |= selector». Далее пишем нужное свойство, которое хочется изменить. В результате выберется элемент с заданными параметрами. Меняя классы, можно менять и свойства определенных частей кода. Если же имена классов записаны не через дефис, а одним словом, тогда их тоже можно выбрать, но используя немного другую запись. В этом случае вертикальный слеш заменяется символом «^»: «data^ = selector». Такой селектор выбирает подстроку с началом названия класса.


Как выбрать элемент с определенным окончанием в названии класса

Теперь поступим иначе и выберем части кода не по началу описания класса, а по последним буквам в его названии. Для этого нам понадобится значок доллара. Ставим его на место галочки, а после знака равенства пишем окончание названия класса: «data$ = ctor». Теперь элементы с этим сочетанием букв будут выбраны и к ним применены определенные свойства. Выбирать можно любой атрибут. Разберем, как поступить, если нам нужно найти элемент с каким-то буквосочетанием в середине слова. В этом случае меняем знак доллара на звездочку, а после знака равенства пишем нужные буквы: «data* = ct».


Псевдоклассы – особые селекторы

Для ссылок обычно используются специальные селекторы стилей CSS, которые отображают различные их состояния: спокойное, в фокусе, активное, пройденное – они называются псевдоклассами. Псевдокласс для активной ссылки, на которую наведен курсор, пишется так: «а:active». Далее идут какие-то свойства, чаще всего меняется фон или добавляется тень. Если добавить это свойство для ссылки и кликнуть по ней, она изменить свой цвет на заданный. Еще один псевдокласс – hover показывает, что ссылка уже пройдена. Записывается он так: «a:hover».


Особенности состояний active и focus

Active часто путают с другим состоянием – focus. Записывается оно так: «a:focus» и обозначает активное состояние кнопки при работе с клавиатуры. То есть, если использовать клавишу TAB, активная ссылка будет выделяться особым цветом. Это свойство обязательно нужно использовать, так как пользоваться мышью для навигации по сайту могут не все пользователи. У некоторых может быть слабое зрение или другие ограничения по здоровью, потому перемещаются они по странице при помощи клавиш или специальных приспособлений. Игнорирование состояния кнопки в фокусе является большим минусом для такого параметра в дизайне сайта, как доступность, и оказывает значительное влияние на его посещаемость особой категорией пользователей. При обычной навигации при помощи мышки ссылка становится одновременно активной и в фокусе. Поэтому при стилизации элементов важно обращать внимание на это.

Псевдоэлементы

Псевдоэлементы позволяют задавать особые стили без его определения в самой структуре HTML. Записываются они так: имя селектора, знак «::», имя псевдоэлемента. Наиболее распространены элементы «before» и «after». У них есть свойство «content», они не могут применяться к внутренним стилям. «After» нужен для добавления какого-то контента после содержимого определенного элемента. Что именно нужно вставить, записывается в свойство «content». Аналогичным образом, псевдоэлемент «before» добавляет контент перед содержимым элемента. Использование этих особых селекторов позволяет сократить код и не писать каждый раз новую структуру для какой-то его части, если нужно добавить небольшую деталь в определенное место контейнера. Они очень часто используются при стилизации страниц и добавлении каких-то декоративных элементов. Комбинации всех этих вариантов помогают создавать необычные эффекты на странице и очень помогают работе верстальщика.

". Итак, селектор - это элемент, к которому применяется объявление в правиле стиля.

Термины, используемые в описании правил CSS.

Рис.1. Обычное правило CSS. Рис.2. Пример правила CSS.

Коротко про синтаксис записи правил CSS:

  • Объявление стиля в парвиле берётся в фигурные скобки - {}
  • Свойство и значение в объявлении разделяются двоеточием - :
  • В одном объявлении (в одной паре фигурных скобок) может быть указано сколько угодно пар свойство: значение
  • В конце каждой пары свойство: значение ставится точка с запятой - ;
  • После последней пары свойство: значение точку с запятой ставить не обязательно.
  • Синтаксис CSS не чувствителен пробельным символам (пробелы, табуляция, переносы сток).
  • Синтаксис CSS не чувствителен к регистру символов.

В качесте селекторов может выступать любой тег HTML, также есть селекторы класса либо id-селекторы. Рассмотрим всё по порядку.

Селекторы тегов

Как писалось ранее, любой тег может быть селектором в правиле CSS. Рассмотрим пример.

Синтаксис CSS

Привет!

Заголовок h2!

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

,

и

были синего цвета и выравнивались по центру блока. Для этого можно в селекторе перечислить эти теги, разделив их запятой. Вот пример кода:

Группирование в CSS

Привет h1!

Заголовок h2!

Такая запись стиля равносильна следующей группе правил:

Селекторы потомков

Можно назначать стилевые правила элементам в зависимости от того, вложен ли этот элемент в другой. Если один тег вложен в другой, то вложенный тег называется его потомком, а тег в который вложен потомок называется предком. Например, нужно задать абзацам

Внутри таблицы

красный цвет текста. Для решения такой задачи в селекторе элементы располагаются в порядке вложенности и разделяются пробелами. То есть наша задача решается так:

Селекторы потомков в CSS

Привет!

Текст абзаца в таблице.

Текст абзаца вне таблицы.

Все теги

Во всех таблицах документа будут отображать цвет красным цветом. Обратите внимание, то тег

Находящийся внутри тега

тоже отображает текст красным цветом.

На самом деле, вместо

можно было указать тег
, так как тег всегда должен содержать тег
.

Для дальнейшего изучения селекторов CSS нужно освоить несколько несложных терминов относящихся к структуре документа.

Дерево документа (англ. document tree) - это схема построения HTML документа, показывающая порядок следования тегов и их вложенность друг в друга. Приведём пример такой схемы:


Дерево документа наглядно показывает связи в HTML документе, порядок следования тегов и их вложенность. Его используют разработчики для написания CSS стилей и JavaScript сценариев.

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

Дерево документа.

Привет!

Текст абзаца и жирный.

    • Пункт 1.1
    • Пункт 1.2
    • Пункт 1.3
    1. Пункт 2.1
    2. Пункт 2.2
    3. Пункт 2.3

Итак, между тегами HTML документа существуют связи. Они выражаются в вложенности тегов или порядке следования одного тега за другим. Эти связи называют родственные связи, а для обозначения различных типов родственных связей используют термины, такие как предок и потомок, родительский и дочерний элемент и другией "семейные" термины.

Теперь рассмотрим все типы связей.

Предки и потомки

Предки (ancestor) - элементы, которые содержат другие элементы, то есть элемент является предком для всех вложенных в него элементов.

Потомки (descendant) - элементы, вложенные в другой элемент.

Селекторы потомков уже были рассмотрены выше.

Родители и дочерние элементы

Родитель (parent) - это предок первого уровня (непосредственный предок) для элемента. Дочерний элемент (child - ребёнок) - это потомок первого уровня. Родительский элемент может иметь неограниченное число детей.

В нашем дереве элементов у тега следующие дочерние элементы:

,

,

    и ещё один

    Братские или сестринские элементы

    Братские или сестринские элементы, (англ. siblings - братья и сестры), группа элементов имеющая общего родителя. Например, теги

    ,

    ,

      и второй

      Сестринские, так как у них общий родитель .

      Смежные элементы

      Смежные элементы - это соседние братские элементы, то есть элементы имеющие общего родителя и идущие радом в дереве элементов. В нашем примере смежными элементами будут пары:

      и

      ,

      И

        ,
          и

          Теперь вернёмся к селекторам.

          Дочерние селекторы

          Когда нас интересуют не все потомки, а только потомки первого уровня, то есть дочерние элементы, в CSS используют дочерние селекторы. Для указания того, что правило стиля задано только к дочернему элементу, в селекторе используется символ ">".

          Дочерние селекторы в CSS

          Привет!

          Текст абзаца в таблице.

          Текст абзаца в таблице (в контейнере div).

          Текст абзаца вне таблицы.

          HTML-код этого примера полностью совпадает с кодом примера для селектора потомков, отличается только правило стиля. В результате применения дочернего селектора текст абзаца в таблице в контейнере

          уже не красного цвета, так как для этого абзаца тег
          родитель, а тег

предок.

Смежный (соседний) селектор

Селектор смежного элемента выбирает элемент, расположенный непосредственно за другим заданным элементом. Синтаксис этого селектора: селектор предыдущего элемента, знак "+" и за ним селектор выбираемого элемента.

Давайте рассмотрим реальный пример. В больших статьях, содержащих несколько разделов озаглавленных тегами

, желательно увеличить верхний отступ (свойство margin-top ). Отступ в 20px будет придавать тексту читабельности. Но вот в случае, если тег

идёт сразу после

, а это может быть в начале статьи, вержний отступ над тегом

будет лишним. Решить такую задачу можно при помощи селектора смежного элемента.

Вот html-код с примером работы селектора смежного элемента.

Смежный селектор в CSS

Привет!

Заголовок h2

Заголовок h2

Текст абзаца в про невероятные приключения.

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

Родственный селекторы

Селектор родственного элемента похож на соседний селектор, только он распространяется на все указанные элементы, следующие за выбранным. Синтаксис родственного селектора: селектор предыдущего элемента, знак "~" (тильда) и за ним селектор выбираемых элементов.

Пример исользования сестринского селектора.

Селектор родственного элемента в CSS

Привет!

Текст абзаца №1 в про невероятные приключения.

Текст абзаца №2 в про невероятные приключения.

Текст div №1 в про невероятные приключения.

Текст абзаца №3 в про невероятные приключения.

Из примера видно, что после

тега текст абзаца №3 также был красным цветом. То есть, для присвоения стиля сестринские элементы не должны идти друг за другом.

Универсальный селектор

Если в селекторе правила CSS указан символ "*", то это правило применяется ко всем элементам страницы без исключения. Сложно представить себе случай, когда такое правило имеет смысл. Но есть один случай когда разработчик хочет "обнулить" все внешние и внутренние отступы. Тогда нужно использовать такой стиль:

* { margin: 0; padding: 0; }

Но символ "*" можно использовать в составных селекторах.

Ul * {color: red}

Этот код назначает красный цвет тексту всех потомков элемента

    .

    Классы

    Классы в CSS - самый расрпостранённый способ назначения стиля группе элементов. Класс применяют когда нужно задать разные стили элементам html-документа, созданным одним тегом. Синтаксис класса:

    Тег.Имя класса

    В селекторе стиля вначале пишется нужный тег, затем, через точку указывается имя класса. Имя класса должно начинаться с латинской буквы и может содержать в себе символы дефиса (-) и подчеркивания (_).

    Пример, когда применяют классы: на сайте верхнее, боковое и нижнее меню создаётся при помощи тегов

      , этим трём меню нужно создать три различных стиля. В CSS создают три класса ul.menu-top , ul.menu и ul.menu-bottom .

      В теле html-документа различные меню создаются с указанием класса в атрибуте class :

        class ="menu-top "> ...

        class ="menu "> ...

        class ="menu-bottom "> ...

      Классы - часто используемы инструмент CSS. Он удобен и, кроме того, делает код стиля более читаемым.

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

      *.Имя класса { свойство1 : значение ; свойство2 : значение ; ... }

      Эту запись можно сократить, убрав символ "*".

      Имя класса { свойство1 : значение ; свойство2 : значение ; ... }

      ID селекторы (идентификаторы)

      Идентификаторы - это типы селекторов, задающие уникальное имя элемента. Уникальное - значит встречающееся один раз в коде документа. При помощи идентификаторов можно создать стиль, но их основное предназначение - обращение к ним при помощи скриптов.

      При описании идентификатора вначале указывается символ решётки (#), затем идет имя идентификатора.

      #Имя идентификатора { свойство1 : значение ; свойство2 : значение ; ... }

      Также, как и имя класса, имя идентификатора должно начинаться с латинской буквы и может содержать в себе символы дефиса (-) и подчеркивания (_).

      Селекторы атрибутов

      В HTML есть ряд тегов, которые в зависимости от атрибутов меняют своё действие. Например, тег зависимости от значения атрибута type может создавать поле формы, кнопку и другие элементы формы. Так что, если применять стиль к селектору input , то он изменит все элементы формы, созданные этим тегом. Для точного управления такими элементами в CSS существуют селекторы атрибутов.

      Селекторы атрибутов бывают разные. При помощи селекторов атрибутов можно установить стиль тегу, если у него есть определённый атрибут или если определённый атрибут тега имеет определённое значение.

      Селекторы атрибутов - тема отдельной большой статьи. В рамках этой статьи мы лишь отметим, что они есть.

      Псевдоклассы

      Ещё одна большая тема в CSS - псевдоклассы. Приставка "псевдо" обозначает мнимость или ложность. Дело в том, это элементы html документа меняются в зависимости от действий пользователя. Например ссылка меняется в зависимости от наведения на неё курсора.

      При помощи псевдоклассов создаются динамические эффекты на странице.

      Синтаксис псевдокласса:

      Селектор:псевдокласс { свойство1 : значение ; свойство2 : значение ; ... }

      Можно применять псевдоклассы к селекторам идентификаторов или классов (ul.menu:hover {color : green }).

      Для новичков отмечу: если именам классов и идентификатов разработчик придумывает названия сам, то имена псевдоклассов в CSS - это зарезервированные слова.

      Псевдокласс :active выполняет правило стиля, если элемент активен. Например, на ссылку наведён курсор и произведён клик. Псевдокласс :hover - курсор мыши просто наведён на элемент, например на ссылку.

      Есть ещё много псевдоклассов. Полностью раскрыть тему псевдоклассов можно в рамках отдельной статьи. Тут мы коснулись её лишь поверхностно.

      Псевдоэлементы

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

      Псевдоэлементы CSS также обширная тема, для полного раскрытия которой требуется отдельная статья.

      Синтаксис псевдоэлементов такой же, как и у псевдоклассов:

      Селектор:псевдоэлемент { свойство1 : значение ; свойство2 : значение ; ... }

      Влад Мержевич

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

      Синтаксис применения идентификатора следующий.

      Универсальный селектор

      Влад Мержевич

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

      Для обозначения универсального селектора применяется символ звёздочки (* ) и в общем случае синтаксис будет следующий.

      * { Описание правил стиля }

      Селекторы атрибутов

      Влад Мержевич

      Многие теги различаются по своему действию в зависимости от того, какие в них используются атрибуты. Например, тег может создавать кнопку, текстовое поле и другие элементы формы всего лишь за счёт изменения значения атрибута type . При этом добавление правил стиля к селектору INPUT применит стиль одновременно ко всем созданным с помощью этого тега элементам. Чтобы гибко управлять стилем подобных элементов, в CSS введены селекторы атрибутов.

      Дочерние селекторы

      Влад Мержевич

      Дочерним называется элемент, который непосредственно располагается внутри родительского элемента. Чтобы лучше понять отношения между элементами документа, разберём небольшой код (пример 12.1).

      Пример 12.1. Вложенность элементов в документе

      HTML5 CSS 2.1 IE Cr Op Sa Fx

      Соседние селекторы

      Влад Мержевич

      Соседними называются элементы веб-страницы, когда они следуют непосредственно друг за другом в коде документа. Рассмотрим несколько примеров отношения элементов.

      Lorem ipsum dolor sit amet.

      В этом примере тег является дочерним по отношению к тегу

      Поскольку он находится внутри этого контейнера. Соответственно

      Выступает в качестве родителя .

      Контекстные селекторы

      Влад Мержевич

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

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

      Селектор - это часть CSS-правила, которая сообщает браузеру, к какому элементу (или элементам) веб-страницы будет применён стиль.

      Термин селектор может относиться к простому селектору (simple selector), составному селектору (compound selector), сложному селектору (complex selector) или списку селекторов.

      К простым селекторам относятся:

      • селектор типа
      • универсальный селектор
      • селекторы атрибутов
      • селектор идентификатора
      • селектор класса
      • псевдо-классы
      CSS селектор Пример Описание CSS
      .class .myClass Выбирает все элементы с классом myClass (class="myClass"). 1
      #id #main Выбирает элемент с идентификатором main (id="main"). 1
      * Выбор всех элементов. 2
      элемент span Выбор всех элементов . 1
      элемент,элемент div,span Выбор всех элементов
      и всех элементов .
      1
      [атрибут] Выбирает все элементы с атрибутом title . 2
      [атрибут="значение"] Выбирает все элементы с атрибутом title , значение которого в точности совпадает со значением указанным в селекторе (title="cost"). 2
      [атрибут~="значение"] Выбирает все элементы с атрибутом title , в значении которого (в любом месте) встречается подстрока (в виде отдельного слова) "один" (title="один и два"). 2
      [атрибут|="значение"] Выбор всех элементов с атрибутом lang , значение которого начинается с "ru". 2
      [атрибут^="значение"] a Выбор каждого элемента с атрибутом href , значение которого начинается с "https". 3
      [атрибут$="значение"] Выбирает все элементы с атрибутом src , значение которого оканчивается на ".png" (src="some_img.png"). 3
      [атрибут*="значение"] Выбирает все элементы с атрибутом title , в значении которого (в любом месте) встречается подстрока (в виде отдельного слова или его части) "один" (title="один и два"). 3

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

      Span.className p.className1.className2#someId:hover

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

      Список селекторов - это селекторы, перечисленные через запятую.

      Комбинаторы

      Для объединения простых CSS селекторов, используются комбинаторы, которые указывают взаимосвязь между простыми селекторами. Существует несколько различных комбинаторов в CSS2, и один дополнительный в CSS3, когда вы их используете, они меняют характер самого селектора.

      Псевдо-классы

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

      Псевдо-класс Пример Описание CSS
      :link a:link Выбор всех не посещенных ссылок. 1
      :visited a:visited Выбор всех посещенных ссылок. 1
      :active a:active Выбор активной ссылки. 1
      :hover a:hover Выбор ссылки при наведении курсора мышки. 1
      :focus input:focus Выбор элемента , который находится в фокусе. 2
      :first-child p:first-child Выбор каждого элемента

      Который является первым дочерним элементом своего родителя.

      2
      :lang(язык) p:lang(ru) Выбор каждого элемента

      С атрибутом lang , значение которого начинается с "ru".

      2
      :first-of-type p:first-of-type Выбор каждого элемента

      Который является первым из элементов

      3
      :last-of-type p:last-of-type Выбор каждого элемента

      Который является последним из элементов

      Своего родительского элемента.

      3
      :only-of-type p:only-of-type Выбор каждого элемента

      Который является единственным элементом

      Своего родительского элемента.

      3
      :only-child p:only-child Выбор каждого элемента

      Который является единственным дочерним элементом своего родительского элемента.

      3
      :nth-child(n) p:nth-child(2) Выбор каждого элемента

      Своего родительского элемента.

      3
      :nth-last-child(n) p:nth-last-child(2) Выбор каждого элемента

      Который является вторым дочерним элементом своего родительского элемента, считая от последнего дочернего элемента.

      3
      :nth-of-type(n) p:nth-of-type(2) Выбор каждого элемента

      Который является вторым дочерним элементом

      Своего родительского элемента.

      3
      :nth-last-of-type(n) p:nth-last-of-type(2) Выбор каждого элемента

      Который является вторым дочерним элементом

      Своего родительского элемента, считая от последнего дочернего элемента.

      3
      3
      :not(селектор) :not(p) Выбор всех элементов, кроме элемента

      .

      3

      Псевдо-элементы

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

Понравилась статья? Поделитесь ей