Пост

Все css селекторы

Кратко и четко список css селекторов

Все css селекторы

Таблица селекторов

В данной таблице кратко перечислю селекторы css с их назначением. В столбце “дополнительно”, будут ссылки на примеры.

СелекторНазначениеОписаниеЧто попадаетДополнительноПоддержкаСпецифичность
*Универсальный селекторПопадают все элементы на странице<body><div></div></body>1baseline0,0,0
divСелектор тегаВсе элементы div на странице<div></div><div></div>1baseline0,0,1
#headerСелектор по idЭлемент с указанным id<div id="header"></div>1baseline1,0,0
.titleСелектор по классуВсе элементы с указанным классом<span class='title'></span>1baseline0,1,0
.red.blueСоставной селекторПрименим для классов и атрибутов, пишется слитно<div class='red blue'></div>1 2baseline0,2,0
[lang]Элементы с атрибутомВсе элементы где есть атрибут<div lang="ru"></div>1baselne0,1,0
[lang="en"]Элементы со значением атрибутаВсе элементы, где у атрибута есть конкретное значение<div lang="en"></div>1baselne0,1,0
[class*="red"]Значение атрибута как подстрокаВсе элементы, где есть значение атрибута в любом месте<div class="greenredyellow"></div>1baselne0,1,0
[class~="red"]Значение атрибута есть в списке значенийВсе элементы, где значение есть в списке разделенным пробелами<div class="red blue black"></div>1baselne0,1,0
[class^="red-"]Значение атрибута начинается со значенияВсе элементы, где значение атрибута начинается со значения<div class="red-color"></div>1baselne0,1,0
[class$="red"]Значение атрибута заканчивается со значенияВсе элементы, где значение атрибута заканчивается со значения<div class="color-red"></div>1baselne0,1,0
[class|=”red”]Значение атрибута либо точно равно либо равно+тиреВсе элементы, где значение атрибута либо точно равно либо равно+тире<div class="red-color"></div>1baselne0,1,0
[class="red" i]Значение атрибута без учета регистраВсе элементы, где указано значение атрибута без учета регистра<div class="RED"></div>1baselne0,1,0
p spanСелектор потомковВыбирает элементы ,которые являются потомками указанного элемента<p><span></span></p>1 2baselne0,0,2
p > spanДочерний селекторВыбирает элементы которые прямые или дочерние укаазнного элемента<p><span></span></p>1baselne0,0,2
a ~ spanСелектор соседних элементовВыбирает все соседние элементы которые следуют за указанным<a href="">ссылка</a><span></span>1baselne0,0,2
a + spanСмежный селекторВыбирает элемент который идет текущего, но только один<a href="">ссылка</a><span></span>1baselne0,0,2
       
       
       
       
       
1
1

Примеры к селекторам

universal-1

Применим ко всем элементам на странице

1
2
3
* {
    background-color: #2bcc2b;
}
1
2
3
4
5
6
7
<b>b</b>
<span>span</span>
<div>
  <div>
    <div>div</div>
  </div>
</div>

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

Применяется ко всем элементам к которым возможно применить стиль

tag-1

Применим ко всем тегам div на любом уровне вложенности

1
2
3
div {
  background-color: #2bcc2b;
}
1
2
3
4
5
6
7
8
<b>b</b>
<span>span</span>
<div>
  <div>
    <div>div1</div>
  </div>
</div>
<div>div2</div>

Селектор тега

В данном случае div1 и div2 попадают под селектор

id-1

На странице может быть только один селектор тега

1
2
3
#header {
  background-color: #2bcc2b;
}
1
2
3
4
5
6
7
8
9
<b>b</b>
<span>span</span>
<div>
  <div>
    <div id="header">header</div>
  </div>
</div>
<div>div2</div>
<div>div3</div>

Селектор по id

class-1

Все элементы с указанным классом

1
2
3
.title {
    color: #2bcc2b;
}
1
2
3
4
5
6
7
8
9
<b class="title">b</b>
<span>span</span>
<div>
  <div>
    <div class="title">title</div>
  </div>
</div>
<div>div2</div>
<div class="title">div3</div>

Селектор по классу

В данном случае будут выбраны все элементы у которых есть класс .title.

composite-1

Применяется для всех элементов, где есть два класса в любом порядке

1
2
3
.red.blue {
    background-color: #2bcc2b;
}
1
2
3
4
5
6
7
8
9
10
11
12
<div class="red blue">1</div>
<div class="blue red">2</div>
<div class="blue red yellow">3</div>
<div class="blue">4</div>
<div class="red">5</div>
<div>
  <div>
    <div>
      <span class="red blue">6</span>
    </div>
  </div>
</div>

Составной селектор

В данном случае два класса есть у элемента 1,2,3,6 они и будут выделены

composite-2

div с определенным атрибутом

1
2
3
div[title] {
    color: #2bcc2b;
}
1
2
3
4
5
6
7
8
<div title="1">1</div>
<div title="2">2</div>
<div title="">3</div>
<div>
  <div>
    <span title="2">4</span>
  </div>
</div>

Составной селектор

В данном случае под условие попадут только элементы div с любым атрибутом title

attr-1

1
2
3
[title] {
    color: #2bcc2b;
}
1
2
3
4
5
6
7
8
<div title="1">1</div>
<div title="2">2</div>
<div>3</div>
<div>
  <div>
    <span title="3">4</span>
  </div>
</div>

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

В данном случае попадают 2 первых div и вложенный span.

attr-2

Атрибут с определенным значением

1
2
3
[title="2"] {
  color: #2bcc2b;
}
1
2
3
4
5
6
7
8
<div title="1">1</div>
<div title="2">2</div>
<div title="">3</div>
<div>
  <div>
    <span title="2">4</span>
  </div>
</div>

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

В данном примере только 2 и 4 элементы попадают под условие.

attr-3

Атрибут, где значение находиться в любом месте как подстрока.

1
2
3
[class*="red"] {
  background-color: #8250df;
}
1
2
3
4
5
6
7
8
9
10
11
<div class="red">1</div>
<div class="red blue">2</div>
<div class="red-123">3</div>
<div class="yellow-red">4</div>
<div class="yellow-red-blue">5</div>
<div class="yellow-rd-blue">6</div>
<div>
  <div>
    <span class="REDred">7</span>
  </div>
</div>

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

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

attr-4

Значение атрибута есть в списке разделенном пробелами

1
2
3
[class~="red"] {
  background-color: #8250df;
}
1
2
3
4
5
6
7
8
9
10
11
<div class="red">1</div>
<div class="red blue">2</div>
<div class="blue red yellow">3</div>
<div class="yellow-red">4</div>
<div class="yellow-red-blue">5</div>
<div class="yellow-rd-blue">6</div>
<div>
  <div>
    <span class="REDred">7</span>
  </div>
</div>

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

Только первые три div попадают, так как у них есть атрибут класс с несколькими классами

attr-5

Значение атрибута начинается со значения

1
2
3
[class^="red"] {
    background-color: #8250df;
}
1
2
3
4
5
6
7
8
9
10
11
<div class="redok">1</div>
<div class="medred blue">2</div>
<div class="blue red yellow">3</div>
<div class="yellow-red">4</div>
<div class="yellow-red-blue">5</div>
<div class="yellow-rd-blue">6</div>
<div>
  <div>
    <span class="red-color">7</span>
  </div>
</div>

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

В данном случае попадет элемент 1 и 7

attr-6

Значение атрибута заканчивается значением

1
2
3
[class$="red"] {
   background-color: #8250df;
}
1
2
3
4
5
6
7
8
9
10
11
<div class="redok">1</div>
<div class="medred blue">2</div>
<div class="blue red yellow">3</div>
<div class="yellow-red">4</div>
<div class="yellow-red-blue">5</div>
<div class="yellow-rd-blue">6</div>
<div>
  <div>
    <span class="red-color-Rred">7</span>
  </div>
</div>

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

Тут попадет элемент 4 и 7

attr-7

Значение атрибута либо равно, либо равно+тире

1
2
3
[class|="red"] {
  background-color: #8250df;
}
1
2
3
4
5
6
7
8
9
10
11
<div class="red">1</div>
<div class="med red blue">2</div>
<div class="blue red yellow">3</div>
<div class="yellow-red">4</div>
<div class="yellow-red-blue">5</div>
<div class="yellow-rd-blue">6</div>
<div>
  <div>
    <span class="red-color">7</span>
  </div>
</div>

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

В данном случае попадает 1 и 7 элемент, в первом точное совпадение, а в 7 идет тире после названия

attr-8

1
2
3
[class="red" i] {
    background-color: #8250df;
}
1
2
3
4
5
6
7
8
<div class="red">1</div>
<div class="Red">2</div>
<div class="RED">3</div>
<div>
  <div>
    <span class="black">4</span>
  </div>
</div>

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

Здесь под действие селектора попадают 3 первых элемента div.

descendant-1

Селектор потомков. Выбирает всех потомков элемента на любом уровне вложенности от дочерних элементов и ниже.

1
2
3
div span {
    background-color: #fa0202;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<div>
  <span>1</span>
</div>
<div>
  <div>
    <section>
      <span>2</span>
    </section>
  </div>
</div>
<section>
  <section>
    <span>3</span>
  </section>
</section>
<section>
  <section>
    <div>
      <section>
        <section>
          <article>
            <span>4</span>
          </article>
        </section>
      </section>
    </div>
  </section>
</section>

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

В данном примере селектор потомков выбирает 1,2,4 так как они являются дочерними элементами

descendant-2

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

1
2
3
.one .two .three .four .five {
    background-color: #0d6efd;
}
1
2
3
4
5
6
7
8
9
10
<div class="one">
  <div class="two">
    <div class="three">
      <div class="four">
        <section>
          <div class="five">1</div>
        </section>
      </div>
    </div>
</div>

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

Элемент с классом five попадает под условие, но такой код уже становится сложно читать.

child-1

Дочерний селектор выбирает только прямые потомки текущего элемента

1
2
3
div > span {
    background-color: #fa0202;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<div>
  <span>1</span>
</div>
<div>
  <div>
    <section>
      <span>2</span>
    </section>
  </div>
</div>
<section>
  <section>
    <span>3</span>
  </section>
</section>
<section>
  <section>
    <div>
      <section>
        <section>
          <article>
            <span>4</span>
          </article>
        </section>
      </section>
    </div>
  </section>
</section>

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

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

neighboring-1

1
2
3
a ~ span {
    background-color: #fa0202;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<a href="https://ya.ru">ссылка</a>
<span>1</span>
<span>2</span>
<span>3</span>
<section>
  <span>4</span>
  <div>
    <a href="https://ya.ru">ссылка</a>
    <span>5</span>
    <section>
      <a href="https://ya.ru">ссылка</a>
      <span>6</span>
    </section>
  </div>
</section>

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

Тут выбираются соседние элементы которые идут после ссылки a, в данном случае все кроме элемента 4 подходят под условие.

adjacent-1

Смежный селектор выбирает один элемент после текущего

1
2
3
a + span {
    background-color: #fa0202;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<a href="https://ya.ru">ссылка</a>
<span>1</span>
<span>2</span>
<span>3</span>
<section>
  <span>4</span>
  <div>
    <a href="https://ya.ru">ссылка</a>
    <span>5</span>
    <section>
      <a href="https://ya.ru">ссылка</a>
      <span>6</span>
      <span>7</span>
    </section>
  </div>
</section>

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

В данном случае будет выбран один дочерний элемент после ссылки.

Авторский пост защищен лицензией CC BY 4.0 .

Оптимизация бизнеса, создание сайтов, разработка парсеров или интеграций.

Бесплатно расчитаю время разработки, предложу решение вашей задачи.