Как перечислить несколько классов в css
Перейти к содержимому

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

  • автор:

Перечисление селекторов

Пишем сразу несколько селекторов, к которым будут применяться стили.

Время чтения: меньше 5 мин

Открыть/закрыть навигацию по статье
Контрибьюторы:

Обновлено 9 мая 2023

Кратко

Скопировать ссылку «Кратко» Скопировано

При помощи перечисления нескольких селекторов через запятую можно избежать дублирования кода.

�� Если у нескольких элементов есть определённые повторяющиеся стили, то вполне допустимо вынести эти стили в отдельный блок и в качестве селектора указать несколько классов (или тегов, или идентификаторов), перечислив их через запятую.

Пример

Скопировать ссылку «Пример» Скопировано

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

   

Только хорошие новости

Учёные научились выращивать зубы

Группа специалистов впервые сумела вырастить настоящий зуб .

div class="wrapper"> h1 class="main-title">Только хорошие новостиh1> h2 class="title">Учёные научились выращивать зубыh2> p class="text">Группа специалистов впервые сумела вырастить настоящий зуб . p> div>

Задаём общие стили для заголовков. Ниже создаём одинаковые декоративные подчёркивания при помощи псевдоэлементов.

 .main-title,.title  position: relative; display: inline-block; color: #ffffff; font-weight: 500;> .main-title::before,.title::before  content: ""; position: absolute; bottom: -5px; left: 0; width: 100%; height: 3px; border-radius: 3px; background-color: #FFFFFF; z-index: -1;> .main-title, .title  position: relative; display: inline-block; color: #ffffff; font-weight: 500; > .main-title::before, .title::before  content: ""; position: absolute; bottom: -5px; left: 0; width: 100%; height: 3px; border-radius: 3px; background-color: #FFFFFF; z-index: -1; >      

Как понять

Скопировать ссылку «Как понять» Скопировано

�� Перечисляемые через запятую селекторы могут быть никак не связаны между собой родственными связями, могут находиться в разных частях разметки или вообще на разных страницах. Стили, описанные внутри фигурных скобок, будут в равной степени применены и к первому, и ко второму, и ко всем последующим селекторам.

Как пишется

Скопировать ссылку «Как пишется» Скопировано

Указывается один селектор, после него ставится запятая, через пробел указывается второй селектор и так далее.

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

Селекторами может быть не только селектор по классу, но и селектор по тегу или по идентификатору, или даже их комбинация.

Подсказки

Скопировать ссылку «Подсказки» Скопировано

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

�� Если перечисляете через запятую составные селекторы, то нужно указывать их полностью.

На практике

Скопировать ссылку «На практике» Скопировано

Алёна Батицкая советует

Скопировать ссылку «Алёна Батицкая советует» Скопировано

�� Начинающие разработчики часто допускают ошибку при перечислении селекторов: по их логике первая часть составного селектора не требует повторения и её можно указать один раз в начале, а затем перечислить через запятую несколько «вторых» частей составного селектора.

Вложенным селектор считается только в первой строке, остальные классы отдельные,
сами по себе.

Вот так неверно:

 .parent-class .child-class,.another-class,.one-another-class  /* Стили */> .parent-class .child-class, .another-class, .one-another-class  /* Стили */ >      

А вот так верно! Все три перечисленных селектора являются вложенными:

 .parent-class .child-class,.parent-class .another-class,.parent-class .one-another-class  /* Стили */> .parent-class .child-class, .parent-class .another-class, .parent-class .one-another-class  /* Стили */ >      

По факту, перечисление через запятую — просто удобный способ сокращения кода, что вписывается в рамки принципа DRY.

�� Не злоупотребляйте перечислением селекторов через запятую. Особенно составных. Если в стилях слишком много перечислений селекторов, присмотритесь к одной из методологий написания CSS — например, БЭМ ��

Используем два класса

Общее оформление для всех преимуществ готово, теперь надо «раскидать» их по тарифам.

Вспомните, как мы отделили элементы-преимущества от обычных элементов. Мы добавили им класс, который говорит, что перед нами преимущество ( advantages-item ). Можем ли мы некоторым преимуществам добавить ещё один класс, который привяжет их к какому-то тарифу и отделит их от других преимуществ? Можем, и тогда у одного элемента будет сразу два класса.

На самом деле у HTML-элемента может быть сколько угодно классов, в этом случае они перечисляются в атрибуте class через пробел, например:

Использование нескольких классов — это типовой приём, который ещё называется миксованием классов. Обычно его используют так: в один класс выносят общее оформление, а в дополнительных классах описывают его модификации. В примере выше размеры карточек товаров можно описать в CSS-правиле .product , а особый фон для хита продаж — в правиле .hit . В общем, удобный приём, помогает сократить дублирование кода.

Осталось придумать наши классы для тарифов. Для эконом-тарифа дополнительный класс вводить не будем, для стандартного тарифа используем класс standard , а для вип-тарифа — vip . Всё, можно дорабатывать разметку.

Перейти к заданию

  • index.html Сплит-режим
  • style.css Сплит-режим

Магазин товаров для дома

Gloevk

Разнообразные товары для дома с доставкой по всей планете

Примеры интерьеров

Что поможет вам создать домашний уют?

Что выделяет нас среди конкурентов?
© Кекс, 2020

Магазин товаров для дома

Группирование

При создании стиля для сайта, когда одновременно используется множество селекторов, возможно появление повторяющихся стилевых правил. Чтобы не повторять дважды одни и те же элементы, их можно сгруппировать для удобства представления и сокращения кода. В примере 17.1 показана обычная запись, здесь для каждого селектора приводится свой набор стилевых свойств.

Пример 17.1. Стиль для каждого селектора

H1 < font-family: Arial, Helvetica, sans-serif; font-size: 160%; color: #003; >H2 < font-family: Arial, Helvetica, sans-serif; font-size: 135%; color: #333; >H3 < font-family: Arial, Helvetica, sans-serif; font-size: 120%; color: #900; >P

Из данного примера видно, что стиль для тегов заголовков содержит одинаковое значение font-family . Группирование как раз и позволяет установить одно свойство сразу для нескольких селекторов, как показано в примере 17.2.

Пример 17.2. Сгруппированные селекторы

H1, H2, H3 < font-family: Arial, Helvetica, sans-serif; >H1 < font-size: 160%; color: #003; >H2 < font-size: 135%; color: #333; >H3

В данном примере font-family единое для всех селекторов применяется сразу к нескольким тегам, а индивидуальные свойства уже добавляются к каждому селектору отдельно.

Селекторы группируются в виде списка тегов, разделенных между собой запятыми. В группу могут входить не только селекторы тегов, но также идентификаторы и классы. Общий синтаксис следующий.

Селектор 1, Селектор 2, . Селектор N

При такой записи правила стиля применяются ко всем селекторам, перечисленным в одной группе.

Вопросы для проверки

1. Какой цвет фона будет у элемента с классом button при включении приведённого стиля?

.bgzapas, .button, h1 < font-size: 1.2em; padding: 10px; background-color: #fcfaed; >.bgzapas < background-color: #e7f2d7; >.button, h2 < width: 95px; font-size: 11px; color: #f3fced; background-color: #5ca22e; >.bgzapas, .button
  1. #fcfaed
  2. #e7f2d7
  3. #f3fced
  4. #5ca22e
  5. #d9d7f2

Элемент с несколькими CSS классами

Можно одновременно задать несколько CSS классов какому-нибудь тегу. Для этого в атрибуте class эти классы нужно перечислить через пробел.

Давайте посмотрим на примере. Пусть у нас есть несколько CSS классов:

.error < color: red; >.large < font-size: 30px; font-family: Arial; >

Зададим абзацу и один класс, и второй:

Пусть у вас даны следующие классы:

.success < color: green; >.error < color: red; >.large < font-size: 30px; >.small < font-size: 20px; >

Пусть у вас также есть 4 абзаца. С помощью представленных классов сделайте так, чтобы первый абзац был зеленый и с большим шрифтом, второй абзац — красным и с маленьким шрифтом, третий абзац — красным и с большим шрифтом, а четвертый — зеленым и с маленьким шрифтом.

Придумайте и сделайте 3 какие-нибудь класса. Задайте какому-нибудь тегу одновременно все три придуманных вами класса.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *