📝 Html Css

CSS-селекторы

P
Автор
Pyland
📅
Опубликовано
30.06.2026
⏱️
Время чтения
2 мин
👁️
Просмотров
79
🌱
Уровень
Начальный
🐦 💼 ✈️

Селектор — это первая часть CSS-правила. Он говорит браузеру: «применить эти стили вот к этим элементам». Знание селекторов — основа CSS.

Селектор по тегу

Применяется ко всем элементам этого тега.

h1 {
  font-size: 2rem;
  color: #111827;
}

p {
  line-height: 1.6;
  color: #374151;
}

a {
  color: #2563eb;
  text-decoration: none;
}

Осторожно: правила для p применятся ко всем параграфам на странице.


Селектор по классу (.)

Самый используемый. Класс назначается через атрибут class.

<article class="post-card">
  <h2 class="post-title">FastAPI: быстрый старт</h2>
  <p class="post-meta">12 июня 2025</p>
</article>
.post-card {
  padding: 24px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
}

.post-title {
  font-size: 1.25rem;
  margin-bottom: 4px;
}

.post-meta {
  color: #6b7280;
  font-size: 0.875rem;
}

Один элемент может иметь несколько классов:

<p class="post-meta tag-python">Python · 5 мин</p>
.tag-python {
  color: #16a34a;
}

Селектор по ID (#)

ID уникален — на странице должен быть только один элемент с данным ID.

<header id="site-header">...</header>
#site-header {
  background: #1e293b;
  padding: 16px 24px;
}

В реальных проектах ID для стилизации используют редко — классы гибче. ID обычно нужны для якорей (<a href="#comments">) и JavaScript.


Комбинаторы

Потомок (пробел)

/* Любой <a> внутри .post-card — на любом уровне вложенности */
.post-card a {
  color: #2563eb;
}

Прямой потомок (>)

/* Только <li> — прямые дети .nav-list */
.nav-list > li {
  display: inline-block;
}

Соседний элемент (+)

/* <p> сразу после <h2> */
h2 + p {
  margin-top: 4px;
  color: #6b7280;
}

Все следующие (~)

/* Все <p> после <h2> на том же уровне */
h2 ~ p {
  text-indent: 1em;
}

Атрибутный селектор ([attr])

/* Все ссылки с target="_blank" */
a[target="_blank"] {
  padding-right: 16px;
}

/* Все input типа text */
input[type="text"] {
  border: 1px solid #d1d5db;
  border-radius: 4px;
  padding: 8px 12px;
}

/* href содержит подстроку */
a[href*="github.com"] {
  color: #6b7280;
}

Группировка: несколько селекторов сразу

/* Применить одни стили к h1, h2, h3 */
h1, h2, h3 {
  font-weight: 700;
  color: #111827;
  line-height: 1.25;
}

Специфичность: кто победит

Если несколько правил применяются к одному элементу, побеждает более специфичное.

Селектор Специфичность
Тег (h1) 0,0,1
Класс (.card) 0,1,0
ID (#header) 1,0,0
Инлайн style="" 1,0,0,0

Специфичности складываются:

.post-card h2 { color: red; }    /* 0,1,1 */
.post-title   { color: blue; }   /* 0,1,0 */

Здесь победит .post-card h2 — его специфичность выше. Подробнее — в статье про каскад.


DevBlog: навигация

<nav class="site-nav">
  <a href="/" class="nav-link nav-link--active">Главная</a>
  <a href="/articles/" class="nav-link">Статьи</a>
  <a href="/about/" class="nav-link">Обо мне</a>
</nav>
.site-nav {
  display: flex;
  gap: 24px;
}

.nav-link {
  color: #374151;
  text-decoration: none;
  font-weight: 500;
}

.nav-link:hover {
  color: #2563eb;
}

.nav-link--active {
  color: #2563eb;
  border-bottom: 2px solid #2563eb;
  padding-bottom: 2px;
}

Итог

Тип Синтаксис Пример
Тег tag p {}
Класс .class .post-card {}
ID #id #header {}
Потомок A B .card a {}
Прямой потомок A > B ul > li {}
Сосед A + B h2 + p {}
Атрибут [attr] input[type="text"] {}

Ваша реакция на статью

💬 Комментарии (0)

🔐 Войдите в систему, чтобы оставить комментарий
🚪 Войти
💭

Комментариев пока нет

Станьте первым, кто поделится мнением об этой статье!

🔗 Похожие

Похожие статьи

Продолжите изучение с этими материалами

📝

Django: Теги шаблонов

Теги шаблонов — это логика внутри HTML. В отличие от {{ переменная }}, которая только...

📅 30.06.2026 👁️ 85
📝

Цвета и шрифты в CSS

Первое, что видит читатель DevBlog — текст. Правильно подобранные цвета и шрифты делают блог читабельным...

📅 30.06.2026 👁️ 75
📝

Основы Bootstrap 5

Bootstrap — самый популярный CSS-фреймворк в мире. Он даёт готовые компоненты и систему классов, которые...

📅 30.06.2026 👁️ 72

Понравилась статья?

Подпишитесь на наши обновления и получайте новые статьи первыми. Развивайтесь вместе с PyLand!