Всем привет. Сегодня мы с вами поговорим о весьма тривиальной теме в CSS, как подклассы. Но это исключительно в моем понимании. Их называют селекторами, но мне это не нравится. Подклассы позволяют вам наследовать стили от родительского класса. В свою очередь это позволяет вам иметь один общий класс, используемый на нескольких страницах, и подкласс, который будет переписывать некоторые стили родительского класса и иметь еще какие-то свои. Давайте начнем.
CSS — Подклассы или селекторы
HTML — Часть
Фактически подклассы или селекторы в CSS достаточно просты для понимания. Они позволяют наследовать свойства родительского компонента и иметь свои собственные, которые будут использовать или переписывать значения от родителя. Соответственно это пригодится в случаях, когда у вас два компонента имеют одно описание стилей. Давайте разберем подобную ситуацию на примере.
Небольшое лирическое отступление: мне не нравится название селекторы, потому что для понимания селекторы мозгом воспринимаются как нечто, которое выбирается, без связки с каким-то стилями. Называть селекторы подклассами проще. Потому что подкласс обуславливает связь с родительским элементом. Но правильно называть подобные элементы СЕЛЕКТОРАМИ.
Например у вас есть подобный div:
1 2 3 |
<div className="bodytext"> Какой-то текст про то, се, третье, пятое и десятое... </div> |
И есть div, который предназначен для информации с примечанием, но тоже относящийся к классу «bodytext»:
1 2 3 |
<div className="bodytext"> Примечание: ... </div> |
Вас до нынешнего момента устраивало оформление, но вдруг вы поняли, что пришло время перемен. При этом вы не хотите писать отдельный класс, вас устроил бы вариант, в котором содержатся все стили текущего класса bodytext, но именно для блока с примечаниями, хотите дописать свои стили. Тогда все, что вам необходимо сделать, это дописать в строке с классом селектор для конкретного блока:
1 2 3 |
<div className="bodytext note"> Примечание: ... </div> |
Теперь вы сможете пользоваться селекторами или подклассами в CSS для добавления или переписывания стилей под этот блок. Давайте взглянем на примеры:
CSS — Часть
Наш текущий класс содержит стандартный цвет текста, размер 12 пикселей, рамочку вокруг текста, фон за текстом и отступы от рамок примерно по 5 пикселей с каждой стороны, и фиксированную ширину блока с текстом:
1 2 3 4 5 6 7 |
.bodytext { font-size: 18px; background-color: lightgrey; padding: 5px; border: 1px solid #ddd; max-width: 300px; } |
Выглядит это так:
Но мы хотим, чтобы примечание, было например зеленым! Таким образом мы например под основным текстом укажем какую-то подсказку. Для этого в наш css файл добавляем строки, которые будут переписывать и дорисовывать стили класса bodytext и при этом обладать своими собственными:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
.bodytext { font-size: 18px; background-color: lightgrey; padding: 5px; border: 1px solid #ddd; max-width: 300px; } .bodytext.note { font-size: 14px; background-color: limegreen; padding: 10px; border: 5px solid #ddd; max-width: 150px; } |
В свою очередь блоки преобразятся в такой вид:
Очень полезная информация, спасибо