CSS - Пseudo-классы

Что такое Пseudo-класс?

Здравствуйте, будущие маги CSS! Сегодня мы окунемся в магический мир CSS pseudo-классов. Не пугайтесь замысловатого термина - я обещаю, что это не так сложно, как может показаться. На самом деле, как только вы привыкните, вы будете использовать pseudo-классы как профессионал в считанные минуты!

CSS - Pseudo Classes

Так что же такое pseudo-класс? Представьте, что у вас есть суперсила, которая позволяет вам стилизовать элементы на вашем веб-сайте в зависимости от их состояния или условия. Именно это и делают pseudo-классы! Они позволяют вам применять стили к элементам в зависимости от таких вещей, как то,hover-ит ли пользователь над ними, являются ли они первым элементом в списке, или даже на каком языке находится страница.

Синтаксис

Прежде чем мы перейдем к конкретным pseudo-классам, давайте быстро рассмотрим синтаксис. Он на самом деле довольно простой:

селектор:pseudo-класс {
свойство: значение;
}

Видите тот колон (:) после селектора? Это как раз то, что говорит вам, что вы имеете дело с pseudo-классом. Легко, правда?

Пseudo-класс Hover

Давайте начнем с одного из самых распространенных и有趣的 pseudo-классов: :hover. Этот маленький宝石ик позволяет вам изменять стиль элемента, когда пользователь наводит мышь на него. Это как магия!

<button class="my-button">Наведите курсор на меня!</button>
.my-button {
background-color: синий;
color: белый;
padding: 10px 20px;
border: none;
cursor: pointer;
}

.my-button:hover {
background-color: светло-синий;
color: черный;
}

В этом примере наша кнопка начинается с синего цвета и белого текста. Но когда вы наводите на нее курсор - пфу! - она меняется на светло-синий с черным текстом. Попробуйте и увидите, как магия происходит!

Пseudo-класс Active

Следующий pseudo-класс - :active. Этот срабатывает, когда элемент активируется пользователем, например, когда они кликают на кнопку.

<button class="my-button">Нажмите меня!</button>
.my-button {
background-color: синий;
color: белый;
padding: 10px 20px;
border: none;
cursor: pointer;
}

.my-button:active {
background-color: темный-синий;
transform: scale(0.95);
}

Теперь, когда вы нажимаете и держите кнопку, она станет темно-синей и слегка уменьшится. Это как будто кнопка говорит: "Эй, меня нажимают!"

Пseudo-класс Focus

Пseudo-класс :focus особенно полезен для улучшения доступности. Он применяется, когда элемент receives focus, что может произойти, когда пользователь кликает на поле ввода или табуляцию до него.

<input type="text" class="my-input" placeholder="Введите что-то...">
.my-input {
border: 2px solid #ccc;
padding: 5px;
}

.my-input:focus {
border-color: синий;
outline: none;
box-shadow: 0 0 5px rgba(0, 0, 255, 0.5);
}

С этим CSS, когда поле ввода-focused, оно получает синюю рамку и слабое синее свечение. Это отличный способ направить пользователей через формы!

Пseudo-класс nth Child

Теперь давайте немного усложним задачу с pseudo-классом :nth-child(). Этот позволяет вам выбирать элементы на основе их положения в группе братьев.

<ul class="my-list">
<li>Первый элемент</li>
<li>Второй элемент</li>
<li>Третий элемент</li>
<li>Четвертый элемент</li>
<li>Пятый элемент</li>
</ul>
.my-list li:nth-child(odd) {
background-color: #f2f2f2;
}

.my-list li:nth-child(3n) {
color: синий;
}

В этом примере мы стилизуем каждый нечетный элемент списка с легким серым фоном и каждый третий элемент с синим текстом. Это как будто создаем узор в вашем списке!

Пseudo-класс First-Child

Пseudo-класс :first-child выбирает первый элемент среди группы兄弟. Это здорово для предоставления особого обращения первому элементу в списке или первому абзацу в статье.

<div class="container">
<p>Я первый абзац!</p>
<p>Я просто обычный абзац.</p>
<p>Я тоже!</p>
</div>
.container p:first-child {
font-weight: bold;
color: синий;
}

Теперь первый абзац выделяется среди других. Это как будто дать VIP-пропуск вашему первому элементу!

Пseudo-класс Last-Child

Как вы, наверное, догадались, :last-child - это相反 :first-child. Он выбирает последний элемент среди группы братьев.

<ul class="my-list">
<li>Первый элемент</li>
<li>Второй элемент</li>
<li>Третий элемент</li>
<li>Последний элемент!</li>
</ul>
.my-list li:last-child {
font-style: italic;
color: зеленый;
}

С этим CSS последний элемент списка получает особое зеленое, kursivnoe оформление. Это отличный способ подвести итог!

Пseudo-класс Lang

Пseudo-класс :lang немного более специализирован. Он позволяет выбирать элементы на основе языка документа или элемента.

<p lang="en">Hello, World!</p>
<p lang="fr">Bonjour, le Monde!</p>
<p lang="es">¡Hola, Mundo!</p>
p:lang(en) {
color: синий;
}

p:lang(fr) {
color: красный;
}

p:lang(es) {
color: зеленый;
}

Этот CSS окрасит каждое приветствие в зависимости от языка. Это как будто создать многоязычный цветной код для вашего веб-сайта!

Пseudo-класс Not

Last but not least, давайте посмотрим на pseudo-класс :not(). Этот немного другой - он выбирает элементы, которые НЕ соответствуют селектору, который вы указываете.

<div class="container">
<p>Я абзац.</p>
<p class="special">Я особенный абзац!</p>
<p>Я другой абзац.</p>
</div>
.container p:not(.special) {
color: серый;
}

В этом случае все абзацы, кроме того, у которого есть класс "special", будут окрашены в серый цвет. Это как будто сказать: "Стилизовать все, кроме этой одной вещи!"

Список CSS Pseudo-классов

Существует множество других pseudo-классов в CSS. Вот таблица некоторых из них:

Pseudo-класс Описание
:hover Выбирает элемент, когда мышь наводится на него
:active Выбирает элемент, когда он активируется
:focus Выбирает элемент, когда он имеет фокус
:nth-child() Выбирает элементы на основе их положения в группе братьев
:first-child Выбирает первый элемент
:last-child Выбирает последний элемент
:lang() Выбирает элементы на основе языка
:not() Выбирает элементы, которые не соответствуют селектору
:link Выбирает непосещенные ссылки
:visited Выбирает посещенные ссылки
:checked Выбирает отмеченные элементы ввода
:disabled Выбирает отключенные элементы
:empty Выбирает элементы, у которых нет детей

И вот мы и arrived! Мы прошли через мир CSS pseudo-классов, от базовых до более продвинутых техник. Помните, ключ к maîtriser их - это практика. Так что вперед, поиграйте с этими pseudo-классами в своих проектах. Before you know it, вы будете создавать динамичные, интерактивные веб-сайты, которые respond к действиям пользователей во всех sorts of cool ways. Happy coding!

Credits: Image by storyset