Кратко
СкопированоСелектор по классу находит элемент на странице по значению атрибута class.
Пример
Скопировано
<h2 class="article-title">Нобелевская премия по физике 2020 года</h2><h3 class="article-title">Шнобелевская премия 2020</h3>
<h2 class="article-title">Нобелевская премия по физике 2020 года</h2>
<h3 class="article-title">Шнобелевская премия 2020</h3>
Селектор ниже найдёт все элементы, значение атрибута class которых равно article.
.article-title { margin-bottom: 1.6em;}
.article-title {
margin-bottom: 1.6em;
}
Как пишется
СкопированоСамое важное — поставить точку перед значением атрибута class того элемента, к которому вы хотите применить стили. Селектор без точки в начале — селектор по тегу.
Вот так сработает:
.class-value { color: red;}
.class-value {
color: red;
}
А вот так не сработает:
class-value { color: red;}
class-value {
color: red;
}
Стиль применится ко всем элементам с атрибутом class.
.article-title { margin-bottom: 1.6em;}
.article-title {
margin-bottom: 1.6em;
}
Стиль применится ко всем заголовкам <h2> с атрибутом class.
h2.article-title { margin-bottom: 1.6em;}
h2.article-title {
margin-bottom: 1.6em;
}
Стиль применится ко всем заголовкам <h2>, атрибут class которых содержит несколько значений, разделённых пробелом, и среди этих значений есть "article и "title.
h2.article-title.title-primary { text-decoration: underline;}
h2.article-title.title-primary {
text-decoration: underline;
}
Подсказки
СкопированоСелектор по классу довольно прост в понимании, а особенности атрибута class дают большую гибкость в стилизации. Всегда можно придумать уникальное значение для атрибута class и по этому значению точечно применить нужные стили. Но также можно задать элементу любое количество классов, просто перечислив их через пробел. Благодаря этому можно переиспользовать некоторые стили на разных элементах.
<blockquote class="color" cite="«Тени в раю»">Зима пробуждает аппетит...</blockquote><blockquote class="title" cite="«Тени в раю»">Зима пробуждает аппетит...</blockquote><blockquote class="title color" cite="«Тени в раю»">Зима пробуждает аппетит...</blockquote>
<blockquote class="color" cite="«Тени в раю»">Зима пробуждает аппетит...</blockquote>
<blockquote class="title" cite="«Тени в раю»">Зима пробуждает аппетит...</blockquote>
<blockquote class="title color" cite="«Тени в раю»">Зима пробуждает аппетит...</blockquote>
blockquote { position: relative; background-color: white; color: #123E66;}
blockquote {
position: relative;
background-color: white;
color: #123E66;
}
Если цитате добавить класс .color, то фоновый цвет сменится на голубой:
.color { background-color: blue; color: black;}
.color {
background-color: blue;
color: black;
}
Если элементу добавить класс .title, то перед текстом цитаты будет декоративная кавычка, а после — название произведения:
.title::before { content: "“"; position: absolute;}.title::after { content: attr(cite); display: block; font-style: italic;}
.title::before {
content: "“";
position: absolute;
}
.title::after {
content: attr(cite);
display: block;
font-style: italic;
}
На практике
Скопированосоветует
Скопировано🛠 Селектор по классу является основным селектором для стилизации любой веб-страницы. Благодаря тому, что одному элементу можно задать несколько классов, а нескольким элементам — один и тот же класс, мы получаем очень гибкий способ стилизации страниц любой сложности.
Например, мы можем уточнить один селектор по классу другим:
<form> <label class="form-label invalid" for="input">Ваш email</label> <input class="form-input invalid" type="email" id="input"></form>
<form>
<label class="form-label invalid" for="input">Ваш email</label>
<input class="form-input invalid" type="email" id="input">
</form>
.form-label.invalid { color: pink;}.form-input.invalid { border-color: pink; background-color: #623D45;}
.form-label.invalid {
color: pink;
}
.form-input.invalid {
border-color: pink;
background-color: #623D45;
}
А можем добавить класс родительскому элементу, чуть изменить селекторы и получить тот же результат:
<form class="invalid"> <label class="form-label" for="input">Ваш email</label> <input class="form-input" type="email" id="input"></form>
<form class="invalid">
<label class="form-label" for="input">Ваш email</label>
<input class="form-input" type="email" id="input">
</form>
.invalid .form-label { color: pink;}.invalid .form-input { border-color: pink; background-color: #623D45;}
.invalid .form-label {
color: pink;
}
.invalid .form-input {
border-color: pink;
background-color: #623D45;
}
Самое сложное в вёрстке — выбрать способ решения задачи, потому что любая задача решается двумя и более способами 🙂