class_block
, второй с идентификатором id_block
:
<div class="class_block">
<!-- Содержимое блока -->
</div>
<div id="id_block">
<!-- Содержимое блока -->
</div>
Зная этот класс и идентификатор, мы можем стилизовать оба блока, как нам вздумается:
.class_block {
/* Свойства блока с классом class_block */
}
#id_block {
/* Свойства блока с идентификатором id_block */
}
Но что делать, если нам не известны названия класса и идентификатор? Возможно потому, что часть значения атрибута генерируется динамически. На помощь могут придти, так сказать продвинутые CSS-селекторы. Привожу пример динамически созданного идентификатора:
123_block
- _block
- постоянная часть названия идентификатора, цифры: 123
сгенерированы скриптом, в другом блоке эти цифру уже будут другие, одинаковых чисел в пределах одного документа не должно быть:
<div id="123_block">
<!-- Содержимое блока -->
</div>
<div id="124_block">
<!-- Содержимое блока -->
</div>
<div id="125_block">
<!-- Содержимое блока -->
</div>
Чтобы задать этим блокам стиль, делаем так:
div[id$="_block"] {
/* Свойства блока с идентификатором xxx_block */
}
Что к чему и для чего (разбираем код): первая строчка начинается с "указателя", в каком элементе будем искать атрибут и совпадение, в данном случаи в блоке (
<div>
). Дальше в квадратных скобках сообщаем браузеру, что блоки надо искать с атрибутом id
, после указанного атрибута следует знак доллара ($
) - это значит, что поиск значения атрибута будет проходить по второй части значения атрибута, то есть окончания значений не изменяемо, а начало постоянно разное.Проверить работу можно используя следующий код:
<style>
div[id$="_block"] {
color: #008000;
}
</style>
<div id="123_block">
Блок с id 123_block
</div>
<div id="124_block">
Блок с id 124_block
</div>
<div id="125_block">
Блок с id 125_block
</div>
Мы рассмотрели как поступать с динамичным значением идентификатора, но у нас же есть еще и классы. А с классами все тоже самое, только вместо
id
пишем class
:
div[class$="_block"] {
/* Свойства блока с идентификатором xxx_block */
}
Проверить можно используя код:
<style>
div[class$="_block"] {
color: #008000;
}
</style>
<div class="123_block">
Блок с class 123_block
</div>
<div class="124_block">
Блок с class 124_block
</div>
<div class="125_block">
Блок с class 125_block
</div>
Теперь, в своем коде мы использовали знак доллара (
$
) - ищем совпадение по окончанию значения атрибута (вторая часть строки), но может быть, что совпадение надо искать по началу значения (первая часть строки), тогда вместо знака доллара надо писать ^
:
div[class^="block_"] {
/* Свойства блока с классом class_block */
}
Код блока:
<div class="block_123">
<!-- Содержимое блока -->
</div>
Хочу заметить, что в этом сообщении показаны примеры работы только с блоком (
<div>
), но на самом деле работать можно с многими элементами.