Мы уже знаем что такое теги, классы, id и атрибуты. Как раз из них и формируются селекторы.
Стандартная CSS Структура:
(тег, класс, ID, атрибут) { - Выделенное и есть селектор
(CSS правила)
}
Давайте подставим примерные значения:.tn-atom {
background-color: red;
}
В данном случае .tn-atom является селектором.
Вставьте этот код в T123 и посмотрите что получится с дефолтным ZERO блоком. Вы наглядно увидите как во все объекты, которые имеют класс tn-atom добавится красный фон.
Как я писал на странице об HTML тегах, класс tn-atom в тильде ставится на все элементы внутри ZERO блока и является дочерним для всех элементов.Именно поэтому окрасились все элементы, теперь я думаю будет понятнее для чего нужны уникальные классы, о которых также писал, они помогут нам достучаться до конкретных элементов.
Как вы уже поняли, селектором является выражение, которое состоит из класса, id или атрибута. Они вставляются до скобок { ... }, но при этом надо правильно их вставить.
К примеру, чтобы задать CSS код для элемента, и мы хотим вызвать его через класс:.tn-atom {
}
Для класса используется точка вначалеЕсли хотим задать CSS код для элемента, но уже вызвать элемент через id блока:#rec792264209 {
}
Для ID используется решетка вначалеЕсли хотим задать CSS код для элемента, но уже вызвать элемент через атрибут:[data-elem-id="1725450981268"] {
}
Для атрибута используются квадратные скобки с указанием атрибута и его значения
При этом это может быть один и тот же элемент, просто у него имеется класс tn-atom, id rec792264209, а атрибут data-elem-id="1725450981268"
Таким образом вы сможете стучаться до объекта. И я рекомендую вам научиться использовать все три способа, потому-что тильда
- Не всегда дает уникальный класс
- Мало где дает ID элементам, кроме целых блоков
- Но почти везде есть атрибуты с уникальным значением
Но это еще цветочки! Вы можете вписывать по 2,3,4, классов, id и атрибутов в 1 селектор!Как это выглядит?
Представьте такой код:
.tn-elem__7922642091725450981268 .tn-atom {
}
Я взял уникальный класс, который дает тильда определенному элементу, и зная класс дочернего элемента - добавил его также в селектор.
Получается у нас 2 класса в одном селекторе.
И стоит понимать, что так можно сделать только если класс первого элемента является родителем, а остальные классы дочками.Структура такая:
<div class="one"> -
Родительский элемент- <div class="two"> -
Дочерний элемент-- <div class="three"></div> -
Дочерний элемент происходящий от класса "two"- </div>
Закрывающий тег дочернего элемента от класса "one"</div> -
Закрывающий тег родительского элементаПредставим, что наша задача обратится к элементу с классом "three", но при этом усложним, и нам нельзя будет напрямую к нему обращаться, а только через наследование.
Как мы это сделаем?
.one .two .three {
}
Как видите, мы прямо последовательно обратились сначала к первому элементу с классом "one", далее ко второму элементу с классом "two", и в конце к третьему с классом "three"
К сожалению, в CSS на данный момент нельзя обращаться от дочки к родителю, например:
.three .one {
}
Играет строгая модель наследования, когда от старшего переходит к младшему.
Давайте теперь напишем селектор для нашего квадрата, но обратимся через ID блока.