Как перечислить классы в css
Классы являются ключевыми селекторами CSS, так как дают практически неограниченную возможность по применению стилей к тем или иным HTML-элементам. Селектор класса всегда начинается с точки (.) после которой без пробела записывается имя класса. Общий синтаксис следующий:
Имя класса — это произвольное слово, которое вы придумываете сами, но есть ограничение, оно может состоять только из символов латинского алфавита (a-z, A-Z), цифр (0-9), символов дефиса (-) и подчеркивания (_). Причем имя класса не может начинаться с цифры или дефиса, за которым следует цифра. Например, классы .block-1, .-block3, .kartinkiBlock, ._7Block_vnizu — правильные, а .1-block, .-7block — нет.
Хорошо, класс мы создали, стили для него прописали, но как его применять к элементам? Ну, тут все проще простого. В теге необходимого элемента надо просто указать атрибут , где имя_класса и есть имя придуманного вами класса. Причем один и тот же класс можно использовать в любом количестве тегов. Вот и все.
Как вы помните, CSS не чувствителен к регистру, но есть одно «НО». Имя класса всегда должно точно соответствовать тому, что вы пропишете в атрибуте class . Например, если у вас есть класс .menuHeader, то в теге надо писать , а никак не , и т.д.
Ну что, пришла пора изучить пример, только не пугайтесь заранее такому количеству стилей. На самом деле, если вы хоть чуть-чуть к ним приглядитесь, то я уверен, что сразу во всем разберетесь.
Пример использования классов в CSS
Результат в браузере
Объединение классов CSS
В CSS допускается объединение классов, причем оно может использоваться для совершенно разных целей: для применения нескольких классов к одному элементу или для сужения выборки элементов.
Чтобы к элементу применились стили нескольких классов, необходимо эти классы перечислить через пробел в атрибуте class , причем, если у нескольких классов присутствует одно и то же свойство, то будет использовано то, которое находится ниже в коде таблицы стилей.
Применение нескольких классов CSS к одному элементу
Результат в браузере
Жирный текст синего цвета.
Жирный курсивный шрифт текста.
Жирный текст зеленого цвета.
Как видите, в последнем параграфе примера текст зеленый, так как класс .green находится ниже, чем .blue. Поехали дальше.
Иногда возникает необходимость в объединении класса с другим классом или другим селектором (например, тега), либо то и другое одновременно, чтобы сузить рамки выборки элементов. Для этого все селекторы указываются подряд без пробела, в этом случае стили будут применены только к тем элементам, которые соответсвуют сразу всем этим селекторам. Общий синтаксис:
Пример объединения селекторов классов в CSS
Результат в браузере
Примечание: вообще, объединение нескольких селекторов классов используется в верстке довольно редко , зато объединение классов с другими селекторами — очень часто , особенно с селекторами тегов.
В данном примере мы использовали один и тот же класс (.note) для разных тегов и с совершенно разными стилями. Также обратите внимание на последний тег , к тексту внутри него были применены не только свойства указанных классов, но и и общее для них свойство.
Это задание будет сложнее предыдущих. Сначала думал с ним немного повременить, но потом все же решил именно в классы его определить. Ведь лучше сейчас шишки набивать, чем потом, когда вы всерьез займетесь созданием своего сайта. Тем более, что со всеми свойствами CSS, которые здесь понадобятся, вы уже сталкивались, ну разве что одно вам может быть незнакомо. Итак.
Как работают в CSS классы и идентификаторы
Классы – это наиболее часто используемые селекторы в css. В большинстве случаев прописывание стилей различным элементам идет через них. Все потому, что class, в отличие от id, можно задавать многим тегам, поэтому он может быть применен для стилизации целой группы блоков. Например:
Теперь какому бы блоку мы ни прописали class center-wrap, он получит максимальную ширину в 960 пикселей и будет центрирован. И мы можем прописать его и для шапки, и для контента, и для футера.
Практический курс по верстке адаптивного сайта с нуля!
Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3
Класс вообще для того и создан, чтобы стилизовать группу, а не одиночный блок. Хотя при этом никто не запрещает задавать новый уникальный class только одному элементу. Вы вполне можете это делать.

Несколько классов: как это работает?
Стилевые классы имеют еще одну особенность – их можно задавать несколько одному html-элементу. Даже не несколько, а бесконечное количество, тут никаких ограничений нет. Например:
Первый может отвечать за цвет, второй – за какой-либо эффект, третий – за размер. К слову, такой подход сделан в css-фреймворках. Например, в Bootstrap. CSS-фреймворк – это уже по сути готовые написанные стили и вам остается лишь прописать нужные свойства элементам.
Если оба класса, которые применяются к элементу, содержат одинаковое стилевое свойство с разным значением, то применится то значение, которое записано в таблице стилей последним. Например:
В данном случае текст в блоке будет зеленым, а не красным, потому что это стилевое правило стоит в таблице стилей позже первого, а значит, переопределяет его.

Практический курс по верстке адаптивного сайта с нуля!
Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3
Идентификаторы
Наверняка вы зарегистрированы в какой-нибудь соц. сети? У вашему аккаунта там гарантированно есть какой-то id. Правда это не имеет ничего общего с css-идентификаторами, но общая их особенность вот в чем – id может быть только одним для одного конкретного элемента.
Нельзя задавать более 1 id одному элементу, а также нельзя давать один и тот же идентификатор двум разным элементам. Задается он с помощью атрибута id.

Из этого всего становится понятно, что идентификатор предназначен для стилизации одного конкретного элемента. Обычно он применяется по отношению к крупным элементам сайта. Например, к шапке (header), блоку контента (content), футеру (footer). То есть это те элементы, которые присутствуют на любом сайте в единственном числе и не повторяются. Также это может быть главная навигация, боковая колонка, форма комментариев и т.д.
Приоритетность в стилях
Если говорить о приоритетности в css, то тут идентификатор берет верх над классом. Давайте рассмотрим пример:
У нас есть 1 блок. Мы задали ему класс и идентификатор. Пропишем стили:
Какого цвета будет текст в блоке: зеленого или коричневого? Коричневого. И не потому, что идентификатор стоит в таблице стилей дальше класса. В данном случае это неважно, можно было бы поставить его перед, но результат все равно был бы таковым. Все потому, что идентификатор можно задать только 1. Соответственно, это очень точная характеристика элемента.
Дело в том, что для браузера чем точнее селектор, тем он является более приоритетным для выполнения записанных в нем свойств. Например, возьмем простой селектор тега – p. Он обращается ко всем абзацам на странице. Очень широкий селектор, так как абзацев очень много.
Но давайте попробуем селектор p.right<>. Он уже обратится только к тем абзацам, которые имеют класс right. То есть их может быть на самом деле много, но в любом случае их будет меньше, чем абзацев всего.
А теперь обратимся, допустим, к селектору #p-text. Он очень точный, так как выберет всего 1 элемент, у которого имеется этот идентификатор. Соответственно, вы можете привязать к элементу хоть 7 классов и прописать в них стили, но идентификатора хватит, чтобы все нужные стили переопределить.
Подытоживаем
В общем-то, сегодня мы достаточно подробно разобрали работу этих важных компонентов css, а также для чего они нужны. Могу сказать, что стилевые классы используются обычно чаще. Я видел шаблоны, где вообще использовались только они. И это нельзя назвать какой-то грубой ошибкой, если так подумать.
Стилевой класс вы можете использовать как для стилизации группы элементов, так и для одного. Идентификатор же используется строго для одного элемента. Если вы попробуете один и тот же id прописать двум элементам, то это не сработает. Также нельзя одному элементу определять более одного идентификатора – это уникальная метка, которая может быть только в одном числе.
Если мы говорим о приоритетности, то id приоритетнее класса, но тот, в свою очередь, приоритетней обычных селекторов тегов.
Вот такие пироги, друзья. Еще одну вещь могу сказать – без этих вещей css просто немыслим, почти все стили в каскадных таблицах записываются, привязываясь либо к стилевому классу, либо к id. Если вы используете редактор кода с подсветкой синтаксиса, то это можно будет легко увидеть.
Классы и идентификаторы.
Данная глава является своего рода продолжением главы первой о способах внедрения CSS в HTML документ. Отложил эту главу «на потом», нарушив тем самым стандартную последовательность обучения CSS, с той лишь целью, чтобы раньше времени не забивать Вам голову информацией, которая в начале была для Вас малопонятной.
Теперь, когда Вы уже познакомились с некоторыми свойствами CSS, поняли принцип построения и внедрения CSS в HTML, настал час и необходимость поговорить о CSS классах и идентификаторах, так как дальнейшее обучение, хоть и представляется возможным, но не раскроет в полной мере все возможности CSS.
Классы CSS.
Начнём с классов..
Как присвоить элементу или группе идентичных элементов индивидуальный стиль, отличный от основного, уже указанного в стилевом описании документа? Не знаю задавались Вы этим вопросом или нет, но рано или поздно на него необходимо найти ответ.
Итак.. предположим в файле CSS к элементу у нас применён следующий стиль:
И все вроде бы хорошо.. все параграфы синенькие и размер у них 14px, но нам надо сделать так чтобы некоторые из этих параграфов были розовые! И как быть??
На помощь приходят классы.
Для того чтобы выделить некоторые из параграфов розовым цветом, необходимо присвоить элементу определённое имя и вывести его тем самым в класс, в некую нестандартную, для страницы или сайта в целом, категорию.
Ну что давайте попробуем? Делается это так:
Поясню p — это элемент HTML (селектор) в данном случае наш параграф, .rose — это индивидуальное имя класса которое мы сами выдумали, оно может быть любым необязательно rose -розовый, точка между селектором и именем класса есть дань уважения к синтаксису принятому в CSS — теперь браузер поймет что данный элемент p выведен в класс rose .
Ну что ж имя мы присвоили теперь нам необходимо в документе HTML указать теги (в нашем случае теги ) которым необходим индивидуальный стиль. Делается это с помощью атрибута class .
Этот параграф использует имя класса rose и тем самым выделяется из основной массы
В данном примере класс «rose» может быть присвоен только параграфу — элементу p . Для того чтобы данное стилевое описание могло распространятся на все элементы, в файле CSS (или между тегами в заголовке документа) элемент явно не указывается и синтаксис приобретает следующий вид:
Теперь указав в любом элементе он примет стиль данного класса.
Обратите внимание на тот факт, что недостающие описания стиля выведенного в отдельный класс, элементы черпают из основного стилевого описания или же берут из свойств элемента «по умолчанию».
Например, заголовок был синим, а стал розовым, но при этом сохранил свой размер 22 пикселя, так как в нашем классе rose никаких разговоров о размере шрифта не шло.. мы лишь «договорились» с браузером, что элементы из группы rose будут розовыми.
Идентификаторы
Идентификаторы они же id селекторы, весьма схожи с классами, с тем лишь отличием, что идентификатор может иметь одно единственное уникальное имя во всем документе. Идентификаторы, как правило, применяются в том случае, если возникает необходимость управлять стилем элемента динамически с помощью скрипта, обращаясь к его индивидуальному имени.
В файле CSS имя указывается со знаком решётки в его начале.
Вот так, например:
А к нужному элементу добавляется атрибут например
id=»block»>Параграф с идентификатором
Ну так в чем же отличие между классом и идентификатором?
Покажу на примере:
Курсивом, в данном примере, выделен скрипт, который может динамически обрабатывать блоки с уникальными именами «block» и «block1» (скрывать и показывать его по нажатии на ссылку), и хотя пока Вам, думаю, мало, что понятно из выше написанного, но цель данного примера показать, как скрипт может обращаться к блоку через атрибут id . А вот с помощью классов мы бы не достигли такого результата.
Ну, думаю, объяснил кое как..
Полезные советы:
При построении CSS будьте логичны, соблюдайте «значимость» элементов и их порядок, так же как они вложены друг в друга в HTML коде.
Для чего это нужно?
Ну во-первых, просто для удобного чтения и «навигации» по CSS описанию. Когда Вам потребуется найти какой ни будь элемент Вы уже изначально будете представлять где он приблизительно находится в начале, середине, или конце..
Во-вторых, что более важно, загрузка страницы происходит не моментально и не всегда приятно наблюдать как содержание данной страницы при загрузке «прыгает» и всячески «шевелится» так как сначала прописываются «малозначимые» стили элементов, например шрифт параграфов, а в конце «значительные» например размеры блоков, с помощью которых свёрстан весь сайт. К тому же загрузка, по каким либо причинам, вообще может пройти не до конца..
Что увидит (сначала увидит) пользователь при «неправильном» построении CSS? Красивый шрифт, беспорядочно разбросанный в окне браузера? Или нормальное построение, но без красивого шрифта? — Это уже решать Вам!
При использовании классов и идентификаторов придумывайте им осмысленные информативные имена. Варианты тапа: .aaa .123 #abc #cba приведут к путанице!, я уж не говорю о том, что возможно в Вашем коде будет разбираться посторонний человек. Придумайте свою «систему» названий и не нарушайте её, так Вы сэкономите собственное время и затраченные усилия.
Учебник CSS. Бесплатные уроки по CSS. Изучаем каскадные таблицы стилей и пробуем красиво оформлять веб-сайты и страницы.
Здравствуйте, уважаемые посетители моего скромного блога для начинающих вебразработчиков и web мастеров ZametkiNaPolyah.ru. Я продолжаю рубрику Уроки CSS. В этой рубрике я уже писал о том, как создать простое CSS меню для сайта, как сделать горизонтальное и вертикальное CSS меню, о возможностях и функциях CSS, что такое CSS правила, CSS стили, CSS свойства и значения, а так же о том что такое CSS селекторы и какие они бывают. Сегодня я продолжаю тему CSS селекторов и данная публикация будет посвящена селекторам классов CSS и селекторам CSS идентификаторов.

CSS классы и идентификаторы CSS. CSS селекторы.
Стоит сразу сказать, что селекторы классов CSS и идентификаторов CSS можно будет использовать только если внести соответствующие изменения в HTML документа, добавить HTML атрибуты. В этой публикации мы как раз таки и поговорим про HTML атрибуты id и class, которые существенно облегчают оформление HTML страниц и позволяют выбирать и группировать HTML элементы в таблице стилей CSS более точно.
Селекторы классов CSS
В прошлой публикации я уже писал о том, что в каскадных таблицах стилей CSS можно группировать CSS селекторы и CSS объявления. В принципе, CSS классы и CSS идентификаторы предназначены для того, чтобы сгруппировать HTML элементы и разнообразить условия отбора нужных HTML элементов. Группировка, которая демонстрировалась в прошлой публикации, была очень простой и основывалась на выборе нужных элементов при помощи соответствующих селекторов. То есть мы обращались только к каким-то конкретным HTML элементам и задавали для них CSS стили.
Помимо простых CSS селекторов существует два специальных CSS селектора: селекторы классов CSS (class) и селекторы идентификаторов CSS (id). Данные селекторы позволяют задать CSS стили независимо от HTML элементов. Селекторы классов и селекторы идентификаторов можно применять независимо от селекторов элементов, а можно их использовать вместе. CSS селекторы классов, как и CSS селекторы идентификаторов будут работать только в том случае, если задать соответствующие атрибуты для нужных тегов в HTML документе.
Допустим, у нас есть HTML документ, есть текст про кошек и собак. Текст разбит на заголовками на логические части, и нам нужно, чтобы заголовки, относящиеся к описанию кошек были синего цвета, а заголовки, относящиеся к тексту про собак были серыми. Получается, что мы не сможем разделить заголовки про кошек и собак простыми CSS селекторами, потому что:
Мы не сможем задать два цвета при помощи простых CSS селекторов одному и тому же HTML элементу, следовательно, нужно внести какое-то разнообразие в HTML документ и сделать HTML элементы более уникальными, чтобы разнообразить условия выбора при помощи CSS селекторов. Для этого мы можем использовать HTML атрибут id и HTML атрибут class, а затем использовать уже CSS селекторы классов и CSS селекторы идентификаторов.
CSS классы. CSS селекторы классов
Самой распространенной практикой оформления веб-страниц без использования простых CSS селекторов, является практика использования CSS селекторов класса. Но, чтобы использовать CSS классы требуется внести изменения в код HTML документа, добавить HTML атрибут class к требуемым HTML элементам. Например, вернемся к кошкам и собакам и создадим HTML документ:
Как вы можете видеть, у каждого тега есть атрибут class, со значением “cat” для заголовка про кошек и со значением “dog” для заголовка о собаках. Это сделано, чтобы задать свои CSS стили для заголовка про кошек и стили для заголовка о собаках. Так же мы хотим, чтобы слово кошка выделялось из первого абзаца и слово собака выделялось из второго абзаца, для этого можно использовать HTML тэг , для которого мы аналогичным образом задали CSS классы. Страница без добавления CSS стилей будет выглядеть так:

HTML страница без CSS стилей
Довольно скучная и невзрачная страница. Давайте добавим несколько CSS стилей к нашей странице:
В каскадных таблицах стилей CSS используется краткая запись для добавления имени CSS селектора класса, достаточно добавить точку перед именем, класса, которое мы задали, как значение атрибута class. Например: .dog, .cat или .dogs. Селекторы CSS классов можно объединять вместе с другими селекторами классов, с селекторами идентификаторов CSS, с селекторами элементов. А вот то, что получится, когда мы добавим CSS стили, написанные выше:

HTML страница с добавлением CSS стилей
Мы видим, что стили соответствующих классов применились сразу ко всем элементам на HTML странице. Чтобы продемонстрировать то, как можно комбинировать CSS селекторы элементов с селекторами классов, давайте немного изменим пример:
Теперь у каждого HTML тега в документе используется класс со значением “cat”. Соответственно те CSS стили, которые мы задали ранее, будут работать не так, как нам требуется, вот что мы увидим (со старыми стилями):

В общем, мы увидим, что весь тест принял стиль, который мы создали для HTML заголовка в первом случае, давайте это исправим. Достаточно скомбинировать CSS селекторы:
Теперь мы скомбинировали селекторы CSS элементов и CSS классов и получили то, что нам нужно:

HTML страница с CSS стилями
Таким образом, получилось, что CSS стили, прописанные для селекторов h3.cat будут распространяться только на заголовки третьего уровня, у которых значения атрибута class равно “cat”, соответственно стили, которые написаны для селектора p.cat будут действовать только на все HTML элементы
, у которых класс равен “cat”, аналогично и для тэга . Обратите внимание: я не ставил запятые между CSS селекторами, если поставить запятые, то получится совсем другой результат, просто ко всему HTML документу применится стиль, который мы задали последним (это относится к высоте и цвету текста на странице), абзац и заголовок будет расположен по центру, шрифт будет использован Arial, а их ширина будет равна 600 пикселов, также появится нижняя часть рамки под каждым HTML элементом на странице. Все это связано с тем, что объявления, которые написаны позже, имеют больший приоритет.
Множественные классы CSS
Вы уже видели, что значение атрибута class может состоять из одного слова, но в HTML значение атрибута class может состоять из двух слов и более слов, в этом случае слова разделяются пробелами. Вернемся к собакам, например, мы описываем, какую-нибудь пароду собак, например немецкую овчарку и нам необходимо выделить это слово и как собака и как немецкая овчарка. Для этого мы можем использовать множественный класс, HTML атрибут class будет выглядеть следующим образом:
Порядок слов в данном случае не будет иметь никакого значения, можно было бы написать «shepherd dog». Создадим пример, в котором будут использованы три CSS класса, один из них будет множественным классом:
Теперь мы можем задать три различных стиля отображения для множественного CSS селектора и для двух селекторов классов dog и shepherd. Синтаксис для множественных CSS селекторов очень прост:
Обратите внимание: Internet Explorer до 7 версии не всегда правильно обрабатывает множественные селекторы CSS классов. В IE6 можно выбирать одно из нескольких слов, которые входят в состав множественного селектора. Если вы напишите два или более слов в CSS селекторе, то браузер IE6 выполнит выборку по последнему слову, то есть отберет все элементы, в значение атрибута class есть последнее слово.
Селекторы CSS идентификаторов
Еще одним селектором, который позволяет сделать HTML элементы более уникальными, соответственно, и более точную выборку элементов с веб-страницы, является селектор идентификаторов CSS. Селекторы идентификаторов чем-то похожи на селекторы CSS классов, но у них есть некоторые индивидуальные особенности, которые следует учитывать при использование CSS идентификаторов. Самой важной особенностью идентификаторов CSS является то, что идентификаторы должны быть уникальны, то есть два HTML элемента не могут иметь один и тот же идентификатор. Так же отличается синтаксис селекторов идентификаторов от селекторов классов. Вместе точки следует писать “#”, а затем значение идентификатора. Чтобы задать идентификатор для HTML элемента следует использовать атрибут id, а не атрибут class. Например:
Соответственно CSS правило будет выглядеть следующим образом:
Атрибут id, который присваивает идентификатор можно прописать практически для любого HTML тэга. Название CSS идентификатора может состоять только из символов латинского алфавита, тире, символов подчеркивания, цифр, но цифра не должна быть первой при именовании идентификаторов, регистр букв при именовании идентификаторов не имеет значение в случае HTML, но если мы создаем XHTML или XML документ, то регистр будет учитываться браузером. Аналогичные правила именования действуют и на имена селекторов классов CSS.
Что использовать? CSS идентификаторы или CSS классы
Как вы могли заметить: у селекторов идентификаторов и у селекторов классов CSS есть свои уникальные особенности, но что же лучше использовать? Однозначного ответа на этот вопрос дать невозможно, все зависит от ситуации или привычки разработчика. Из всего выше сказанного нужно было вынести следующее: CSS классы можно задавать любому количеству элементов на HTML странице. В примерах мы использовали один класс “dog” и для тега , и для тэга
, и для тега . В свою очередь, CSS идентификаторы можно использовать в HTML документе только единожды. Поэтому если в вашем документе есть HTML элемент с атрибутом id, значение которого равно “container”, то вы не имеете права присваивать любому другому HTML элементу в документе такое же значение атрибута id.
Идентификаторы CSS не могут объединяться, то есть, нет множественных идентификаторов, но есть множественные классы. При оформлении XML документов работа CSS классов не гарантируется, так как для обозначения классов используется точка. В свою очередь символ решетки разрешен к применению в любом языке разметки. То есть использовать CSS идентификаторы мы можем для любых документов, в любых языках разметки. Точнее не так, мы можем использовать символ # в любых языках, в которых существует атрибут, уникальность значения которого требуется в рамках одного документа. Это не обязательно будет атрибут id (в других языках разметки).
Похожие публикации:
- Как наложить градиент на картинку в css
- Как нарисовать график в html без css
- Когда был разработан первый алгоритмический язык fortran
- Почему css не работает
Как перечислить несколько классов в CSS
В статье объясняется, как использовать несколько классов в CSS для стилизации элементов веб-страницы. Рассматриваются различные способы комбинирования классов и их приоритетности, а также приводятся примеры кода для более наглядного понимания.
Веб-разработка – это увлекательная и творческая сфера деятельности, требующая знания различных технологий и инструментов. Одним из таких инструментов является CSS, или каскадные таблицы стилей. CSS позволяет задавать внешний вид веб-страницы, делая ее красивой и современной.
Одной из важных возможностей CSS является возможность применения классов к элементам HTML-разметки. Классы позволяют группировать элементы с одинаковыми стилями и применять к ним общие правила стилей. Иногда бывает необходимо применить несколько классов к одному элементу. Но как это сделать?
Существует простой способ перечисления нескольких классов в CSS. Для этого нужно использовать пробел между именами классов в атрибуте class элемента. Например, если у вас есть два класса «red» и «bold», и вы хотите применить их к элементу, вам нужно написать bold». Таким образом, все стили, определенные для классов «red» и «bold», будут применены к элементу, к которому применен этот атрибут.
Откройте файл стилей
Чтобы начать работу с CSS, нужно открыть файл стилей в вашем проекте. Файл стилей имеет расширение .css и обычно называется style.css или main.css. Он содержит все инструкции по оформлению вашей веб-страницы.
Вы можете открыть файл стилей в любом текстовом редакторе, таком как Notepad++, Sublime Text или Visual Studio Code. Если вы используете интегрированную среду разработки, такую как Dreamweaver или Atom, вы можете открыть файл стилей прямо в редакторе.
Примечание: Убедитесь, что файл стилей находится в одной директории с вашим файлом HTML. Если они находятся в разных директориях, вам нужно будет указать путь к файлу стилей в вашем HTML-файле.
Куда можно поступить после ЕГЭ по химии, биологии, русскому и математике?
Как только вы откроете файл стилей, вы можете приступить к написанию правил CSS для ваших элементов HTML. Здесь вы можете добавить классы, определить стили для этих классов и многое другое.
Убедитесь, что вы правильно оформляете и структурируете ваш файл стилей, чтобы он был легко читаемым и понятным для других разработчиков.
Найдите класс, который нужно изменить
Перед тем как начать изменять классы в CSS, вам нужно найти класс, который требуется изменить. Для этого вы можете использовать инструменты разработчика в вашем браузере. Вот как это сделать:
- Откройте веб-страницу, на которой вы хотите изменить класс.
- Щелкните правой кнопкой мыши на элементе, класс которого вы хотите изменить.
- В контекстном меню выберите «Исследовать элемент» или «Просмотреть код элемента», в зависимости от браузера.
После этого откроется инструмент разработчика, где вы увидите исходный код веб-страницы и выделенный элемент. В исходном коде вы найдете класс элемента, который нужно изменить.
Чтобы найти класс, просто просмотрите исходный код до тех пор, пока не найдете атрибут «class» с соответствующим значением. Например, если вы хотите изменить цвет заголовка, найдите класс заголовка и убедитесь, что у него есть атрибут «class».
Когда вы найдете класс, который нужно изменить, запишите его название. Вы будете использовать это название в своих правилах CSS, чтобы изменить стили этого класса.
Отделите классы запятой
В CSS вы можете применять одно или несколько правил стилей к различным элементам HTML, используя классы. Для указания нескольких классов в одном селекторе, вы должны разделить их запятыми.
Например, если у вас есть два класса — «красный» и «жирный», и вы хотите применить оба этих класса к элементу, вы можете сделать это следующим образом:
Intellij IDEA: как создать проект на Kotlin
|
Текст |
.красный, .жирный |
В данном примере классы «красный» и «жирный» применяются к элементу
. Это означает, что текст будет выделен жирным шрифтом и будет иметь красный цвет.
Когда вы перечисляете несколько классов в CSS-селекторе, они объединяются и применяются ко всем соответствующим элементам. Обратите внимание, что порядок классов не имеет значения.
Теперь вы знаете, как перечислять несколько классов в CSS, используя запятую между ними. Это дает вам больше гибкости и контроля при стилизации веб-страницы.
Используйте пробелы
Таким образом, элемент будет отображаться сразу с двумя классами, и все стили, определенные для этих классов, будут применяться.
Кроме того, вы также можете использовать пробелы для применения одного класса к нескольким элементам. Например, если у вас есть класс «список», вы можете применить его ко всем элементам списка, разделив их пробелами:
В этом примере все элементы списка будут иметь стили, определенные для класса «список».
Использование пробелов для перечисления нескольких классов в CSS позволяет вам гибко управлять стилями и применять их к нужным элементам. Обязательно используйте пробелы для разделения классов, чтобы ваши стили работали правильно.
Добавьте новый класс с помощью пробела

Если вам необходимо применить несколько классов к одному элементу в CSS, вы можете использовать пробел для разделения классов. В этом случае стили из всех указанных классов будут применены к элементу.
Например, если у вас есть два класса, назовем их «класс1» и «класс2″, вы можете добавить оба класса к элементу, разделив их пробелом:
Как найти вероятность выпадения в математике: основные методы и примеры
В результате этого элемента будут применены стили из обоих классов «класс1» и «класс2».
Сохраните файл стилей и обновите страницу
После того, как вы закончили внесение изменений в файл стилей, не забудьте сохранить его. Нажмите на кнопку «Сохранить» или воспользуйтесь комбинацией клавиш, например Ctrl + S. Убедитесь, что файл сохранен в нужной вам директории с правильным именем.
После сохранения файла стилей, обновите страницу в браузере. Нажмите клавишу F5 или воспользуйтесь сочетанием клавиш Ctrl + R. Это обновит страницу и позволит браузеру загрузить новую версию файла стилей.
Проверьте, что все изменения, которые вы внесли в файл стилей, отображаются корректно на странице. Если какие-то стили не применяются, убедитесь, что вы правильно указали классы для элементов в HTML-разметке.
Не забывайте сохранять файл стилей и обновлять страницу при каждом изменении, чтобы видеть результат вашей работы. Так вы сможете быстро исправить ошибки и настроить внешний вид страницы именно так, как вам нужно.
Видео по теме:
1 комментарий к “Как перечислить несколько классов в css: инструкция для начинающих”
Отличная статья для начинающих! Я давно интересовался созданием своего сайта и всегда задавался вопросом, как правильно перечислить несколько классов в CSS. Наконец-то нашел ответы на все свои вопросы. Теперь я понимаю, что можно просто через пробел указать все нужные классы в атрибуте «class» и стили будут применяться ко всем указанным классам. Очень удобно! Теперь мой код стал намного чище и понятнее. Большое спасибо автору за такую простую и понятную инструкцию! Теперь мне будет намного проще работать с CSS. Жду новых статей и полезных советов! Ответить
Классы CSS
Классы являются ключевыми селекторами CSS, так как дают практически неограниченную возможность по применению стилей к тем или иным HTML-элементам. Селектор класса всегда начинается с точки (.) после которой без пробела записывается имя класса. Общий синтаксис следующий:
.имя_класса < свойство: значение; свойство: значение; . >
Имя класса — это произвольное слово, которое вы придумываете сами, но есть ограничение, оно может состоять только из символов латинского алфавита (a-z, A-Z), цифр (0-9), символов дефиса (-) и подчеркивания (_). Причем имя класса не может начинаться с цифры или дефиса, за которым следует цифра. Например, классы .block-1, .-block3, .kartinkiBlock, ._7Block_vnizu — правильные, а .1-block, .-7block — нет.
Хорошо, класс мы создали, стили для него прописали, но как его применять к элементам? Ну, тут все проще простого. В теге необходимого элемента надо просто указать атрибут class= «имя_класса» , где имя_класса и есть имя придуманного вами класса. Причем один и тот же класс можно использовать в любом количестве тегов. Вот и все.
Как вы помните, CSS не чувствителен к регистру, но есть одно «НО». Имя класса всегда должно точно соответствовать тому, что вы пропишете в атрибуте class . Например, если у вас есть класс .menuHeader, то в теге надо писать class= «menuHeader» , а никак не class= «menuheader» , class= «MenuHeader» и т.д.
Ну что, пришла пора изучить пример, только не пугайтесь заранее такому количеству стилей. На самом деле, если вы хоть чуть-чуть к ним приглядитесь, то я уверен, что сразу во всем разберетесь.
Пример использования классов в CSS
Результат в браузере
- Способы подключения CSS
- Типы устройств в CSS
- Синтаксис CSS
Объединение классов CSS
В CSS допускается объединение классов, причем оно может использоваться для совершенно разных целей: для применения нескольких классов к одному элементу или для сужения выборки элементов.
Чтобы к элементу применились стили нескольких классов, необходимо эти классы перечислить через пробел в атрибуте class , причем, если у нескольких классов присутствует одно и то же свойство, то будет использовано то, которое находится ниже в коде таблицы стилей.
Применение нескольких классов CSS к одному элементу
Объединение классов .bold < font-weight: bold; >.kursiv < font-style: italic; >.blue < color: blue; >.green Жирный текст синего цвета.
Жирный курсивный шрифт текста.
Жирный текст зеленого цвета.
Результат в браузере
Жирный текст синего цвета.
Жирный курсивный шрифт текста.
Жирный текст зеленого цвета.
Как видите, в последнем параграфе примера текст зеленый, так как класс .green находится ниже, чем .blue. Поехали дальше.
Иногда возникает необходимость в объединении класса с другим классом или другим селектором (например, тега), либо то и другое одновременно, чтобы сузить рамки выборки элементов. Для этого все селекторы указываются подряд без пробела, в этом случае стили будут применены только к тем элементам, которые соответсвуют сразу всем этим селекторам. Общий синтаксис:
Пример объединения селекторов классов в CSS
Объединение селекторов p.note < /* стили параграфа-примечания */ border: 5px #c66 double; padding: 5px; >span.note < /* стили span для примечания */ font-weight: bold; color: #f00; >.kursiv < font-style: italic; >.bold < font-weight: bold; >.kursiv.bold используется в верстке довольно очень часто, особенно с селекторами тегов.
Результат в браузере
Примечание: вообще, объединение нескольких селекторов классов используется в верстке довольно редко , зато объединение классов с другими селекторами — очень часто , особенно с селекторами тегов.
В данном примере мы использовали один и тот же класс (.note) для разных тегов и с совершенно разными стилями. Также обратите внимание на последний тег , к тексту внутри него были применены не только свойства указанных классов, но и и общее для них свойство.
Это задание будет сложнее предыдущих. Сначала думал с ним немного повременить, но потом все же решил именно в классы его определить. Ведь лучше сейчас шишки набивать, чем потом, когда вы всерьез займетесь созданием своего сайта. Тем более, что со всеми свойствами CSS, которые здесь понадобятся, вы уже сталкивались, ну разве что одно вам может быть незнакомо. Итак.
- Сделайте колонку небольшой ширины, например 200px. Поместите в нее меню со ссылками. Оформите его так, как показано в результате задания.
- Ниже создайте еще один блок и напишите в нем несколько параграфов.
- Пусть ваш блок с меню всплывает влево, для этого вам потребуется свойство float.
- После всплытия меню, текст параграфов будет его обтекать справа. Сделайте так, чтобы текст не прилегал к меню вплотную, а был от него на определенном расстоянии, например в 20px. Но это еще не все. Он должен не просто не прилегать, но и не размещаться под меню, если текста достаточно много. Вот здесь вам придется голову поломать.
- Не вздумайте использовать таблицы.
Разделы сайта
- Как сделать сайт
Самому и бесплатно - Учебник HTML
Для начинающих - Учебник CSS
Для новичков - Справочники
По HTML и CSS - Примеры
HTML и CSS - Ссылки
Полезные сайты для вебмастеров - Инструментарий
Программы для создания сайтов
Селекторы CSS. Виды и группировка
Селекторы — это один из фундаментальных механизмов CSS. С помощью них мы определяем, к каким элементам нужно применить стили, перечисленные внутри фигурных скобок.
селектор { свойство: значение; свойство: значение; /* . */ }
p { text-align: center; font-size: 20px; }
В этом CSS-правиле, p — это селектор , а точнее селектор по типу элемента . Данное правило устанавливает стили (CSS-свойства, описанные в нём) для всех тегов
на странице.
В CSS очень много различных селекторов. При создании селектора мы можем составлять его из нескольких селекторов для выбора необходимых элементов, к которым следует применить определённые стили.
Базовые селекторы
1. Селектор по типу элемента (тегу) предназначен для выбора всех элементов по имени тега:
/* для всех */ input { /* . */ }
Например, установим для всех
величину нижнего оступа, равной 1rem :
/* для всех*/ p { margin-bottom: 1rem; }
2. Селектор по классу предназначен для выбора элементов по классу (основывается на значении атрибута class ):
/* для всех элементов, имеющих в атрибуте class слово card */ .card { /* . */ }
Например, установим для всех элементов с классом center выравнивание текста по центру:
.center { text-align: center; }
3. Селектор по идентификатору предназначен для выбора элемента по значению атрибута id :
/* для элемента с */ #slider { /* . */ }
Например, установим фон и верхний внешний отступ для элемента с id=»footer» :
/* для элемента с */ #footer { background-color: #eee; margin-top: 20px; }
4. Универсальный селектор ( * ) предназначен для выбора всех элементов:
Например, установим всем элементам на странице margin: 0 и padding: 0 :
* { margin: 0; padding: 0; }
Селекторы по атрибуту
Эти селекторы предназначены для выбора элементов по имени атрибута или по атрибуту с указанным значением:
- [attr] – по имени атрибута;
- [attr=value] – по имени и значению атрибута;
- [attr^=value] – по имени и значению, с которого оно должно начинаться;
- [attr|=value] – по имени атрибута и его значению, которое равно value или начинается со value- ;
- [attr$=value] – по имени атрибута и значению, на которое оно должно заканчиваться;
- [attr*=value] – по указанному атрибуту и значению, которое должно содержать value ;
- [attr~=value] – по имени атрибута и значению, которое содержит value отделённое от других с помощью пробела.
1. С атрибутом target :
[target] { background-color: red; }
2. С атрибутом rel=»nofollow» :
[rel="nofollow"] { background-color: green; }
3. С атрибутом href и значением, которое должно начинаться с https :
[href^="https"] { background-color: yellow; }
4. С атрибутом class и значением, которое равно test или должно начинаться с test- (после дефиса идёт остальное содержимое значения этого атрибута):
[class|="test"] { background-color: orange; }
5. С атрибутом class и значением, которое заканчивается на color :
[class$="color"] { background-color: yellow; }
6. С атрибутом href и значением, которое содержит подстроку youtu.be (пример элемента, соответствующего этому селектору: . ):
[href*="youtu.be"] { background-color: green; }
7. С атрибутом data-content и значением, которое содержит строку news , отделённую от других слов с помощью пробела (пример элемента, соответствующего этому селектору ):
[data-content~="news"] { background-color: brown; }
Псевдоклассы
Псевдоклассы предназначены для более точного выбора элементов в зависимости от их динамического состояния или расположения. С помощью них можно, например, установить стили элементу при поднесении к нему курсора или стилизовать элемент в зависимости от того какой он имеет порядковый номер.
Псевдоклассы — это дополнение к основному селектору, которое позволяет выбрать элемент в зависимости от его особого состояния. Добавляется он к селектору c помощью символа : , т.е. так селектор:псевдокласс .
Псевдоклассы для выбора элементов в зависимости от их состояния
К этой группе псевдоклассов можно отнести псевдоклассы: :link , :visited , :hover , :active и :focus .
Псевдоклассы :link и :visited предназначены исключительно для ссылок (элементов a с атрибутом href ).
Псевдоклассы :hover , :active и :focus могут применяться не только к ссылкам, но и к другим элементам.
Псевдокласс :link
Псевдокласс :link предназначен для выбора не посещённых ссылок.
Пример задания правила для всех элементов a с классом external , которые пользователь ещё не посетил:
/* селектор a.external:link выберет все элементы a с классом external пользователь по которым ещё не переходил */ a.external:link { color: red; }
Псевдокласс :visited
Псевдокласс :visited предназначен для выбора посещённых ссылок.
Пример задания правила для всех элементов a , расположенных в .aside , пользователь которые уже посетил:
/* селектор .side a:visited выберет все элементы a, находящиеся в .aside, пользователь которые уже посетил */ .aside a:visited { color: #000; }
Псевдокласс :active
Псевдокласс :active предназначен для выбора элементов в момент когда они активируются пользователем. Например, когда пользователь нажал левой кнопкой мышкой на ссылку, но её ещё не отпустил. В основном данный класс применяется для ссылок ( a ) и кнопок ( button ), но может также использоваться и для других элементов.
Пример задания CSS правила для всех элементов a когда они активируются пользователем:
/* селектор a:active выберет все элементы a, находящиеся в активном состоянии */ a:active { background-color: yellow; }
Псевдокласс :hover
Псевдокласс :hover предназначен для выбора элементов при поднесении к ним курсора (при наведении на них).
Пример задания CSS правила для всех элементов .btn-warning при поднесении к ним курсора:
/* селектор .btn-warning:hover выберет все элементы .btn-warning при поднесении к ним курсора */ .btn-warning:hover { color: #fff; background-color: #ff8f00; }
При задании CSS-правил для ссылок с использованием псведоклассов :link , :visited , :hover и :active , их следует распологать в следеующем порядке:
a:link { . } a:visited { . } a:hover { . } a:active { . }
Если CSS-правила расположить в другом порядке, то часть из них могут не работать.
Псевдокласс :focus
Предназначен для выбора элемента, который в данный момент находится в фокусе. Например, данное состояние может активироваться когда мы кликаем мышью в текстовое поле или переходим в него с помощью клавиши tab на клавиатуре.
Пример задания CSS правила для элемента input[type=»text»] при нахождении его в фокусе:
/* селектор input[type="text"] найдет элемент input с атрибутом type="text" при нахождении его в фокусе */ input[type="text"]:focus { background-color: #ffe082; }
По расположению среди соседей
При выборе элементов можно дополнительно с помощью псевдоклассов задать условие (фильтр) по их расположению (порядковому номеру) в родителе.
Псевдоклассы, предназначенные для этого: :first-child , :last-child , :only-child , :nth-child(выражение) , :nth-last-child(выражение) .
Псевдокласс :first-child
Псевдокласс :first-child применяется для выбора элементов, которые являются первыми дочерними элементами своего родителя.
Пример задания CSS правила для элементов li являющимися первыми дочерними элементами своего родителя:
/* селектор li:first-child выберет элементы li, которые являются первыми элементами своего родителя */ li:first-child { font-weight: bold; }
Псевдокласс :last-child
Псевдокласс :last-child применяется для выбора элементов, которые являются последними дочерними элементами своего родителя.
Пример задания CSS правила для элементов .alert-warning , которые являются последними дочерними элементами своего родителя:
/* селектор .alert-warning:last-child выберет элементы .alert-warning которые являются последними элементами своего родителя */ .alert-warning:last-child { font-weight: bold; }
Псевдокласс :only-child
Псевдокласс :only-child используется для выбора элементов, если они являются единственными дочерними элементами внутри родительского контейнера.
h2:only-child { . }
Селектор h2:only-child выберет все элементы h2 , если они являются единственными дочерними элементами своего родителя.
Действие аналогичное :only-child можно выполнить с помощью псевдоклассов :first-child и :last-child . Например селектор h2:only-child можно ещё реализовать так: h2:last-child:first-child .
Псевдокласс :nth-child(выражение)
Псевдокласс :nth-child() применяется для выбора элементов по их порядковому номеру в родителе. В качестве выражения можно использовать число, формулу или ключевые слова odd или even . Отсчёт элементов в родителе начинается с 1.
/* селектор .li:nth-child(2) выберет элементы li, которые явлются вторыми элементами своего родителя */ .li:nth-child(2) { . } /* селектор .li:nth-child(odd) выберет элементы li, которые явлются нечётными элементами (1, 3, 5, . ) своего родителя */ .li:nth-child(odd) { . } /* селектор .li:nth-child(even) выберет элементы li, которые явлются чётными элементами (2, 4, 6, . ) своего родителя */ .li:nth-child(even) { . } /* селектор .li:nth-child(2n+1) выберет элементы li, которые имеют порядковые номера 1, 3, 5, 7, . внутри своего родителя */ .li:nth-child(2n+1) { . }
Формула имеет следующую запись: An + B . A и B — это числа, а n — счетчик, принимающий целые значения, начиная с 0 (т.е. 0, 1, 2, 3 . ).
Например, формула вида 3n + 2 будет определять элементы с порядковыми номерами (2, 5, 8, . ). Т.е. 3 * 0 + 2 , 3 * 1 + 2 , 3 * 2 + 2 , .
А например, формула вида 5n будет определять элементы с порядковыми номерами (0, 5, 10, . ). Т.е. 5 * 0 , 5 * 1 , 5 * 2 , .
Псевдокласс :nth-last-child(выражение)
Псевдокласс :nth-last-child() выполняет те же действия что и :nth-child() за исключением того, что отсчет элементов в родителе вёдется не с начала, а с конца. В псведоклассе :nth-last-child(выражение) в качестве выражения можно использовать те же вещи, т.е. число, формулу, или ключевые слова odd или even
По расположению среди соседей с учётом типа элемента
В CSS имеются псевдоклассы аналогичные :first-child , :last-child и т.д. Они отличаются от них только тем, что выполняют это с учётом типа элемента.
Список псевдоклассов, предназначенных для этого: :first-of-type , :last-of-type , :only-of-type , :nth-of-type(выражение) , :nth-last-of-type(выражение) .
Псевдокласс :first-of-type
Данный псевдокласс очень похож на :first-child , но в отличие от него он выбирает не просто первый элемент, а первый элемент своего родителя с учётом его типа .
Например, выберем все элементы p , которые являются первыми элементами указанного типа у своего родителя:
p:first-of-type { . }
При использовании селектора p:first-child , ни один элемент p не был выбран, т.к. ни один из них не является первым дочерним элементом своего родителя.
Псевдокласс :last-of-type
Данный псевдокласс предназначен для выбора элементов, которые являются последними дочерними элементами данного типа своего родителя.
li:last-of-type { . }
Псевдокласс :only-of-type
Псевдокласс :only-of-type применяется для выбора элементов, если каждый из них являются единственным дочерним элементом данного типа внутри своего родителя. В отличие от :only-child псведокласс :only-of-type работает аналогично, но с учётом типом элемента.
p:only-of-type { . }
В этом примере стили будут применены к элементам p , которые являются единственным элементом p внутри своего родителя.
Псевдокласс :nth-of-type(выражение)
Данный псевдокласс предназначен для выбора элементов по их порядковому номеру в родителе с учетом их типа.
Псевдокласс :nth-of-type(выражение) похож на :nth-child(выражение) с разницей лишь а том, что он учитывает тип элемента. В качестве выражения также можно использовать число, формулу или ключевые слова odd или even . Отсчёт элементов в родителе начинается с 1.
Селектор p:nth-child(2) выберет второй по счёту элемент, если он является p , а селектор p:nth-of-type(2) веберет второй дочерний элемент p среди дочерних p .
Псевдокласс :nth-last-of-type(выражение)
Псевдокласс :nth-last-of-type(выражение) аналогичен классу :nth-of-type(выражение) с разницей в том, что отсчёт дочерних элементов ведётся с конца.
Псевдоклассы для элементов форм
К этой группе можно отнести псевдоклассы :enabled , :disabled и :checked .
Псевдоклассы этой группы, а также :hover , :active и :focus ещё называют событийными селекторами, т.к. они позволяют применить стили при наступлении определённых событий.
Псевдокласс :checked
Псевдокласс :checked предназначен для выбора элементов radio , checkbox и option внутри select , которые находятся во включенном состоянии.
input:checked + label { background-color: yellow; }
В этом примере фон элемента label при отмеченном checkbox выделяется цветом. Выбор включенного чекбокса выполняется с помощью псевдокласса :checked .
Псевдокласс :enabled
Псевдокласс :enabled предназначен для выбора включенных элементов формы, с которыми пользователь может взаимодействовать, например, нажать на него или внести текст.
Пример, в котором установим для всех включенных элементов input фон:
input:enabled { background-color: yellow; }
Псевдокласс :disabled
Элементы формы могут кроме включенного состояния находиться ещё в отключенном.
Псевдокласс :disabled предназначен для выбора отключенных элементов формы, т.е. элементов с которыми пользователь в данный момент не может взаимодействовать.
Например, выберем все отключенные элементы input :
input:disabled { . }
Остальные псевдоклассы
Псевдокласс :not(селектор)
Псевдокласс :not() предназначен для выбора элементов, которые не содержат указанный селектор.
/* Селектор .aside > div:not(:first-child) выберет все элементы div кроме первого непосредственно расположенные в .aside */ .aside > div:not(:first-child) { . }
В качестве селектора можно указывать селекторы по тегам, классам, атрибутам, использовать псевдоклассы, т.е. всё кроме псведокласса :not() , несколько сгруппированных селекторов, псевдоэлементы, дочерние и вложенные селекторы:
/* такие конструкция работать не будет */ :not(:not(. )) { . } div:not(.alert.alert-warning) { . } .item:not(::before) { . } .slider .slider__item:not(.active img) { . } td:not(.row + td) { . }
При необходимости можно использовать несколько псевдоклассов :not() .
/* применим стили ко всем элементам div, расположенных непосредственно в .message, за исключением .alert-warning и .alert-danger */ .message > div:not(.alert-warning):not(.alert-danger) { . }
Пример CSS селектора для выбора элементов, которые не содержат некоторый класс:
// этот селектор выберет все элементы p, которые не содержат класс alert p:not(.alert) { . }
Псевдокласс :empty
Псевдокласс :empty предназначен для выбора пустых элементов (т.е. элементов, у которых нет дочерних узлов, в том числе текстовых).
div:empty { . }
Селектор div:empty выберет все пустые элементы div на странице.
Псевдокласс :root
Псевдокласс :root предназначен для выбора корневого элемента документа. В HTML документе данным элементом является . В отличие от селектора по тегу html данный псевдокласс имеет более высокий приоритет.
Применять :root можно например для объявления CSS переменных:
:root { --text-info: hotpink; --text-warning: hotpink; --aside-padding: 10px 15px; }
Псевдокласс :target
Псевдокласс :target предназначен для выбора элемента, идентификатор которого соответствует хэшу в URL-адресе.
:target { color: red; }
В этом примере стили будут применены к элементу с id=»header-1″ , если хэш URL страницы будет равен #header-1 . Если же хэш будет равен #header-2 , то псевдокласс :target соответственно выберет элемент с id=»header-2″ и стили уже будут применены к нему.
Группировка селекторов
Для задания правил нескольким селекторам одновременно их необходимо перечислить через запятую.
Синтаксис: селектор1, селектор2, .
Пример задания правила для всех элементов h3 и h4 на странице:
/* селектор h3, h4 выберет все элементы на странице, имеющих тег h3 и h4 */ h3, h4 { font-size: 20px; margin-top: 15px; margin-bottom: 10px; }
Комбинирование селекторов
В CSS селекторы можно комбинировать. Осуществляется это очень просто, посредством последовательного их записывания, без использования пробела.
Пример селектора для выбора элементов, которые имеют одновременно два класса:
.modal.open { . }
Пример селектора для выбора элементов, которые имеют указанный класс, атрибут, и является первым дочерним элементом в своём родителе:
.btn[data-toggle="collapse"]:first-child { . }
Селекторы отношений
В HTML документе каждый элемент всегда связан с другими элементами.
Виды отношений между HTML элементами:
- родитель – элемент, непосредственно в котором находится рассматриваемый элемент;
- предок – это элемент, который расположен на одном из уровней иерархии элементов, до которого можно дойти двигаясь от рассматриваемого элемента к его родителю, от его родителя к родителю его родителя и т.д.
- дети – это элементы, непосредственно расположенные в текущем рассматриваемом элементе;
- потомки (дочерние элементы) – это любые элементы, которые находятся в текущем элементе вне зависимости от уровня иерархии, в котором они расположены;
- соседи (сиблинги) – это элементы, расположенные на том же уровне вложенности (иерархии), что и рассматриваемый элемент; или другими словами — это все другие элементы, которые имеют того же родителя что и текущий рассматриваемый элемент.
Более наглядно про отношения элементов приведено на рисунке. На этом рисунке отношения рассмотрены относительно элемента выделенного синим цветом.

В CSS имеется 4 вида селекторов отношений.
Первые два из них X Y и X > Y относятся к вложенным селекторам. Они предназначены для поиска элементов в зависимости от их нахождения внутри других.
Остальные два X + Y и X ~ Y являются CSS селекторами для выбора соседних элементов.
Эти селекторы называют составными или комбинацией селекторов. Так как они на самом деле состоят из нескольких селекторов, разделённых между собой с помощью специальных символов (комбинаторов). Всего различают 4 символа: пробел, знак > (больше), знак + и ~ (тильда).
Селектор X Y (для выбора вложенных или дочерних элементов)
Селектор X Y (предок потомки) предназначен для выбора элементов Y , находящихся в X .
Другими словами, селектор X Y предназначен для выбора элементов Y , являющихся потомками элементов определяемым селектором X .
Селекторы X Y называют контекстными или вложенными.
Например, селектор дочерних элементов div p выберет все элементы p , расположенные в div .
Селектор X > Y
Селектор X > Y (родитель > дети) предназначен для выбора элементов, определяемым селектором Y непосредственно расположенных в элементе, определяемым селектором X .
По другому можно сказать, что селектор X > Y предназначен для выбора Y , у которых родителем является элемент, определяемым X .
Например, комбинация селекторов li > ul выберет все элементы ul , которые непосредственно расположены в li .
Селектор X + Y
Селектор X + Y предназначен для выбора элементов Y , каждый из которых расположен сразу же после X . Элементы определяемым селектором X и Y должны находиться на одном уровне вложенности, т.е. быть по отношению друг к другу соседями (сиблингами).
Например, комбинация селекторов input + label выберет все элементы label , которые расположены сразу же за элементом input , и являющиеся друг по отношению к другу соседями (сиблингами).
Селектор X ~ Y
Селектор X ~ Y предназначен для выбора элементов Y , которые расположены после X . При этом элементы, определяемые селектором X и Y , должны являться по отношению друг к другу соседями (сиблингами).
Например, p ~ span выберет все элементы span , расположенные после элемента p на том же уровне вложенности.
Каких селекторов нет в CSS
В CSS нет селектора для получения родительского элемента. Этот селектор может появиться в новой спецификации CSS, но в CSS3 так выбрать элемент нельзя.
