CSS-селекторы — CSS | MDN
Селектор определяет, к какому элементу применять то или иное CSS-правило.
Обратите внимание — не существует селекторов, которые бы позволили выбрать родителя (содержащий контейнер) или соседа родителя или потомков соседа родителя.
- Универсальный селектор
Выбирает все элементы. По желанию, он может быть ограничен определённым пространством имён или относиться ко всему пространству имён. Синтаксис:
*
ns|*
*|*
Пример:*
будет соответствовать всем элементам на странице.
- Селекторы по типу элемента
Этот базовый селектор выбирает тип элементов, к которым будет применяться правило. Синтаксис:
элемент
Пример: селектор** **input
выберет все элементы<input>
.- Селекторы по классу
Этот базовый селектор выбирает элементы, основываясь на значении их атрибута
class
. Синтаксис:.имяКласса
Пример: селектор** **.index
выберет все элементы с соответствующим классом (который был определён в атрибутеclass="index"
).- Селекторы по идентификатору
Этот базовый селектор выбирает элементы, основываясь на значении их
id
атрибута. Не забывайте, что идентификатор должен быть уникальным, т. е. использоваться только для одного элемента в HTML-документе. Синтаксис:#имяИдентификатора
Пример: селектор#toc
выберет элемент с идентификатором toc (который был определён в атрибутеid="toc"
).- Селекторы по атрибуту
Этот селектор выбирает все элементы, имеющие данный атрибут или атрибут с определённым значением. Синтаксис:
[attr] [attr=value] [attr~=value] [attr|=value] [attr^=value] [attr$=value] [attr*=value]
Пример: селектор[autoplay]
выберет все элементы, у которых есть атрибутautoplay
(независимо от его значения). =»https»] выберет все ссылки, у которых адрес начинается на «https».
- Комбинатор запятая
Комбинатор
,
это способ группировки, он выбирает все совпадающие узлы. Синтаксис:A, B
Пример:div, span
выберет оба элемента — и<div>
и<span>
.- Комбинатор потомков
Комбинатор
' '
(пробел) выбирает элементы, которые находятся внутри указанного элемента (вне зависимости от уровня вложенности). Синтаксис:A B
Пример: селекторdiv span
выберет все элементы<span>
, которые находятся внутри элемента<div>
.- Дочерние селекторы
Комбинатор
'>'
в отличие от пробела выбирает только те элементы, которые являются дочерними непосредственно по отношению к указанному элементу. Синтаксис:A > B
Пример: селектор** **ul > li
выберет только дочерние элементы<li>
, которые находятся внутри, на первом уровне вложенности по отношению к элементу<ul>
.- Комбинатор всех соседних элементов
Комбинатор
'~'
выбирает элементы, которые находятся на этом же уровне вложенности, после указанного элемента, с тем же родителем. Синтаксис:A ~ B
Пример:p ~ span
выберет все элементы<span>
, которые находятся после элемента<p>
внутри одного родителя.- Комбинатор следующего соседнего элемента
Комбинатор
'+'
выбирает элемент, который находится непосредственно после указанного элемента, если у них общий родитель. Синтаксис:A + B
Пример: селекторul + li
выберет любой<li>
элемент, который находится непосредственно после элемента<ul>
.
- Псевдоклассы
Знак
:
позволяет выбрать элементы, основываясь на информации, которой нет в дереве элементов.a:visited
соответствует всем элементам<a>
которые имеют статус «посещённые». Ещё пример:div:hover
соответствует элементу, над которым проходит указатель мыши. Ещё пример:input:focus
соответствует полю ввода, которое получило фокус.- Псевдоэлементы
Знак
::
позволяет выбрать вещи, которых нет в HTML. Пример:p::first-line
соответствует первой линии абзаца<p>
.
CSS специфичность
Last modified: , by MDN contributors
CSS селекторы
- Комбинаторы
- Псевдо-классы
- Псевдо-элементы
Селектор — это часть CSS-правила, которая сообщает браузеру, к какому элементу (или элементам) веб-страницы будет применён стиль.
Термин селектор может относиться к простому селектору (simple selector), составному селектору (compound selector), сложному селектору (complex selector) или списку селекторов.
К простым селекторам относятся:
- селектор типа
- универсальный селектор
- селекторы атрибутов
- селектор идентификатора
- селектор класса
- псевдо-классы
CSS селектор | Пример | Описание | CSS | |
---|---|---|---|---|
.class | .myClass |
Выбирает все элементы с классом myClass (class="myClass" ). |
1 | |
#id | #main |
Выбирает элемент с идентификатором main (id="main" ). | 1 | |
* | * |
Выбор всех элементов. | 2 | |
элемент | span |
Выбор всех элементов <span> . |
1 | |
элемент,элемент | div,span |
Выбор всех элементов <div> и всех элементов <span> . |
1 | |
[атрибут] | [title] |
Выбирает все элементы с атрибутом title . |
2 | |
[атрибут=»значение»] | [title="cost"] |
Выбирает все элементы с атрибутом title , значение которого в точности совпадает со значением указанным в селекторе ( title="cost" ). |
2 | |
[атрибут~=»значение»] | [title~="один"] |
Выбирает все элементы с атрибутом title , в значении которого (в любом месте) встречается подстрока (в виде отдельного слова) «один» (title="один и два" ). |
2 | |
[атрибут|=»значение»] | [lang|="ru"] |
Выбор всех элементов с атрибутом lang , значение которого начинается с «ru». =»https»] |
Выбор каждого элемента <a> с атрибутом href , значение которого начинается с «https». |
3 |
[атрибут$=»значение»] | [src$=".png"] |
Выбирает все элементы с атрибутом src , значение которого оканчивается на «.png» (src="some_img.png" ). |
3 | |
[атрибут*=»значение»] | [title*="один"] |
Выбирает все элементы с атрибутом title , в значении которого (в любом месте) встречается подстрока (в виде отдельного слова или его части) «один» (title="один и два" ). |
3 |
Составной селектор — это последовательность простых селекторов, которые не разделены комбинаторами, т. е. за одним селектором сразу идёт следующий. Он выбирает элемент, который соответствует всем простым селекторам, которые он содержит. Селектор типа или универсальный селектор, входящий в составной селектор, должен быть расположен первым в этой последовательности. В составном селекторе допустим только один селектор типа или универсальный селектор.
span[title].className p.className1.className2#someId:hover
Сложный селектор — это последовательность селекторов, которые разделены комбинаторами.
Список селекторов — это селекторы, перечисленные через запятую.
Комбинаторы
Для объединения простых CSS селекторов, используются комбинаторы, которые указывают взаимосвязь между простыми селекторами. Существует несколько различных комбинаторов в CSS2, и один дополнительный в CSS3, когда вы их используете, они меняют характер самого селектора.
Комбинатор | Пример | Описание | CSS |
---|---|---|---|
элемент элемент | div span |
Выбор всех элементов <span> внутри <div> . |
1 |
элемент>элемент | div>span |
Выбирает все дочерние элементы <span> , у которых родитель — элемент <div> . |
2 |
элемент+элемент | div+p |
Выбирает все элементы <p> , которые расположены сразу после элементов <div> . |
2 |
элемент1~элемент2 | p~ol |
Выбор всех элементов <ol> , которым предшествует элемент <p> . |
3 |
Псевдо-классы
Псевдо-класс – это простой селектор, который используется для выбора того, что не может быть выбрано с помощью других селекторов или может быть выбрано, но достаточно трудным способом.
Псевдо-класс | Пример | Описание | CSS |
---|---|---|---|
:link | a:link |
Выбор всех не посещенных ссылок. | 1 |
:visited | a:visited |
Выбор всех посещенных ссылок. | 1 |
:active | a:active |
Выбор активной ссылки. | 1 |
:hover | a:hover |
Выбор ссылки при наведении курсора мышки. | 1 |
:focus | input:focus |
Выбор элемента <input> , который находится в фокусе. |
2 |
:first-child | p:first-child | Выбор каждого элемента <p> , который является первым дочерним элементом своего родителя. |
2 |
:lang(язык) | p:lang(ru) |
Выбор каждого элемента <p> с атрибутом lang , значение которого начинается с «ru». |
2 |
:first-of-type | p:first-of-type |
Выбор каждого элемента <p> , который является первым из элементов <p> своего родительского элемента. |
3 |
:last-of-type | p:last-of-type |
Выбор каждого элемента <p> , который является последним из элементов <p> своего родительского элемента. |
3 |
:only-of-type | p:only-of-type |
Выбор каждого элемента <p> , который является единственным элементом <p> своего родительского элемента. |
3 |
:only-child | p:only-child |
Выбор каждого элемента <p> , который является единственным дочерним элементом своего родительского элемента. |
3 |
:nth-child(n) | p:nth-child(2) |
Выбор каждого элемента <p> , который является вторым дочерним элементом своего родительского элемента. |
3 |
:nth-last-child(n) | p:nth-last-child(2) |
Выбор каждого элемента <p> , который является вторым дочерним элементом своего родительского элемента, считая от последнего дочернего элемента. |
3 |
:nth-of-type(n) | p:nth-of-type(2) |
Выбор каждого элемента <p> , который является вторым дочерним элементом <p> своего родительского элемента. |
3 |
:nth-last-of-type(n) | p:nth-last-of-type(2) |
Выбор каждого элемента <p> , который является вторым дочерним элементом <p> своего родительского элемента, считая от последнего дочернего элемента. |
3 |
:last-child | p:last-child |
Выбор каждого элемента <p> , который является последним элементом своего родительского элемента. |
3 |
:root | :root |
Выбор корневого элемента в документе. | 3 |
:empty | p:empty |
Выбор каждого элемента <p> , который не содержит дочерних элементов (включая текст). |
3 |
:target | :target |
Выбор текущего целевого элемента на странице, то есть элемента, к которому был осуществлён переход по ссылке внутри страницы. | 3 |
:enabled | input:enabled |
Выбор каждого включенного элемента <input> . |
3 |
:disabled | input:disabled |
Выбор каждого выключенного элемента <input> . |
3 |
:checked | input:checked |
Выбор элемента <input> , выбранного по умолчанию или пользователем. |
3 |
:not(селектор) | :not(p) |
Выбор всех элементов, кроме элемента <p> . |
3 |
Псевдо-элементы
Псевдо-элемент – это виртуальный элемент, который не существует в явном виде в дереве элементов документа. Псевдо-элементы используются для выбора тех частей элемента, которые не могут быть выбраны с помощью других селекторов, а также для стилизации не всего элемента, а отдельных его частей.
Псевдо-элемент | Пример | Описание | CSS |
---|---|---|---|
::first-letter | p::first-letter |
Выбор первой буквы каждого элемента <p> . |
1 |
::first-line | p::first-line |
Выбор первой строки каждого элемента <p> . |
1 |
::before | p::before |
Добавляет элемент с содержимым перед содержимым каждого элемента <p> . |
2 |
::after | p::after |
Добавляет элемент с содержимым после содержимого каждого элемента <p> . |
2 |
Селекторы | Основы верстки контента
Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером
В прошлых уроках и упражнениях мы использовали достаточно простые селекторы. Они позволяли выбрать элементы, к которым будут применены CSS правила. Вы уже умеете выбирать элемент по его тегу, классу, идентификатору и найти вложенный элемент.
CSS дает намного большие возможности по выбору элементов. В этом уроке мы изучим самые популярные селекторы второго и третьего уровня спецификации W3C. В конце урока будут оставлены ссылки на спецификации, в которых вы сможете узнать и о других селекторах.
Выбор соседнего элемента
Ранее использование селекторов указывало, какой конкретно элемент мы хотим выбрать и где он находится относительно своих родительских блоков. В большинстве случаев этого достаточно для точного указания элемента, но бывают случаи, когда нужно выбрать соседний элемент, а не вложенный. Например,
<section> <div>...</div> <div>...</div> </section>
По условию нашей задачи элемент timer
полностью зависит от блока time
. Предположим, что стиль таймера меняется в зависимости от наличия элемента с классом time
. Есть несколько путей решения такой задачи:
- Положить оба элемента в единого родителя и дать им уникальные классы для разных ситуаций.
- Воспользоваться селектором соседнего элемента.
Чаще всего, именно первый вариант будет предпочтительным. При этом вы не раз столкнетесь с ситуациями, когда это невозможно. Такое может происходить при динамическом добавлении элементов на страницу. И тут на помощь приходят селекторы.
В CSS существует два селектора для выбора элемента, который лежит рядом с другим элементом:
A + B
— выбор элемента B, который находится непосредственно после элемента A. Такой селектор называется смежным или соседнимA ~ B
— выбор элемента B, который находится на том же уровне вложенности, что и A. При этом они имеют общего родителя и все элементы B находятся после элемента A в HTML. Такой селектор называется родственным.
Для примера выше отлично подойдет смежный селектор. Элементы time
и timer
идут друг за другом и являются дочерними элементами одного и того же родителя. Стилизуем элемент timer
в зависимости от существования элемента time
:
Родственный селектор позволяет немного усложнить ситуацию. Ведь теперь будет возможность не просто выбрать соседний элемент, а элемент, лежащий на том же уровне. Изменим пример, который позволит наглядно продемонстрировать возможность родственного селектора.
<section> <h3>...</h3> <div>...</div> <h4>...</h4> <div>...</div> </section>
Схематически CSS будет выглядеть следующим образом:
.time ~ .timer { /* Стили элемента */ }
Селекторы по атрибуту
Атрибуты — неизменная часть работы верстальщика и фронтенд-разработчика. Они не всегда несут в себе семантический смысл, как например атрибут alt
, title
, class
, id
и так далее.
HTML позволяет добавлять любые пользовательские атрибуты и работать с ними. Пользовательскими считаются такие атрибуты, которые мы определяем сами. Их не существует в документациях, спецификациях. Они нужны для разработчиков, чтобы удобнее обращаться к элементам или отделять похожие элементы. Целей может быть много и, с приобретением опыта, особенно при работе с языком JavaScript, вы заметите, что пользовательские атрибуты используются не так редко, как может показаться с самого начала.
Для стилизации таких элементов в CSS существуют специальные селекторы.
Самый простой селектор по атрибуту просто выбирает элемент по его атрибуту. В CSS атрибут записывается внутри квадратных скобок, это и будет самым простым селектором по атрибуту. Для демонстрации создадим свой атрибут data-full-screen
— это будет пользовательский атрибут и вы его не найдете в документациях. Для тренировки можете его назвать совершенно другим образом — смысл действий от этого не изменится:
<section data-full-screen></section>
section[data-full-screen] { width: 100vw; height: 100vh; background: #2196f3; }
Можно выбирать не только по названию атрибута, но и по его значению. В этом случае рядом с именем атрибута указывается его значение в следующем синтаксисе:
<section data-full-screen="true"></section>
section[data-full-screen="true"] { width: 100vw; height: 100vh; background: #2196f3; }
С опытом вы заметите, что многие JavaScript библиотеки работают именно с пользовательскими атрибутами. Это позволяет добиться изолированности компонентов и их удобного переиспользования.
Бывают ситуации, когда в HTML есть группа элементов с одинаковыми именами атрибутов, но с разными значениями. Причем некоторые из них могут быть похожи друг на друга, составляя части одного компонента. Например,
<section data-nm-section="catalog"></section> <section data-nm-section="catalog-popular"></section> <section data-nm-section="catalog-new"></section>
Все три секции, по своей логике, будут иметь похожее оформление. Можно добавить всем одинаковый класс, но существует одна проблема: если элементы добавляются динамически, с помощью JS, то есть вероятность существования такого же класса внутри проекта. =»catalog»] { width: 50px; height: 50px; margin-bottom: 10px; background: #2196f3; }
Есть еще несколько похожих конструкций, которые ищут «вхождение» подстроки в строку:
[data-nm-section$="catalog"]
— вхождение подстроки в конце значения атрибута.
Способы задавать CSS-стили для HTML-элементов
1 year ago | 17.2K
Всем привет, с вами Сергей Никонов и в этой статье я расскажу про CSS-селекторы и как с помощью них задавать CSS-стили для вашего сайта. Мы рассмотрим различные способы и правила, как с помощью CSS-селекторов задавать стили для HTML-страницы.
Это один из уроков курса HTML/CSS Advanced и если вы хотите научиться верстать веб-сайты на профессиональном уровене, я рекомендую проходить этот курс на сайте FructCode с интерактивными упражнениями для закрепления ваших знаний полученных из курса верстки сайтов.
Только на сайте FructCode вы можете найти актуальных версии моих курсов!
Содержание
- Что такое CSS-селекторы (CSS Selectors)
- Универсальный CSS-селектор * (звездочка)
- CSS-селекторы по классу (Class selectors)
- Запись CSS-стилей через точку «. » и без пробелов
- Запись CSS-стилей через запятую «,»
- Запись CSS-стилей через пробел (space)
- Запись CSS-стилей через знак больше «>»
- Запись CSS-стилей через знак “~»
- Запись CSS-стилей через знак плюс «+»
- Запись CSS-стилей для HTML-элемента по атрибуту
- Вывод
Что такое CSS-селекторы (CSS Selectors)
CSS-селекторы — это специальные выражения описанные с помощью CSS (каскадные таблицы стилей), которые задают правила, как браузеру применять CSS-стили для HTML-элементов, которые определяются внутри блока CSS-стилей.
На первый взгляд вам может показаться, что определение CSS-селекторов сложное и непонятное. Но не волнуйтесь, на самом деле на практике все намного проще, чем кажется. И давайте сейчас на простых примерах рассмотрим что такое CSS-селекторы.
Видео Что такое CSS-селекторы: Способы задавать стили для HTML-элементов
Кстати, не забудь подписаться на наш YouTube канал FructCode, где вы можете найти много полезных обучающих видео о верстке сайтов.
Универсальный CSS-селектор * (звездочка)
С помощью универсального CSS-селектора * (звездочка) вы можете задавать правила какие CSS-стили применять сразу ко всем HTML тегам.
Пример кода, как задать с помощью универсального CSS-селектора * (звездочка) стили для всех HTML-элементов.
Посмотрите пример:
В итоге, ко всем HTML-тегам на странице, включая h2, span, div и другим применятся CSS-стили: размер шрифта 30px, цвет текста красный.
Универсальный CSS-селектор используется достаточно частно при создании верстки сайтов и вот почему. Дело в том, что пользователи используют различные браузеры: Google Chrome, Mozilla Firefox, Safari, Opera, Edge, различные мобильные браузеры и даже Internet Explorer старых версий. И каждый из браузеров может задавать свои CSS-стили для HTML-элементов по умолчанию. И та же HTML-форма будет выглядеть в разных браузерах по-разному.
И для того, чтобы ваш веб-сайт соответствовал макету дизайна сайта, обычно используют сброс стандартных стилей (reset css), которые задают браузеры. Reset CSS представляет набор CSS-стилей, который подключается к HTML-странице, в котором прописаны правила отображения для всевозможных HTML-элементов.
Если вы не знаете как подключить внешний файл с CSS-стилями к HTML-странице, посмотрите это видео.
При применении Reset CSS или Normalize CSS, HTML-элементы выглядит примерно одинаково в большинстве браузеров.
CSS-селекторы по классу (Class selectors)
С помощью данного css-селектора вы можете задавать стили для HTML элементов у которых установлен тот или иной class.
Простой пример CSS-селектора по классу:
Запись CSS-стилей через точку «.» и без пробелов
Когда вы задаете CSS-стили через точку «.» и без пробелов (как в примере ниже) — это обозначает, что CSS-стили применятся ко всем тегам <div>, у кого установлен класс .color. При этом, даже если у других html-элементов установлен class с именем .color, но этот html-элемент не является <div>, стили к данному элементу не применятся и элемент <span> с классом color не будет выделятся красным цветом.
Посмотрите пример:
А запись в виде div.color.text-color, когда без пробелов описывается несколько классов, обозначает, что стили применятся только к <div> который имеет сразу два класса .color и .color-text и не применятся стили к <div> к которому присвоен только один class с именем .color.
Посмотрите пример:
Запись CSS-стилей через запятую «,»
Если вы перечисляете CSS-стили через запятую, например так: «span, li» — это обозначает, что CSS-стили будут применены и к HTML-элементу <li> и к <span> одновременно.
Посмотрите пример:
Запись CSS-стилей через пробел (space)
А так, с помощью CSS-селекторов (комбинатор потомков или descendant combinator), когда вы указываете в CSS-стилях элементы через пробел, вы можете применить стили к html-элементам, которые находятся внутри этих html-элементов вне зависимости от вложенности.
В примере ниже показано, что css-стили, при записи через пробел ul li зададут фоновый цвет всем элементам <li> только внутри тега <ul>:
Еще один пример для лучшего понимания как задать CSS-стили с помощью CSS-селекторов, когда вы пишите стили через пробел. Мы можем задать внутри <ul> всем тегам <strong>, независимо на каком уровне вложенности находится <strong>, фоновый цвет «gray»:
Также можно писать вместо названия самого HTML-тега, название класса и CSS-стили будут применены внутри элемента <ul> для элемента с классом .gray и не будут зависеть от вложенности. При этом данные стили не применятся для <span> с классом .gray, так как этот <span> находится за пределами тега <ul>:
Запись CSS-стилей через знак больше «>»
При использовании комбинатора со знаком больше (>), CSS-стили задаются только для тех HTML-элементов, которые являются дочерними по отношению к задаваемому HTML-элементу.
Лучше понять как работает комбинатор “>” вам поможет пример.
Этот стиль применится только для первого потомка (child), но не будет работать для последующих:
А эти стили применятся для strong, потому-что strong — это прямой потомок <span>:
Запись CSS-стилей через знак “~»
С помощью знака “~» можно выбирать все HTML-элементы, которые являются потомками указанного элемента.
Пример как с помощью записи CSS-стилей со знаком “~” выделить все HTML-элементы <li> после <li> с классом “color”:
Запись CSS-стилей через знак плюс «+»
Если c помощью записи CSS-стилей со знаком “~» можно выбирать все HTML-элементы, которые являются потомками(child) указанного элемента, то с помощью записи плюс “+” можно выбрать только один HTML-элемент.
И вот простой пример:
Запись CSS-стилей для HTML-элемента по атрибуту
Имея название HTML-атрибута, мы можем задавать стили для данного HTML-элемента. Ярким примером может служить <input> и мы можем задавать CSS-стили исходя из атрибута.
Например у нас есть какая-то html-форма и мы хотим задать разные CSS-стили для <input> с разными type: text и password. Когда мы будем печатать текст в <input> с типом text мы хотим задать цвет текста «green», а для <input> с типом password мы хотим задать цвет текста «magenta». И с помощью CSS-селекторов по атрибуту мы можем это сделать:
Для HTML-элементов можно задавать атрибуты, которые мы можем и сами придумать. Атрибуты задаются для различных целей, когда нужно запрограммировать определенное поведение. И мы им также может задавать CSS-стили:
Вывод
Пользоваться CSS-селекторами достаточно просто и самое главное — это практика, тогда вы все очень быстро запомните! Курс HTML/CSS Advanced содержит в себе большое количество интерактивных упражнений, выполняя которые, вы будете быстрее запоминать пройденный материал.
Также рекомендуем подписаться на наш YouTube канал FructCode, где переодически появляются полезные материалы для обучения верстке сайтов и программированию.
С вами был Сергей Никонов, успехов в обучении!
Селекторы CSS и их применение в автоматизации тестирования Программного Обеспечения / Хабр
Всем добра!
Данную тему мы уже раскрывали на вебинаре, который проводил наш преподаватель, но решили дополнить чуть текстом (да и многим, как оказалось, так удобнее). В общем представляем статью на тему «Селекторы CSS», которую Павел Попов прорабатывал в рамках нашего курса «Автоматизация в тестировании».
Поехали.
Каждый курс или статья для начинающих автоматизаторов рассказывает об удобном и универсальном средстве поиска элементов Web-страницы, как XPath. Данный вид локаторов на элемент был создан в 1999 году для указания на элементы в XML файлах. С помощью встроенных функций XPath стал очень популярным инструментом поиска элементов на Web-странице. Если HTML код вашего приложения выглядит как-то так:
… <form class=“form_upload> <div> <div class=“row_element_3 row tile_fixed”> <div class=“button_cell wrapper_tile”> <button type=“submit” class=“button_submit wrapper_button”>Нажми меня</button> </div> </div> </div> </form> …
и вы не можете найти достойный XPath для кнопки “Нажми меня”, не стоит сразу бежать в сторону разработчика с просьбой о помощи. Есть отличная возможность воспользоваться CSS селектором, он будет выглядеть так:
. button_submit
Добро пожаловать в мир CSS.
Принято считать, что в CSS селекторах все завязано на классы. Это не совсем так, но если Web приложение использует “оптимизатор” или “обфускатор” HTML кода, и выглядит вот так:
<form class=“afhfsdh__”> <div> <div class=“hfgeyq fjjs qurlzn”> <div class=“fjdfmzn fjafjd”> <button type=“submit” class=“ajffalf wjf_fjaap”></button> </div> </div> </div> </form> …
(все названия css классов уменьшены с помощью оптимизатора)
, то получить короткий CSS селектор не удастся — как правило, после каждого нового билда css классы меняются на новые. Но все равно, CSS селектор может оказаться проще и в этом случае: css: form button[type=‘submit’]
, вместо XPath: //form//button[@type=‘submit’]
Допустим, что оптимизаторы HTML у нас не установлены и разработчики не планируют его использовать на проекте (проверьте этот факт!).
Как вы могли уже догадаться, символ. используется вместо слова class и будет искать вхождение данного класса в любом элементе, в независимости от количества классов у этого элемента.
Смотрите:
<form class=“form_upload> <div> <div class=“row_element_3 row tile_fixed”> <div class=“button_cell wrapper_tile”> <button type=“submit” class=“button_submit wrapper_button”></button> </div> </div> </div> </form>
css для элемента button: .button_submit
, при этом класс .wrapper_button
указывать необязательно, но если он нужен для указания на наш класс, мы можем его добавить сразу после указания первого css класса: css: .button_submit.wrapper_button
. Порядок классов роли не играет, поэтому их можно поменять местами:
.wrapper_button.button_submit .
Следующим незаменимым помощником в поиске HTML элементов являются Теги. Написать css селектор, указывающий на тег button очень просто, тем более, что он уже был написан в этом предложении. CSS селектор для button –
css: button.
И ничего больше указывать вам не требуется, если ваша цель — это привязка к тегу. Совмещая теги и классы получаем::
button.button_submit
и это также является css селектором к нашему элементу.
Помимо тегов, атрибуты также помогают уникально идентифицировать элемент на странице. Часто разработчики создают дополнительные атрибуты вместо добавления новых “айдишников”, например, могут создавать дополнительные атрибуты data-id или auto-id у каждого элемента, с которым планируется дальнейшее действие. К примеру, разработчики могут добавить атрибут data-id
к нашей кнопке button. Тогда к атрибутам с помощью css селектора можно обратиться через фигурные скобки: [data-id=‘submit’]
. Дополнительно, вы можете не указывать значение атрибута после знака равно [data-id]
. Такой селектор найдет вам все элементы, у которого существует атрибут data-id
с любым значением внутри. Вы также можете указать атрибут class для поиска нашей кнопки: [class=‘button_submit’]
, но в CSS, как вы уже знаете, можно полениться и написать так: .button_submit
. Соединять все вместе также достаточно просто:
button[type=‘submit’].button_submit тег атрибут класс
Но это большая удача, если нам удается находить элемент, используя селектор с указанием только одного элемента, как, например, использовать атрибут [data-id] который однозначно находит один элемент на странице. Очень часто нам приходится использовать предков элемента, чтобы найти потомка. И это в CSS тоже возможно сделать достаточно просто:
<form class=“form_upload> <div> <div class=“row_element_3 row tile_fixed”> <div class=“button_cell wrapper_tile”> <button type=“submit” class=“button_submit wrapper_button”></button> </div> </div> </div> </form>
css:form > div > div > div > button. button_submit
и знак >
позволяет найти элемент исключительно у предка внутри. Но писать все элементы ненужно, так как в CSS есть возможность поиска во всех потомках, этот символ — пробел “ “
. Используя данный указатель мы можем быстро найти элемент внутри формы:
Было: css: form > div > div > div > button.button_submit
Стало: css: form button,button_submit
Удобно также находить следующего “родственника” через предыдущего. Дополним наш пример еще одним span
:
<form class=“form_upload> <div> <div class=“row_element_3 row tile_fixed”> <div class=“button_cell wrapper_tile”> <div class=“content”></div> <span data-id=“link”>Ссылка</span> <!-- элемент с атрибутом data-id --> <button type=“submit” class=“button_submit wrapper_button”> <!-- искомая кнопка --></button> </div> </div> </div> </form>
[data-id=‘link’] + button
найдет button
, у которого выше на один уровень есть родственник с атрибутом data-id=”link”
. Этим указателем можно пользоваться, когда у предыдущего элемента есть id или уникальный атрибут, а у элемента, который находится следующим после нужного, таких идентификаторов нет. Итак, с помощью символа + css селектор найдет следующего родственника.
NOTE:
div + span[data-id=‘link’] + button
Дополнительно вы можете собирать “паровозик” из следующих элементов с использованием указателя +, но не советую это делать из-за возможного изменения местонахождения элементов.
Не стоит упускать вариант поиска по части атрибута. Делается это просто: button[class*=‘submit’]
— из длинного названия класса button_submit
мы берем только правую часть submit
и добавляем к знаку = символ *. Также можно найти по слову cell
из значения класса: div[class*=‘cell’]
.
Есть еще одна особенность css селекторов, которая позволит найти вам все ссылки или расширения файлов, это ^=
и $=
, но такая задача стоит не так часто, как поиск по вхождению значения у атрибута. =“https:”] — найдет все ссылки, которые начинаются с https,a[href$=“.pdf”]
— найдет все ссылки, которые заканчиваются на .pdf.
Немного о том, как найти потомков с одним и тем же тегом у предка. Начнем, как всегда, с примера:
<div class=“tiles”> <div class=“tile”>…</div> <div class=“tile”>…</div> </div>
Как найти второй div class=“tile”
у div class=“tiles”
? Варианта два:
div > div:nth-of-type(2) div > div:nth-child(2)
Но в чем различие между этими двумя селекторами? Дополним пример:
<div class=“tiles”> <a class=“link”>…</a> <!—1—> <div class=“tile”>…</div><!—2—> <div class=“tile”>…</div><!—3—> </div>
css 1 вариант: div > div:nth-of-type(2)
css 2 вариант: div > div:nth-child(2)
Теперь эти селекторы ведут на два разных элемента. Прежде чем идти далее, попробуйте догадаться, какой селектор ведет на какой элемент?
Разгадка:
первый селектор будет указывать на строчку номер 2, тогда как второй селектор будет указывать на строчку номер 3. nth-child
ищет второй div
, который является потомком родителя . Второй
<div>
у элемента
<div class=“tiles”>
это третья строка. В свою очередь nth-of-type
ищет второй элемент у родителя
<div class=“tiles”>
, который должен являться тегом
div
, это строка номер два.
Есть правило, которое позволяет упростить работу с селекторами в ситуации, когда вам нужно найти конкретный элемент: использовать nth-of-type
везде, где это возможно. Если вы разобрались с примером выше, рекомендую вам всегда обращать внимание на количество одинаковых элементов у предка, используя nth-child
, и тогда вам будет неважно, куда поместят ссылку
<a>
: наверху, между
<div>
или внизу блока, всегда селектор div:nth-child(2)
будет все равно указывать на нужный элемент – второй элемент div внутри блока.
Была опущена еще одна функция поиска элемента по id. Вы уже знаете, что поиск по любому из атрибутов осуществляется с использованием указания квадратных скобок [attribute=“value”]
и для нашего случая мы можем найти элемент так [id=“value”]
. А что если есть существует более быстрый способ поиска по id элемента?
#value. “#” - указатель, что поиск осуществляется по id.
Используя все приобретенные навыки попробуйте написать селектор для кнопки
<button>
Отправить … <div> <div class=“tile_wrapper tile content”> <div class=“row row_content”> <div class=“outline description__on”></div> <div class=“outline description__off button_send hover_mouse”> <button class=“outline button_send”>Отправить</button> </div> </div> </div> </div>
Будем рады увидеть ваши комментарии и варианты в комментариях тут или обсудить это на очередном открытом уроке, который пройдёт у нас 13-го марта.
Спасибо!
Селекторы — Справочник CSS
❮ Назад Вперед ❯
В CSS селекторы — это шаблоны, используемые для выбора элементов, которые вы хотите стилизовать.
Используйте наш CSS Тестер Селектора продемонстрировать различные селекторы.
Селектор | Пример | Описание |
---|---|---|
.class | .intro | Выделяет все элементы с |
#id | #firstname | Выделяет все элементы с |
* | * | Выделяет все элементы |
элемент | p | Выделить все элементы <p> |
элемент,элемент | div, p | Выделить все элементы <div> и <p> |
элемент элемент | div p | Выделить все элементы <p> внутри элементов <div> |
элемент>элемент | div > p | Выделить все элементы <p> где родителем является элемент <div> |
элемент+элемент | div + p | Выделить все элементы <p> которые размещаются сразу после элементов <div> |
элемент1~элемент2 | p ~ ul | Выделить каждый элемент <ul> которые размещаются сразу перед элементом <p> |
[атрибут] | [target] | Выделяет все элементы с атрибутом target |
[атрибут=значение] | [target=_blank] | Выделяет все элементы с target=»_blank» |
[атрибут~=значение] | [title~=flower] | Выделяет все элементы с атрибутом title, содержащие слово «flower» |
[атрибут|=значение] | [lang|=en] | Выделяет все элементы со значением атрибута lang, начиная с «en» |
[атрибут^=значение] | a[href^=»https»] | Выбирает каждый элемент <a>, значение атрибута href который начинается с «https» |
[attribute$=значение] | a[href$=». pdf»] | Выбирает каждый элемент <a>, значение атрибута href который заканчивается на «.pdf» |
[атрибут*=значение] | a[href*=»schoolsw3″] | Выбирает каждый элемент <a>, значение атрибута href которого содержит подстроку «schoolsw3» |
:active | a:active | Выбор активной ссылки |
::after | p::after | Вставляет что-нибудь после содержимого каждого элемента <p> |
::before | p::before | Вставить что-то перед содержимым каждого элемента <р> |
:checked | input:checked | Выбирает каждый проверенный элемент <input> |
:disabled | input:disabled | Выбрать каждый отключенный элемент lt;input> |
:empty | p:empty | Выбирает каждый элемент <p>, у которого нет дочерних элементов (включая текстовые узлы) |
:enabled | input:enabled | Выбирает каждый включенный элемент <input> |
:first-child | p:first-child | Выбирает каждый элемент <p>, который является первым дочерним элементом родительского элемента |
::first-letter | p::first-letter | Выбирает первую букву каждого элемента <p> |
::first-line | p::first-line | Выбирает первую строку каждого элемента <p> |
:first-of-type | p:first-of-type | Выбирает каждый элемент <p>, который является первым элементом <p> своего родителя |
:focus | input:focus | Выбирает элемент ввода, имеющего фокус |
:hover | a:hover | Выделяет ссылки при наведении курсора мыши |
:in-range | input:in-range | Выделяет входные элементы со значением в заданном диапазоне |
:invalid | input:invalid | Выбирает все входные элементы с недопустимым значением |
:lang(language) | p:lang(it) | Выбирает каждый элемент <p> с атрибутом lang, равным «it» (итальянский) |
:last-child | p:last-child | Выбирает каждый элемент <p>, который является последним дочерним элементом родительского элемента |
:last-of-type | p:last-of-type | Выбирает каждый элемент <p>, который является последним элементом <p> своего родителя |
:link | a:link | Выделяет все непосещенные ссылки |
:not(selector) | :not(p) | Выбирает каждый элемент, который не является элементом <p> |
:nth-child(n) | p:nth-child(2) | Выбирает каждый элемент <p>, который является вторым дочерним элементом родительского элемента |
:nth-last-child(n) | p:nth-last-child(2) | Выбирает каждый элемент <p>, который является вторым дочерним элементом родительского элемента, считая от последнего дочернего элемента |
:nth-last-of-type(n) | p:nth-last-of-type(2) | Выбирает каждый элемент <p>, который является вторым элементом <p> своего родителя, считая от последнего потомка |
:nth-of-type(n) | p:nth-of-type(2) | Выбирает каждый элемент <p>, который является вторым элементом <p> своего родителя |
:only-of-type | p:only-of-type | Выбирает каждый элемент <p>, который является единственным элементом <p> родительского элемента |
:only-child | p:only-child | Выбирает каждый элемент <p>, который является единственным дочерним элементом родительского элемента |
:optional | input:optional | Выбирает элементы ввода без атрибута «required» |
:out-of-range | input:out-of-range | Выбирает входные элементы со значением вне указанного диапазона |
:read-only | input:read-only | Выбирает входные элементы с указанным атрибутом «readonly» |
:read-write | input:read-write | Выбирает входные элементы с не указанным атрибутом «readonly» |
:required | input:required | Выбирает входные элементы с указанным атрибутом «required» |
:root | :root | Выбирает корневой элемент документа |
::selection | ::selection | Выделяет часть элемента, выбранную пользователем |
:target | #news:target | Выбирает текущий активный элемент #news (при щелчке по URL, содержащему имя привязки) |
:valid | input:valid | Выбирает все входные элементы с допустимым значением |
:visited | a:visited | Выбирает все посещенные ссылки |
❮ Назад Вперед ❯
селекторов CSS — CSS: Каскадные таблицы стилей
Селекторы CSS определяют элементы, к которым применяется набор правил CSS.
Примечание: Не существует селекторов или комбинаторов для выбора родительских элементов, одноуровневых элементов родителей или дочерних элементов родительских одноуровневых элементов.
- Универсальный переключатель
Выбирает все элементы. При желании его можно ограничить определенным пространством имен или всеми пространствами имен. Синтаксис:
*
нс|*
*|*
Пример:*
будет соответствовать всем элементам документа.- Селектор типа
Выбирает все элементы с заданным именем узла. Синтаксис:
имя элемента
Пример:input
будет соответствовать любому элементу- Селектор класса
Выбирает все элементы, которые имеют данное
атрибут класса
. Синтаксис:.имя класса
Пример:.index
будет соответствовать любому элементу, имеющему класс index.- Селектор идентификатора
Выбирает элемент на основе значения его атрибута
id
. В документе должен быть только один элемент с заданным идентификатором. Синтаксис:#идентификатор
Пример:#toc
будет соответствовать элементу с идентификатором «toc». 9=значение][атрибут$=значение]
[атрибут*=значение]
Пример:[autoplay]
будет соответствовать всем элементам, для которых установлен атрибутautoplay
(любое значение).
- Список выбора
Селектор
,
— это метод группировки, который выбирает все совпадающие узлы. Синтаксис:А, В
Пример:div, span
будет соответствовать обоимэлементов.- Комбинатор потомков
Комбинатор » » (пробел) выбирает узлы, являющиеся потомками первого элемента. Синтаксис:
А Б
Пример:div span
будет соответствовать всемэлементам
, которые находятся внутри элемента.- Детский комбинатор
Комбинатор
>
выбирает узлы, которые являются прямыми потомками первого элемента. Синтаксис:А > В
Пример:ul > li
будет соответствовать всем элементам
, вложенным непосредственно в элемент
.- Общий комбинатор
Комбинатор
~
выбирает братьев и сестер. Это означает, что второй элемент следует за первым (хотя и не обязательно сразу), и оба имеют одного и того же родителя. Синтаксис:А ~ В
Пример:p ~ span
будет соответствовать всем элементам
, сразу или нет.- Смежный одноуровневый комбинатор
Комбинатор
+
соответствует второму элементу, только если он сразу после следует за первым элементом. Синтаксис:А + В
Пример:h3 + p
будет соответствовать первому элементу
, за которым следует сразу за элементом- Комбинатор колонн Экспериментальный
|| Комбинатор
выбирает узлы, принадлежащие столбцу. Синтаксис:A || Б
Пример:столбец || td
будет соответствовать всем элементам, которые относятся к области <столбец>
.- Псевдоклассы
Псевдо
:
позволяет выбирать элементы на основе информации о состоянии, которая не содержится в дереве документа. Пример:a:visited
будет соответствовать всем- Псевдоэлементы
Псевдонимы
::
представляют объекты, не включенные в HTML. Пример:p::first-line
будет соответствовать первой строке всех
элементов.
Спецификация Селекторы уровня 4 Подробнее см. таблицы спецификаций псевдоклассов и псевдоэлементов.
- Специфика CSS
Последнее изменение: , участниками MDN
Памятка по селекторам CSS — SitePoint
Что такое селекторы CSS?
Селектор CSS — это часть набора правил CSS, которая позволяет вам выбирать элемент, который вы хотите стилизовать, по типу, атрибутам или местоположению в HTML-документе. Давайте рассмотрим все доступные типы селекторов с кратким описанием каждого из них. Вот краткая шпаргалка по селекторам CSS, к которой вы можете обращаться во время работы.
Типы CSS-селекторов
- Универсальные: Каждый элемент
- Тип элемента: Определенный тип элемента, например.
<кнопка>
. - ID: Элемент по его свойству id, например.
id="основное содержание"
. - Класс: Выберите элемент(ы) по свойству их класса, например.
class="основной-цвет"
. - Дочерний комбинатор: Непосредственные потомки (потомки) элемента.
- Общий одноуровневый элемент: Общие одноуровневые элементы в HTML.
- Смежный одноуровневый элемент: Непосредственные одноуровневые элементы в HTML.
- Атрибут: На основе наличия и/или значения атрибутов HTML, например.
[тип="текст"]
. - Псевдокласс: На основании наличия псевдокласса, т.е.
: наведите курсор на
. - Псевдоэлемент: Для псевдоэлементов, например, элемент
:before
.
Универсальный селектор CSS
Универсальный селектор работает как подстановочный знак, выделяя все элементы на странице. Каждая HTML-страница построена на содержимом, помещенном в теги HTML. Каждый набор тегов представляет элемент на странице. Посмотрите на следующий пример CSS, в котором используется универсальный селектор:
* { цвет: зеленый; размер шрифта: 20px; высота строки: 25 пикселей; }
Три строки кода внутри фигурных скобок (
color
,font-size
иline-height
) будут применяться ко всем элементам HTML-страницы. Как видно здесь, универсальный селектор объявляется с помощью звездочки. Вы также можете использовать универсальный селектор в сочетании с другими селекторами.Селектор CSS типа элемента
Также называемый просто «селектор типа», этот селектор должен соответствовать одному или нескольким элементам HTML с тем же именем. Таким образом, селектор nav будет соответствовать всем элементам HTML
nav
, а селектор
будет соответствовать всем неупорядоченным спискам HTML илиэлементам
.В следующем примере используется селектор типа элемента для соответствия всем элементам
:ul { стиль списка: нет; граница: сплошная 1px #ccc; }
Чтобы представить это в некотором контексте, вот раздел HTML, к которому мы применим приведенный выше CSS:
- Рыба
- Яблоки
- Сыр
Пример текста абзаца.
<ул>- Вода
- Сок
- Кленовый сироп
Эта часть страницы состоит из трех основных элементов: Два
элементов и. CSS будет применяться только к двум элементам
, а не к. Если бы мы изменили селектор типа элемента, чтобы использоватьвместо
, тогда стили применялись бы к, а не к двум элементам
.Также обратите внимание, что стили не будут применяться к элементам внутри
илиэлементов. При этом некоторые стили могут быть унаследованы этими внутренними элементами.Селектор ID CSS
Селектор ID объявляется с использованием решётки или символа фунта (
#
), предшествующего строке символов. Строка символов определяется разработчиком. Этот селектор соответствует любому элементу HTML, который имеет атрибут ID с тем же значением, что и у селектора, но без символа решетки.Вот пример:
#container { ширина: 960 пикселей; поле: 0 авто; }
Этот CSS использует селектор ID для соответствия элементу HTML, например:
может быть любым элементом HTML. Пока у него есть атрибут ID со значением
container
, стили будут применяться.Элемент идентификатора на веб-странице должен быть уникальным. То есть на любой странице должен быть только один элемент с идентификатором 9.0017 контейнер . Это делает селектор ID довольно негибким, потому что стили, используемые в наборе правил селектора ID, могут использоваться только один раз на странице.
Если на странице окажется более одного элемента с одним и тем же идентификатором, стили все равно будут применяться, но HTML на такой странице будет недействительным с технической точки зрения, поэтому этого следует избегать.
В дополнение к проблемам негибкости селекторы ID также имеют проблему очень высокой специфичности.
Селектор классов CSS
Селектор классов является наиболее полезным из всех селекторов CSS. Он объявляется точкой перед строкой из одного или нескольких символов. Как и в случае с селектором ID, эта строка символов определяется разработчиком. Селектор класса также соответствует всем элементам на странице, атрибут класса которых имеет то же значение, что и класс, за вычетом точки.
Возьмем следующий набор правил:
.box { отступ: 20 пикселей; поле: 10 пикселей; ширина: 240 пикселей; }
Эти стили будут применяться к следующему элементу HTML:
Те же стили будут также применяться к любым другим элементам HTML, имеющим атрибут class со значением
box
. Наличие нескольких элементов на одной странице с одним и тем же атрибутом класса выгодно, поскольку позволяет повторно использовать стили и избегать ненужного повторения. Вдобавок к этому селекторы классов имеют очень низкую специфичность — опять же, об этом позже.Еще одна причина, по которой селектор классов является ценным союзником, заключается в том, что HTML позволяет добавлять несколько классов к одному элементу. Это делается путем разделения классов в атрибуте класса HTML с помощью пробелов. Вот пример:
Комбинатор потомков
Комбинаторы селекторов CSS объединяют селекторы для точного таргетинга. Селектор потомков или, точнее, комбинатор потомков, позволяет вам комбинировать два или более селектора, чтобы вы могли быть более конкретными в своем методе выбора. Например:
#container .box { плыть налево; нижний отступ: 15px; }
Этот блок объявлений будет применяться ко всем элементам, которые имеют класс box, которые находятся внутри элемента с идентификатором
контейнер
. Стоит отметить, что элемент.box
не обязательно должен быть непосредственным дочерним элементом: может быть другой элемент, обертывающий.box
, и стили все равно будут применяться.Посмотрите на следующий HTML:
<дел>дел> <дел>дел>Если мы применим CSS из предыдущего примера к этому разделу HTML, единственным элементом, на который повлияют эти стили, будут первые 9 элементов. 0017
элемент классаbox
. На элемент, имеющий классbox-2
, стили не повлияют. Точно так же второй элементс классомbox
не будет затронут, поскольку он не находится внутри элемента с идентификаторомcontainer
.Вы должны быть осторожны при использовании комбинатора потомков в вашем CSS. Этот тип селектора, хотя и делает ваш CSS немного более удобным для чтения, может излишне ограничивать ваши стили определенным контекстом — в этом случае стили ограничены рамками внутри 9.0017 #container — что может сделать ваш код негибким.
Дочерний комбинатор
Селектор, использующий дочерний комбинатор
дочерних
элементов:#container > .box { плыть налево; нижний отступ: 15px; }
Это тот же код из примера комбинатора потомков, но вместо пробела мы используем символ «больше» (или правую угловую скобку).
В этом примере селектор будет соответствовать всем элементам, имеющим класс
box
и являющимся непосредственными дочерними элементами элемента#container
. Это означает, что, в отличие от комбинатора потомков, не может быть другого элемента, обертывающего.box
— это должен быть прямой дочерний элемент.Вот пример HTML:
<дел>дел> <дел> <дел>дел>В этом примере CSS из предыдущего примера кода будет применяться только к первым
элемент классаbox
. Как видите, второй элементс классомbox
находится внутри другого элемента. В результате стили не будут применяться к этому элементу, хотя он тоже имеет классbox
.Опять же, селекторы, использующие этот комбинатор, могут быть несколько ограничивающими, но они могут пригодиться, например, при стилизации вложенных списков.
Общий комбинированный комбинатор
Селектор, использующий общий комбинатор родственных элементов, сопоставляет элементы на основе отношений родственных элементов. То есть выбранные элементы находятся рядом друг с другом в HTML.
h3 ~ р { нижняя граница: 20px; }
Этот тип селектора объявляется с использованием символа тильды (~). В этом примере все элементы абзаца (
и
) будут оформлены в соответствии с указанными правилами, но только если они являются одноуровневыми элементами
, и стили по-прежнему будут применяться.Применим приведенный выше CSS к следующему HTML:
Title
Пример абзаца.
Пример абзаца.
Пример абзаца.
<дел>Пример абзаца.
В этом примере стили будут применяться только к первым трем элементам абзаца. Последний элемент абзаца не является родственным элементу
.Комбинатор смежных элементов одного уровня
Селектор, который использует комбинатор смежных элементов одного уровня, использует символ плюса (+) и почти аналогичен обычному селектору элементов одного уровня. Разница в том, что целевой элемент должен быть непосредственным братом, а не просто общим братом. Давайте посмотрим, как выглядит код CSS для этого:
p + p { отступ текста: 1.5em; нижняя граница: 0; }
В этом примере указанные стили применяются только к элементам абзаца, которые следуют непосредственно за другими элементами абзаца. Это означает, что первый элемент абзаца на странице не получит эти стили. Кроме того, если между двумя абзацами появится другой элемент, ко второму абзацу из двух не будут применены стили.
Итак, если мы применим этот селектор к следующему HTML:
Title
Пример абзаца.
Пример абзаца.
Пример абзаца.
<дел>Пример абзаца.
Пример абзаца.
дел>… стили будут применяться только ко второму, третьему и пятому абзацам в этом разделе HTML.
Селектор атрибутов CSS
Селектор атрибутов выбирает элементы на основе наличия и/или значения атрибутов HTML и объявляется с помощью квадратных скобок:
input[type="text"] { цвет фона: #444; ширина: 200 пикселей; }
Перед открывающей квадратной скобкой не должно быть пробела, если только вы не собираетесь использовать ее вместе с комбинатором-потомком. Приведенный выше CSS будет соответствовать следующему элементу:
Но это не будет соответствовать этому:
Селектор атрибута также может быть объявлен с использованием только самого атрибута без значения, вот так:
ввод [тип] { цвет фона: #444; ширина: 200 пикселей; }
Это будет соответствовать всем элементам ввода с атрибутом типа, независимо от значения.
Вы также можете использовать селекторы атрибутов, не указывая ничего за пределами квадратных скобок (таким образом, таргетинг основан только на атрибуте, независимо от элемента). Также стоит отметить, что при использовании значений у вас есть возможность включать кавычки (одинарные или двойные) или нет.
Селектор CSS псевдокласса
Псевдокласс использует символ двоеточия для определения псевдосостояния, в котором может находиться элемент, например, состояние наведения или состояние активации. Давайте рассмотрим распространенный пример:
a:hover { красный цвет; }
В этом случае частью псевдокласса селектора является часть
:hover
. Здесь мы прикрепили этот псевдокласс ко всем якорным элементам (и
элементов). Это означает, что когда пользователь наводит указатель мыши наэлемент
, свойствоcolor
для этого элемента изменится на красный. Этот тип псевдокласса является динамическим псевдоклассом, поскольку он возникает только в ответ на взаимодействие с пользователем — в данном случае на перемещение мыши по целевому элементу.Важно понимать, что эти типы селекторов не просто выбирают элементы; они выбирают элементы, находящиеся в определенном состоянии. Для целей этого примера состояние — это состояние «зависания».
Другие популярные псевдоклассы включают в себя:
-
:посещено
: соответствует посещенным ссылкам -
: target
: соответствует элементу, указанному в URL-адресе документа . -
:first-child
: нацелен на первый дочерний элемент -
:nth-child
: выбирает определенные дочерние элементы -
: пусто
: соответствует элементу без содержимого или дочерним элементам -
:checked
: соответствует включенному флажку или переключателю -
:blank
:стилизует пустое поле ввода -
: включено
: соответствует включенному полю ввода -
: отключено
: соответствует отключенному полю ввода -
: требуется
: нацелен на обязательное поле ввода -
: действительно
: соответствует действительному полю ввода -
: неверный
: соответствует недопустимому полю ввода -
:playing
: нацеливается на воспроизводимый аудио- или видеоэлемент -
: is
: собственное решение CSS для вложенных стилей -
:has
: Идентичен:is
, но отличается специфичностью. -
:where
: синтаксис аналогичен:is()
и:where()
, но нацелен на элемент, который содержит набор других
Селектор CSS псевдоэлементов
Наконец, в CSS есть селектор, называемый псевдоэлементом, и при правильном использовании он может быть очень полезным. Единственное предостережение заключается в том, что этот селектор сильно отличается от других рассмотренных нами примеров. Давайте посмотрим на псевдоэлемент в контексте:
.container: перед { содержание: ""; дисплей: блок; ширина: 50 пикселей; высота: 50 пикселей; цвет фона: #141414; }
В этом примере используется один тип псевдоэлемента — псевдоэлемент
:before
. Как следует из названия, этот селектор вставляет воображаемый элемент на страницу внутри целевого элемента перед его содержимым.Селекторы CSS
Селекторы CSSНазад на страницу четвертого класса »
Ниже приведен список наиболее распространенных и хорошо поддерживаемых селекторов CSS. Есть еще много, много других, но это те, которые вы должны хорошо знать.
Селекторы типов элементов
Самые простые селекторы CSS — это селекторы типов элементов. Это причудливое название для простого с использованием тега HTML, без угловых скобок.
Мы уже широко использовали этот селектор.
Например, если мы хотим, чтобы все абзацы имели зеленый текст, мы использовали бы следующее правило CSS:
р {цвет: зеленый; }
- См. демонстрацию
Селекторы потомков
Соответствует элементу, являющемуся потомком другого элемента.
Здесь используются два отдельных селектора, разделенных пробелом.
Например, если мы хотим, чтобы весь выделенный текст в наших абзацах был зеленым текстом, мы использовали бы следующее правило CSS:
p em { цвет: зеленый; }
- См. демонстрацию
Селекторы классов
Соответствует элементу указанного класса.
Чтобы соответствовать определенному
класса
, мы всегда начинаем селектор с точки, чтобы обозначить, что мы ищем значениекласса
. За точкой следует значение атрибута класса, которому мы хотим соответствовать.Например, если бы мы хотели , чтобы все элементы с классом «highlight» имели другой цвет фона, мы бы использовали следующее правило CSS:
.highlight {цвет фона: #ffcccc; }
- См. демонстрацию
Селекторы идентификаторов
Соответствует элементу с указанным идентификатором.
Чтобы соответствовать определенному атрибуту
id
, мы всегда начинаем селектор с символа решетки (#), чтобы обозначить, что мы ищем значениеid
. За хэшем следует значение атрибута id, которому мы хотим соответствовать. Помните, мы можем использовать одно и то же значение атрибутаid
только один раз, поэтому селектор id всегда будет соответствовать только одному элементу в нашем документе.Например, если бы мы хотели элемент с идентификатором «content» , мы будем использовать следующее правило CSS:
#content {граница: 2px сплошной зеленый цвет; }
- См. демонстрацию
Дочерние селекторы
Соответствует элементу, который является непосредственным дочерним элементом другого элемента.
Например, если мы хотим, чтобы весь выделенный текст в наших абзацах имел зеленый текст, но не выделенный текст в других элементах , мы использовали бы следующее правило CSS:
p > em { цвет: зеленый; }
- См. демонстрацию
Примечание. Этот селектор не работает в Internet Explorer 6
Смежные одноуровневые селекторы
Совпадение с элементом, который находится сразу после другого элемента, но не является его дочерним.
Например, если мы хотим, чтобы все абзацы, следующие сразу за h5 , имели зеленый текст, , но не другие абзацы , мы использовали бы следующее правило CSS:
h5 + p { цвет: зеленый; }
- См. демонстрацию
Примечание. Этот селектор не работает в Internet Explorer 6
Псевдоселекторы
Краткая информация о состояниях ссылок
Элементы привязки являются особыми. Вы можете стилизовать элемент с помощью селектора типа элемента, но он может не соответствовать вашим ожиданиям. Это связано с тем, что ссылки имеют разные состояния, которые связаны с тем, как с ними взаимодействуют. Четыре основных состояния ссылки: ссылка, посещено, наведено, активно.
Псевдоселекторы бывают разных размеров и форм. Безусловно, наиболее распространенные псевдоселекторы используются для оформления наших ссылок. В сочетании со ссылками можно использовать четыре различных псевдоселектора:
.- :ссылка
- Ссылка, которая ранее не посещалась (посещение определяется историей браузера)
- :посетил
- Посещенная ссылка
- : наведите курсор на
- Ссылка, над которой «завис» курсор мыши
- :активный
- Ссылка, по которой в данный момент нажимают
a:link { цвет: красный } /* непросмотренные ссылки */ a:visited { цвет: синий } /* посещенные ссылки */ a:hover { цвет: зеленый } /* пользователь наводит курсор */ a:active { цвет: салатовый } /* активные ссылки */
Из соображений совместимости браузеров всегда следует указывать псевдоселекторы в этом порядке. Простой способ запомнить это — использовать мнемонику: « L o V e HA !».
- См. демонстрацию
Примечание: Устройства с сенсорным экраном не имеют состояния наведения. См. No Hover Трента Уолтона для получения дополнительной информации об этом интересном затруднении юзабилити.
Подробнее о других типах псевдоселекторов можно прочитать на странице sitepoint.
Универсальный переключатель
Соответствует каждому элементу на странице.
Например, если бы мы хотели , чтобы каждый элемент имел сплошную границу шириной 1 пиксель, мы бы использовали следующее правило CSS:
* {граница: 1px сплошной синий;}
- См. демонстрацию 1
По причинам, которые, вероятно, очевидны после предыдущего примера, следует быть осторожным с универсальными селекторами. Когда вы можете захотеть их использовать?
Ответ: не часто. Но, например, устанавливает поля и отступы для всех элементов на странице равными нулю. Вскоре мы узнаем, как это сделать лучше.
* { маржа: 0; заполнение: 0; }
- См. демонстрацию 2
Дополнительные показания
Вот несколько статей с дополнительной информацией о селекторах CSS.
- Селекторы CSS
- Содержимое CSS и совместимость с браузером
Вернуться на страницу четвертого класса »
Селектор CSS — javatpoint
следующий → ← предыдущая
Селекторы CSS используются для выбора контента, который вы хотите стилизовать . Селекторы являются частью набора правил CSS. Селекторы CSS выбирают элементы HTML в соответствии с их идентификатором, классом, типом, атрибутом и т. д.
В CSS существует несколько различных типов селекторов.
- Селектор элементов CSS
- Селектор идентификаторов CSS
- Селектор класса CSS
- Универсальный селектор CSS
- Селектор группы CSS
1) Селектор элементов CSS
Селектор элементов выбирает элемент HTML по имени.
<голова> <стиль> п{ выравнивание текста: по центру; цвет синий; } стиль> голова> <тело>
Этот стиль будет применяться к каждому абзацу.
Я тоже!
И я!
тело> Протестируйте сейчасВыход:
Этот стиль будет применяться к каждому абзацу.
Я тоже!
И я!
2) Селектор идентификаторов CSS
Селектор id выбирает атрибут id элемента HTML, чтобы выбрать конкретный элемент. Идентификатор всегда уникален на странице, поэтому он выбирается для выбора одного уникального элемента.
Записывается символом решетки (#), за которым следует идентификатор элемента.
Возьмем пример с идентификатором «para1».
<голова> <стиль> #пара1 { выравнивание текста: по центру; цвет синий; } стиль> голова> <тело>
Здравствуйте, Javatpoint.com
Этот абзац не изменится.
тело> Протестируйте сейчасВыход:
Здравствуйте, Javatpoint. com
Этот абзац не будет затронут.
3) Селектор класса CSS
Селектор класса выбирает элементы HTML с определенным атрибутом класса. Он используется с символом точки . (символ точки), за которым следует имя класса.
Примечание. Имя класса не должно начинаться с цифры.
Возьмем пример с классом «центр».
<голова> <стиль> .центр { выравнивание текста: по центру; цвет синий; } стиль> голова> <тело>
Этот заголовок синего цвета и выровнен по центру.
Этот абзац выделен синим цветом и выровнен по центру.
тело> Протестируйте сейчасВыход:
Этот заголовок выделен синим цветом и выровнен по центру.
Этот абзац выделен синим цветом и выровнен по центру.
Селектор класса CSS для определенного элемента
Если вы хотите указать, что должен быть затронут только один конкретный элемент HTML, вы должны использовать имя элемента с селектором класса.
Давайте посмотрим на пример.
<голова> <стиль> п.центр { выравнивание текста: по центру; цвет синий; } стиль> голова> <тело>
Этот заголовок не затрагивается
Этот абзац выделен синим цветом и выровнен по центру.
тело> Протестируйте сейчасВыход:
Этот заголовок не затрагивается
Этот абзац выделен синим цветом и выровнен по центру.
4) Универсальный селектор CSS
Универсальный селектор используется как подстановочный знак. Он выбирает все элементы на страницах.
<голова> <стиль> * { цвет: зеленый; размер шрифта: 20px; } стиль> голова> <тело>
Это заголовок
Этот стиль будет применяться к каждому абзацу.
Я тоже!
И я!
тело> Протестируйте сейчасВыход:
Это заголовок
Этот стиль будет применяться к каждому абзацу.
Я тоже!
И я!
5) Селектор группы CSS
Селектор группировки используется для выбора всех элементов с одинаковыми определениями стиля.
Селектор группировки используется для минимизации кода. Запятые используются для разделения каждого селектора в группе.
Давайте посмотрим код CSS без группового селектора.
ч2 { выравнивание текста: по центру; цвет синий; } h3 { выравнивание текста: по центру; цвет синий; } п { выравнивание текста: по центру; цвет синий; }
Как видите, вам нужно определить свойства CSS для всех элементов. Его можно сгруппировать следующим образом:
h2,h3,р { выравнивание текста: по центру; цвет синий; }
Давайте посмотрим на полный пример селектора группы CSS.
<голова> <стиль> h2, h3, п { выравнивание текста: по центру; цвет синий; } стиль> голова> <тело>
Здравствуйте, Javatpoint.com
Здравствуйте, Javatpoint.com (мелким шрифтом)
Это абзац.
тело> Протестируйте сейчасВыход:
Здравствуйте, Javatpoint.com
Здравствуйте, Javatpoint.
com (шрифт меньшего размера)Это абзац.
Следующая темаКак добавить CSS
← предыдущая следующий →
Селекторы CSS | HTML Собака
Каждый селектор CSS , взятый из последнего стандарта CSS3 .
Базовые селекторы
Селектор Описание Пример элемент
Селектор типа . Соответствует элементу. p { цвет: красный }
/* соответствует абзацам */.класс
Селектор класса . Соответствует значению атрибута класса
..warning { color: red }
/* соответствует элементам, содержащим */#id
ID селектор. Соответствует значению атрибута id
.#warning { color: red }
/* соответствует элементам, содержащим */*
Универсальный селектор . Соответствует всему. * { цвет: красный }
/* подходит ко всему */Селекторы атрибутов
Селектор Описание Пример [атрибут]
Соответствует элементам , содержащим заданный атрибут . a[href] { color: red }
/* соответствует элементам с атрибутом href */[атрибут = "х"]
Соответствует элементам , содержащим заданный атрибут, с заданным значением . a[href="/sitemap/"] { color: red }
/* соответствует элементу с атрибутом и значением href="/sitemap/" */[атрибут~="x"]
Сопоставляет элементы, содержащие заданный атрибут, со значением, которое содержит подзначение в списке , разделенном пробелом . abbr[title~="Style"] { color: red }
/* сопоставляет элементы abbr с заголовком, содержащим 'Style' (например, title="Cascading Style Sheets") */ 9="http://"] { color: red }
/* соответствует элементу с атрибутом href, значение которого начинается с 'http://' */[атрибут$="x"]
Сопоставляет элементы, содержащие заданный атрибут со значением, которое заканчивается чем-то на . a[href$=".com"] { color: red }
/* соответствует элементу с атрибутом href, значение которого заканчивается на '.com' */[атрибут*="x"]
Соответствует элементам, содержащим заданный атрибут со значением, которое содержит что-то. a[href*="htmldog"] { color: red }
/* соответствует элементу с атрибутом href, значение которого содержит 'htmldog' */Ссылка на нас! Если вы нашли HTML Dog полезным, рассмотрите возможность ссылки на нас.
Псевдоклассы
Селектор Описание Пример : ссылка
Соответствует ссылке , которая не посещалась . a:ссылка {цвет: синий}
:посетили
Соответствует ссылке , которая была посещена . a:посетили {цвет: фиолетовый}
:активный
Соответствует элементу, который активируется , например ссылке, по которой щелкнули. a:активный {цвет: красный}
: наведение
Соответствует элементу, поле которого находится над курсором. a:hover {украшение текста: нет}
:фокус
Соответствует элементу, имеющему focus , например тот, к которому была добавлена вкладка. a: focus { граница: 1 пиксель сплошной желтый }
: цель
Соответствует элементу, который был связан с (например, через "#x"…
).h3:target { color: red }
/* соответствует заголовку второго уровня, на который была ссылка */:язык()
Соответствует элементу данного языка . p:lang(fr) { color: red }
/* соответствует абзацам, которые объявлены или иначе считаются французскими */:первый ребенок
Соответствует первому потомку элемента. p:first-child { color: red }
/* соответствует первому дочернему элементу, если это абзац */:последний ребенок
Соответствует последнему потомку элемента. div p:last-child { color: blue }
/* соответствует последнему дочернему элементу, если это абзац */:первый тип
Соответствует первому брату своего типа в элементе. li:first-of-type { color: red }
/* соответствует первому экземпляру элемента списка внутри элемента */:последний тип
Соответствует последнему родственному элементу своего типа в элементе. li:last-of-type { color: blue }
/* соответствует последнему экземпляру элемента списка внутри элемента */:n-й ребенок()
Соответствует элементу, который является порядковым номером дочернего элемента своего родителя. p:nth-child(3) { цвет: красный }
/* соответствует третьему дочернему элементу, если это параграф */:n-последний-дочерний()
Соответствует элементу, который является дочерним элементом с порядковым номером , в обратном порядке от его родителя. p:nth-last-child(2) { color: blue }
/* соответствует предпоследнему дочернему элементу, если это абзац */:n-й тип()
Соответствует элементу порядковый номер родственного ему типа . li:nth-of-type(5) { color: red }
/* соответствует пятому экземпляру элемента списка внутри элемента */:n-последний-типа()
Соответствует элементу, который является братом по порядковому номеру o , в обратном порядке по отношению к его типу . li:nth-of-type(5) { color: red }
/* соответствует предпоследнему экземпляру элемента списка внутри элемента */: единственный ребенок
Соответствует элементу, если он является единственным потомком своего родителя. article p:only-child { color: red }
/* соответствует абзацу, если он единственный дочерний элемент элемента article */:только тип
Соответствует элементу, если он является единственным родственником своего типа . статья в стороне:только для типа { цвет: синий }
/* соответствует элементу стороны, если это единственный элемент стороны в элементе статьи */:пусто
Соответствует элементу с без дочерних элементов или содержимым . td:empty { border-color: red }
/* соответствует ячейкам данных таблицы, в которых ничего нет */: корень
Соответствует корневому элементу документа. Это будет html
элемент в HTML.: корень {фон: желтый}
:включено
Соответствует элементам управления формы, которые не отключены . input:enabled { border-color: лайм }
/* соответствует элементам ввода, которые не отключены */: отключено
Соответствует элементам управления формы, которые отключены . input:enabled { border-color: red }
/* соответствует элементам ввода, которые отключены */:проверено
Соответствует элементу ввода типа радио или флажка , для которого установлен флажок . input:checked { контур: 3px сплошной желтый }
/* соответствует проверенным элементам ввода */:не()
Переговорная псевдокласс. Соответствует элементу, который не соответствует селектору. p:not(:first-child) { color: orange }
/* соответствует абзацам, которые не являются первыми дочерними элементами */Псевдоэлементы
Ориентация на первую букву и первую строку с использованием псевдоэлементов.Селектор Описание Пример :: первая линия
Соответствует первой текстовой строке в элементе. p::first-line { font-weight: bold }
/* соответствует первой строке абзаца */:: первая буква
Соответствует первой букве в элементе. p::first-letter { font-size: 2em }
/* соответствует первой букве в абзаце */::до
Используется со свойством content
для создания содержимого до начальное содержимое элемента.h2::before { content: "*" }
/* помещает звездочку в начало заголовка верхнего уровня */::после
Используется со свойством content
для создания содержимого после исходного содержимого элемента.h2::after { content: "+" }
/* помещает знак плюс в конце заголовка верхнего уровня */Псевдоэлементы также могут быть определены с использованием одинарного, а не двойного двоеточия (например,
:first-line
в отличие от::first-line
). Хотя это старая школа, именно поэтому она более широко поддерживается браузерами.Комбинаторы
Селектор Описание Пример селектор селектор
Потомок Комбинатор. Соответствует элементам, которые являются потомками другого элемента. в сторону p { color: red }
/* соответствует абзацам внутри элементов, содержащих */селектор > селектор
Детский комбинатор . Соответствует элементам, которые являются дочерними элементами другого элемента. .warning > p { цвет: красный }
/* соответствует абзацам, которые являются дочерними элементами, содержащими */селектор + селектор
Смежный родственный комбинатор . Соответствует элементам, которые следуют непосредственно за другим элементом. h2 + * { color: red }
/* соответствует первому элементу, следующему за заголовком верхнего уровня */селектор ~ селектор
Общий родственный 9Комбинатор 0004. Соответствует элементам, которые следуют за другим элементом. h3 ~ p { color: red }
/* соответствует каждому абзацу, следующему за заголовком второго уровня */Помимо основных селекторов, некоторые другие могут вызывать проблемы несовместимости, особенно со старыми браузерами. Как всегда, тщательно протестируйте.
CSS-селекторов — полный список
- Селекторы, сгруппированные по категориям
- Селекторы, сгруппированные по спецификации
Полный список селекторов CSS, включая селекторы уровня 3 и селекторы уровня 4.
На момент написания Уровень 4 находится в состоянии черновика, и многие из новых селекторов имеют ограниченную поддержку в браузерах.
Этот список также доступен, сгруппированный по категориям и спецификациям, где вы можете найти примеры каждого селектора.
Селектор Описание CSS/уровень селектора *
Выбирает все элементы. 2 Е
Выбирает элемент типа E 1 E:нет( с1 , с2 )
Выбирает элемент E, который не соответствует ни s1 , ни s2 . 3/4 E: совпадения ( s1 , s2 )
Выбирает элемент E, соответствующий s1 и/или s2 . 4 E:has( rs1 , rs2 )
Выбирает элемент E, если любой из относительных селекторов rs1 или rs2 при оценке с E в качестве элементов :scope соответствует элементу. 4 E.имя класса
Выбирает элемент E, принадлежащий классу с именем classname
.1 E#myid
Выбирает элемент E с идентификатором myid
.1 Э[фу]
Выбирает элемент E с атрибутом foo
.2 E[foo="bar"]
Выбирает элемент E, значение атрибута foo
которого точно равноbar
.2 E[foo="bar" я]
Выбирает элемент E, значение атрибута
foo
которого точно равноbar
независимо от его регистра. По сути, использованиеi
позволяет указать «с учетом регистра» при указании значения.Так, например,
Text
,Text
иTEXT
будут выбраны, если указаноi
.4 E[foo~="bar"]
Выбирает элемент E, 9=»бар»] Выбирает элемент E, значение атрибута foo
которого начинается точно со строкиbar
.3 E[foo$="bar"]
Выбирает элемент E, значение атрибута foo
которого заканчивается точно строкойbar
.3 E[foo*="bar"]
Выбирает элемент E, значение атрибута foo
которого содержит подстрокубар
.3 E[foo|="фрукты"]
Выбирает элемент E, значение атрибута foo
которого представляет собой список значений, разделенных дефисами, начинающийся сen
.2 E:дир(лтр)
Выбирает элемент типа E с направлением слева направо (язык документа указывает, как определяется направление). 4 E:lang(zh, "*-хант")
Выбирает элемент типа E, помеченный как написанный либо на китайском языке (любой диалект или система письма), либо как написанный традиционными китайскими иероглифами. Просто замените zh
соответствующим кодом языка и*-hant
соответствующим кодом символа.2/4 E: любая ссылка
Выбирает элемент E, являющийся исходной привязкой гиперссылки.
Это эквивалентно использованию как
:ссылка
и:посещено
псевдоклассов.4 Электронная ссылка
Выбирает элемент E, являющийся исходной привязкой гиперссылки, цель которой еще не посещалась. 1 E:посетили
Выбирает элемент E, являющийся исходной привязкой гиперссылки, цель которой уже посещена. 1 E: цель
Выбирает элемент E, являющийся целью ссылающегося URL.
3 E:прицел
Выбирает элемент E, являющийся назначенным ссылочным элементом. 4 Э: текущий
Выбирает элемент E, который в данный момент представлен на временном холсте.
Например, если содержимое считывается во время отображения на экране, этот селектор можно использовать для оформления текущего элемента по мере его считывания.
4 Э: текущий ( с )
Выбирает элемент E, который является самым глубоким :текущий элемент
, соответствующий селектору s .4 Э: прошлое
Выбирает элемент E, который находится в прошлом на временном холсте.
Например, если содержимое считывается во время отображения на экране, этот селектор можно использовать для стилизации элементов, которые уже были считаны.
4 Э:будущее
Выберите элемент E, который находится в будущем на временном холсте.
Например, если содержимое считывается во время отображения на экране, этот селектор можно использовать для стилизации элементов, которые еще не были прочитаны.
4 E:активный
Выбирает элемент E, который находится в активированном состоянии. 1 Э:наведение
Выбирает элемент E, который находится под курсором или имеет потомка под курсором. 2 Е: фокус
Выбирает элемент E, который имеет фокус пользовательского ввода. 2 E: падение
Выбирает элемент E, который может получить сброс.
Например, в HTML вы можете указать цель перетаскивания с помощью зоны перетаскивания
4 E: падение (активно)
Выбирает элемент E, который является текущей целью перетаскивания для перетаскиваемого элемента.
Другими словами, если бы пользователь отпустил перетаскивание, элемент был бы перемещен в эту цель перетаскивания.
4 E: падение (действительно)
Выбирает элемент E, который может получить перетаскиваемый в данный момент элемент. Он соответствует только в том случае, если цель перетаскивания действительна для объекта, который в данный момент перетаскивается.
Например, атрибут dropzone в HTML
можно использовать для указания типов файлов, которые можно перетаскивать на элемент.
4 E: падение (недействительно)
Выбирает элемент E, который не может получить перетаскиваемый в данный момент элемент, но может получить какой-либо другой элемент. 4 E: включено
Выбирает включенный элемент пользовательского интерфейса E. 3 E: отключено
Выбирает элемент пользовательского интерфейса E, который отключен. 3 E: чтение-запись
Выбирает элемент пользовательского интерфейса E, который может быть изменен пользователем.
Например, элемент ввода HTML
, который не отключен и не доступен только для чтения, равен 9.0017 : чтение-запись
. Кроме того, любой элемент HTML с атрибутомcontenteditable
, установленным в истинное состояние, также имеет значение:read-write
.3-УИ/4 E: только для чтения
Выбирает элемент пользовательского интерфейса E, который не может быть изменен пользователем.
Например, элемент ввода HTML
, который отключен или доступен только для чтения, имеет значение
:только для чтения
.3-УИ/4 E: показан заполнитель
Выбирает элемент управления вводом, в котором в данный момент отображается замещающий текст.
Это позволяет вам стилизовать текст-заполнитель. Например, изменить его цвет и т. д.
3-УИ/4 E: по умолчанию
Выбирает элемент пользовательского интерфейса E, который является элементом по умолчанию в группе связанных вариантов.
Например, он может выбрать изначально выбранный элемент
option
в элементеselect
или кнопку по умолчанию в форме и т. д.3-УИ/4 E: проверено
Выбирает отмеченный/выбранный элемент пользовательского интерфейса E (например, переключатель или флажок).
Может использоваться для оформления метки элемента.
3 E: неопределенный
Выбирает элемент пользовательского интерфейса E, который находится в неопределенном состоянии (ни отмечен, ни снят).
Может использоваться для оформления метки элемента.
4 E:действительный
Выбирает элемент пользовательского ввода E, который соответствует его семантике достоверности данных.
3-УИ/4 E: неверный
Выбирает элемент пользовательского ввода E, который не соответствует его семантике достоверности данных.
3-УИ/4 E:в диапазоне
Выбирает элемент пользовательского ввода E, значение которого находится в допустимом диапазоне.
3-УИ/4 E: вне диапазона
Выбирает элемент пользовательского ввода E, значение которого выходит за пределы допустимого диапазона.
3-УИ/4 E:требуется
Выбирает элемент пользовательского ввода E, который требует ввода.
Например, элемент формы с обязательным атрибутом
3-УИ/4 E: опционально
Выбирает элемент пользовательского ввода E, который не требует ввода.
Например, элемент формы без обязательного атрибута
3-УИ/4 E: ошибка пользователя
Выбирает измененный пользователем элемент пользовательского ввода E с неправильным вводом (недопустимый, вне допустимого диапазона, опущенный, но обязательный). 4 Е: корень
Выбирает элемент E, корень документа.
В большинстве случаев при использовании HTML это будет соответствовать элементу
html
, однако это может не всегда иметь место при использовании другого языка, такого как SVG или XML.3 E:пусто
Выбирает элемент E, у которого нет дочерних элементов (даже текстовых узлов). 3 E:пусто
Выбирает элемент E, который не имеет содержимого, за исключением, возможно, пробелов.
Аналогично
:пусто
, однако:пусто
также будет выбирать элементы, содержащие пробелы (чего:пусто
не будет).4 E:nth-child( n [из S ]?)
Выбирает элемент E, n -й дочерний элемент его родителя, соответствующий S . 3 E:nth-last-child( n [из S ]?)
Выбирает элемент E, n -й дочерний элемент своего родителя, соответствующий S , считая с последнего. 3 E: первый ребенок
Выбирает элемент E, первый дочерний элемент его родителя. 2 E:последний ребенок
Выбирает элемент E, последний дочерний элемент его родителя. 3 E: единственный ребенок
Выбирает элемент E, единственный дочерний элемент своего родителя. 3 E:n-го типа ( n )
Выбирает элемент E, n -й брат своего типа. 3 E:nth-last-of-type( n )
Выбирает элемент E, n -й родственный элемент своего типа, считая с последнего элемента. 3 E: первый в своем роде
Выбирает элемент E, первый элемент того же типа. 3 E: последний тип
Выбирает элемент E, последний родственный элемент своего типа. 3 E:только тип
Выбирает элемент E, только того же типа. 3 Э Ф
Выбирает элемент F, потомок элемента E. 1 Э >> Ф
Выбирает элемент F, потомок элемента E.
Обратите внимание, что этот селектор делает то же самое, что и предыдущий селектор (
E F
). Этот селектор был введен в CSS Selectors Level 4, чтобы придать комбинатору-потомку видимую форму без пробелов и заполнить пробел между комбинатором-потомком (>) и комбинатором-потомком, проникающим в тень (>>>)4 Э > Ж
Выбирает дочерний элемент F элемента E. 2 Э + Ф
Выбирает элемент F, которому непосредственно предшествует элемент E. 2 Э ~ Ж
Выбирает элемент F, которому предшествует элемент E. 3 Ф || Е
Выбирает элемент E, который представляет ячейку в сетке/таблице, принадлежащую столбцу, представленному элементом F. 4 E: n-й столбец ( n )
Выбирает элемент E, представляющий ячейку, принадлежащую n -му столбцу сетки/таблицы. 4 E: n-последний столбец ( n )
Выбирает элемент E, представляющий ячейку, принадлежащую n -му столбцу сетки/таблицы, считая с последнего.