До этого мы использовали только селектор конкретного тега ( например h1 {…} ) и селектор класса ( например some-class-name {…} ).
Селектор – это то, что мы пишем перед фигурными скобочками. Если чуть сложнее, то селектор – это шаблон по которому происходит привязка набора свойств к элементу на странице.
Очень важно рассмотреть некоторые другие селекторы помимо тех двух, что мы уже рассмотрели. Если не знать их, то можно насоздавать очень много лишних классов, а много лишнего кода – это всегда плохо. С помощью них можно выбирать потомков какого-либо html элемента по какому-либо признаку и присвоить им определенные свойства.
Вот и сама страница с div-ами к которым будут применены классы divblock1 и divblock2. К списку в блоке класса divblock1 будет применен контекстный селектор.
Патрик учит div и CSS
- List Item 1
- List Item 2
- List Item 3
Какой-то текст в теге p. Какой-то текст в теге p. Какой-то текст в теге p. Какой-то текст в теге p. Какой-то текст в теге p. Какой-то текст в теге p. Какой-то текст в теге p.
Патрик учит div и CSS
- List Item
- List Item
- List Item
Какой-то текст в теге p. Какой-то текст в теге p. Какой-то текст в теге p. Какой-то текст в теге p. Какой-то текст в теге p. Какой-то текст в теге p. Какой-то текст в теге p.
Если открыть страницу, то можно увидеть, что все li в div с классом divblock1 окрасились в синий.

То есть контекстный селектор сработал.
Если бы мы не знали о контекстном селекторе, то не очень понятно как бы можно было бы применить какие-то свойства к li только в блоке класса divblock1, то есть, чтобы, например, элементов li в блоке класса divblock2 это не касалось.
Разве что создать отдельный класс для этих li и ко всем ним применить эти свойства через него, что ясное дело очень плохое решение по сравнению с этим.
Также обратите внимание, что li не прямой потомок div, a li прямой потомок ul.
То есть контекстный селектор работает для любых потомков прямых или не прямых.
Это пожалуй самый часто используемый селектор помимо двух ранее рассмотренных простейших селекторов.
Селектор дочерних элементов
В отличие от предыдущего контекстного селектора селектор ">" выбирает только прямых потомков html элемента.
Контекстный селектор выбирал вообще все li, которые есть в блоке div класса divblock1 и применял к ним синий цвет. Этот же селектор применяет свойства только к ПРЯМОМУ потомку html элемента.
Добавим еще один ul обернутый в чистый div блок в div блок класса divblock1.
Патрик учит div и CSS
- List Item
- List Item
- List Item
- List Item
- List Item
- List Item
Какой-то текст в теге p. Какой-то текст в теге p. Какой-то текст в теге p. Какой-то текст в теге p. Какой-то текст в теге p. Какой-то текст в теге p.
Патрик учит div и CSS
- List Item
- List Item
- List Item
- List Item
- List Item
- List Item
Какой-то текст в теге p. Какой-то текст в теге p. Какой-то текст в теге p. Какой-то текст в теге p. Какой-то текст в теге p. Какой-то текст в теге p.
Если откроем страницу, то можем увидеть что дочерний селектор > сработал и все прямые li потомки элемента ul, которые являются прямыми потомками блока с классом divblock1 окрасились в синий.

В отличие от предыдущего контекстного селектора этот исключает часть элементов внутри divblock1, к которым применяются свойства.
То есть синий цвет применился ко всем li, которые являются конечным элементом цепочки .divblock1 > ul > li, но он не был применен к li, которые являются конечным элементом .divblock1 > div > ul > li, поскольку такой цепочки в css файле мы не определяли.
Псевдокласс отрицания
С помощью псевдокласса отрицания not можно отключить применение свойств селектора к конкретным html элементам.
Добавим пару картинок в div-ы. Как видим никаких классов к этим картинкам не применено.
Патрик учит div и CSS
- List Item
- List Item
- List Item
- List Item
- List Item
- List Item
- List Item
- List Item
Какой-то текст в теге p.Какой-то текст в теге p.Какой-то текст в теге p. Какой-то текст в теге p.Какой-то текст в теге p.Какой-то текст в теге p. Какой-то текст в теге p.Какой-то текст в теге p.
Патрик учит div и CSS
- List Item
- List Item
- List Item
- List Item
- List Item
- List Item
- List Item
- List Item
Какой-то текст в теге p.Какой-то текст в теге p.Какой-то текст в теге p. Какой-то текст в теге p.Какой-то текст в теге p.Какой-то текст в теге p. Какой-то текст в теге p.Какой-то текст в теге p.
Если откроем страницу, то можем увидеть, что свойства селектора (рамка фиолетового цвета) были применены ко всем картинкам div блока с классом divblock1 кроме картинки с классом imagePropsClass

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
















