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>), но на самом деле работать можно с многими элементами.