🔒 Ты не вошёл(вошла) в аккаунт — прогресс, работы и результаты теста не сохраняются. Что недоступно?
✅ Без входа можно
- читать все занятия обоих курсов, смотреть слайды и шпаргалку;
- пробовать код в редакторе и песочнице.
⛔ Без входа нельзя
- сохранять работы — черновик живёт только в этом браузере и пропадёт при очистке истории, в режиме инкогнито или на другом устройстве;
- отмечать пройденные занятия и видеть свой прогресс;
- выбрать тему итогового проекта и отмечать чек-лист;
- отправить итоговый тест и сохранить результат.
HTML и CSS с нуля: создаём свои сайты Модуль 2. CSS и оформление
Классы и id
Сегодня мы научимся красить не все абзацы сразу, а только нужные блоки — с помощью классов и id.
Изучаем: .class, #id, каскад, наследование
Результат: Стилизуем разные блоки
👀 Сегодня сделаем вот такое
Показать код примера
<div id="hero">Добро пожаловать!</div>
<p class="note">Не забудь сделать домашнее задание.</p>
<p class="note important">Завтра — контрольная!</p>
<p class="note">В пятницу — выставка работ.</p>
body {
font-family: sans-serif;
color: #2d3436;
}
#hero {
background: #6c5ce7;
color: white;
font-size: 28px;
padding: 24px;
text-align: center;
}
.note {
background: #ffeaa7;
padding: 12px;
margin: 10px 0;
}
.important {
border-left: 6px solid #d63031;
font-weight: bold;
}
💡 Объяснение
Проблема: как покрасить не все абзацы?
Селектор тега p красит все абзацы страницы. А что если нужно выделить только один — например, предупреждение? Или сделать три одинаковые карточки, не трогая остальные блоки? Для этого у элементов есть «имена» — классы и id.
Класс: class и точка
Класс похож на форму футбольной команды: все игроки одной команды одеты одинаково, но на стадионе есть и другие люди.
<p class="note">Не забудь домашнее задание</p>
<p>Обычный абзац</p>
<p class="note">Завтра выставка работ</p>
.note {
background: #ffeaa7;
padding: 12px;
}
- В HTML пишем атрибут
class="note"— без точки. - В CSS пишем селектор
.note— с точкой. - Один класс можно дать любому количеству элементов, даже разных тегов.
- У одного элемента может быть несколько классов через пробел:
class="note important". Элемент получит стили обоих классов.
id: уникальное имя и решётка
id похож на номер паспорта: он есть только у одного элемента на странице.
<div id="hero">Добро пожаловать!</div>
#hero {
background: #6c5ce7;
color: white;
}
- В CSS — селектор с решёткой:
#hero. - id на странице должен быть уникальным.
- id мы уже использовали для ссылок-якорей
href="#hero".
Совет: для оформления используй классы, а id оставь для якорей и форм (связки label + input). Классы гибче: их можно переиспользовать.
Как называть классы
- Латинские буквы, цифры, дефис; начинается с буквы:
news-card,btn-big. - Без пробелов (пробел разделяет разные классы!).
- Имя описывает что это, а не как выглядит:
warningлучше, чемred-text— вдруг потом предупреждения станут оранжевыми? - Регистр важен:
Cardиcard— разные классы. Пиши маленькими буквами.
Комбинированные селекторы
h1, h2, .title— через запятую: одинаковые стили для нескольких селекторов..card p— через пробел: абзацы внутри элементов с классом card (потомки).p.note— без пробела: только абзацы, у которых есть класс note.*— все элементы.
Каскад: кто победит?
Иногда к одному элементу подходят несколько правил с разными значениями. Кто победит, решает каскад — это то самое слово «Cascading» в названии CSS. Правила простые:
- Сила селектора (специфичность):
style=""сильнее id, id сильнее класса, класс сильнее тега. Можно представить как карты: тег — шестёрка, класс — дама, id — туз. - Если сила одинаковая — побеждает правило, которое написано ниже в CSS.
p { color: black; } /* тег */
.note { color: green; } /* класс сильнее */
p { color: red; } /* ниже, но тег слабее класса */
Абзац с классом note будет зелёным, а обычные абзацы — красными.
Если стиль «не работает», открой F12 → выбери элемент → вкладка «Styles». Проигравшие свойства там зачёркнуты, и видно, какое правило их перебило.
Наследование
Некоторые свойства передаются от родителя детям, как фамилия в семье. Если задать body { font-family: sans-serif; color: #333; }, шрифт и цвет получат все элементы внутри body.
- Наследуются в основном свойства текста:
color,font-family,font-size,line-height,text-align. - Не наследуются свойства коробки:
border,padding,margin,background,width. Иначе рамка у body появилась бы у каждого абзаца!
Благодаря наследованию общий шрифт и цвет текста пишут один раз — для body.
Частые ошибки
- Точка в HTML:
class=".note". - Забыли точку в CSS:
note { }— браузер ищет тег <note>. - Два одинаковых id на странице.
- Стиль класса «не работает», потому что его перебивает id или style.
Проверь себя
- Чем класс отличается от id?
- Как дать элементу два класса?
- Какого цвета будет
<p id="a" class="b">, если#a { color: red }, а.b { color: blue }?
⌨️ Практика
- Сделай три блока-заметки с классом note: жёлтый фон и отступы.
- Добавь одному из них второй класс important с красной рамкой.
- Задай id="hero" верхнему баннеру и оформи его.
- Проверь наследование: поменяй цвет у body и посмотри на абзацы.
🧪 Редактор
🪞 Рефлексия
- Что нового я сегодня узнал(а)?
- Что получилось лучше всего?
- Где было трудно и что поможет в следующий раз?
🔒 Отметить занятие пройденным можно только после входа. Без аккаунта сайт не запомнит, до какого занятия ты дошёл(дошла). Регистрация · Вход
💬 Вопросы по занятию
Не получается — спроси здесь. Другие ученики и преподаватель видят вопросы и отвечают. Пиши вежливо: грубые сообщения сайт не примет.
🔒 Писать могут только зарегистрированные. Читать обсуждение можно и без аккаунта. Регистрация · Вход
Вопросов пока нет. Задай первый — это помогает и тебе, и другим.