Главная / CSS
Учебник для начинающих
CSS: сделай страницу своей
HTML даёт странице структуру, а CSS отвечает за внешний вид. Здесь разберёмся с цветами, отступами и расположением блоков — без прыжка в сложную вёрстку.
- Подойдёт после HTML
- 51 тем
- Примеры кода
С чего начать
Основа аккуратной вёрстки
Иди по темам по порядку — они собраны так, чтобы сразу видеть результат в браузере.
Селекторы и свойства
Как выбрать элемент и изменить его внешний вид.
02 / порядокОтступы и размеры
Margin, padding и box model на понятной схеме.
03 / раскладкаFlexbox и Grid
Два способа расположить блоки без хаоса.
04 / сеткаCSS Grid
Собираем карточки в гибкую сетку.
05 / экранАдаптивная вёрстка
Делаем интерфейс удобным на телефоне.
06 / раскладкаСвойство display
Block, inline, flex, grid и none.
07 / слоиPosition
Relative, absolute, fixed и sticky.
08 / текстШрифты
Размеры, интервалы и веб-шрифты.
09 / системаCSS-переменные
Управляем цветами и размерами централизованно.
10 / оформлениеЦвета и типографика
Собираем читаемую палитру интерфейса.
11 / состоянияПсевдоклассы
Настраиваем hover, focus и состояния полей.
12 / справочникgap
Расстояние между элементами сетки.
13 / справочникmargin
Внешние отступы и центрирование.
14 / справочникpadding
Внутренние отступы и box-sizing.
15 / справочникborder-radius
Скругление карточек, кнопок и изображений.
16 / справочникwidth
Управляем шириной элементов.
17 / справочникmax-width
Ограничиваем контейнеры и текст.
18 / справочникcolor
Цвет текста, форматы и контраст.
19 / справочникbackground
Цвет, изображение, градиент и размер фона.
20 / справочникbox-sizing
Считаем ширину элемента предсказуемо.
21 / справочникmin-height
Задаём минимальную, но гибкую высоту.
22 / справочникoverflow
Управляем содержимым за границами блока.
23 / справочникz-index
Разбираемся с наложением элементов.
24 / справочникopacity
Настраиваем прозрачность элемента.
25 / справочникbox-shadow
Добавляем тень карточкам и кнопкам.
26 / справочникtransform
Перемещаем, вращаем и масштабируем.
27 / справочникtransition
Делаем смену состояний плавной.
28 / справочникobject-fit
Вписываем изображения без искажений.
29 / справочникМедиазапросы
Меняем интерфейс под размер и возможности устройства.
30 / справочникheight
Управляем фиксированной высотой.
31 / справочникmin-width
Задаём минимальную ширину элемента.
32 / справочникline-height
Настраиваем межстрочный интервал.
33 / справочникfont-size
Задаём понятный размер текста.
34 / справочникfont-weight
Управляем насыщенностью шрифта.
35 / справочникtext-align
Выравниваем строковое содержимое.
36 / справочникtext-decoration
Оформляем подчёркивания и линии текста.
37 / справочникwhite-space
Управляем пробелами и переносами.
38 / справочникcursor
Выбираем указатель для интерактивных элементов.
39 / справочникaspect-ratio
Сохраняем пропорции блока.
100 / новая темаCSS align-items
Выравниваем элементы во Flexbox и Grid.
101 / новая темаCSS justify-content
Располагаем элементы вдоль главной оси.
102 / новая темаCSS flex-wrap
Разрешаем карточкам переходить на новую строку.
103 / новая темаCSS grid-template-columns
Задаём явные и адаптивные колонки сетки.
104 / новая темаCSS функция clamp()
Ограничиваем текучий размер минимумом и максимумом.
105 / новая темаCSS функция calc()
Смешиваем единицы и вычитаем известные размеры.
106 / новая темаCSS filter
Настраиваем яркость, контраст, размытие и тень.
107 / новая темаCSS animation и keyframes
Создаём управляемую анимацию и учитываем reduced motion.
108 / новая темаCSS pointer-events
Пропускаем события через декоративные слои.
109 / новая темаCSS visibility
Сравниваем hidden, display none и opacity.
110 / новая темаCSS list-style
Меняем тип, положение и изображение маркера.
111 / новая темаCSS inset
Задаём top, right, bottom и left одной строкой.
Практикумы
Короткие задачи по CSS
Короткие задачи на одну тему: прочитай, повтори в песочнице и проверь результат.
Длина строки, которую удобно читать
Широкий монитор делает строку длиной в полтора экрана. Такую строку теряют на обратном пути.
практикумКарточки сами считают колонки
Одинаковые карточки не обязаны ждать отдельного правила на каждый размер экрана.
практикумКороткая проверка макета перед кодом поведения
Перед JavaScript макет стоит прогнать глазами. Потом скрипт будет менять уже устойчивую страницу.
практикумКороткое появление блока
Блок, который только что открылся, легче заметить, если он появляется, а не оказывается на месте мгновенно.
практикумМеньше движения для тех, кто просил
Часть людей включает в системе настройку «уменьшить движение». Сайт может это уважать.
практикумОдинаковый ритм между секциями
Селекторы, отступы и сетка уже собраны. Дальше глаз должен идти по странице ровным шагом.
практикумПодвал прижат к низу короткой страницы
Если текста мало, подвал оказывается сразу под абзацем, а ниже пустой экран.
практикумПоле с ошибкой видно до отправки
Браузер умеет пометить пустое обязательное поле. Цвета без слов недостаточно.
практикумРамка фокуса для клавиатуры
Человек на Tab должен видеть, где он находится. Рамка у каждого клика мышкой для этого не нужна.
практикумСтраница, которую отправляют на бумагу
Меню, фоны и кнопки на бумаге не нужны. Текст, заголовок и ссылка — нужны.
практикумЧетыре состояния ссылки
Обычная, посещённая, наведённая и нажатая ссылка — это четыре разных момента.
практикумШапка, которая остаётся при прокрутке
Длинный урок увозит меню вверх. Липкая шапка оставляет ссылки под рукой.
Все материалы
Все материалы раздела CSS
Учебные материалы
- Каскад CSS
- Наследование в CSS
- Единицы CSS
- Кнопки в CSS
- Карточки в CSS
- Меню в одну строку
- Внешний вид формы
- Таблицы стилями
- Тёмная тема
- Плавные переходы
- Сетка страницы
- Сборка макета
Справочник
- CSS border
- CSS outline
- CSS font-family
- CSS letter-spacing
- CSS text-transform
- CSS vertical-align
- CSS place-items
- CSS align-content
- CSS flex-direction
- CSS flex-grow
- CSS order
- CSS object-position
- CSS background-size
- CSS accent-color
- CSS user-select
- CSS column-count
- CSS text-overflow
- CSS border-collapse
- CSS align-self
- CSS grid-column
Новые темы
Практика: карточка статьи
Сверстай небольшую карточку: заголовок, текст, картинку и кнопку. Попробуй сделать её удобной и на телефоне.
Подробнее
CSS не меняет смысл, он меняет представление
HTML уже должен отвечать, что на странице заголовок, а что кнопка. CSS решает, как это выглядит: цвет, расстояние, колонки, поведение на узком экране. Если удалить стили, текст урока или карточки всё равно должен читаться сверху вниз.
Стили лучше держать в отдельном файле и подключать его из head. Тогда одна правка цвета меняет все страницы, которые этим файлом пользуются. В атрибут style имеет смысл лезть только для разовой проверки в браузере.
<!-- в HTML, внутри head -->
<link rel="stylesheet" href="/styles.css">
/* styles.css */
body {
margin: 0;
font-family: Georgia, serif;
line-height: 1.5;
color: #1d1a17;
background: #f7f4ef;
}Откуда берётся итоговый вид элемента
У каждого элемента уже есть стиль браузера: у ссылки подчёркивание, у заголовка крупный размер, у тела страницы небольшой отступ. Твои правила либо дополняют его, либо переопределяют. Если свойство не меняется, в инструментах разработчика видно, какое правило победило и какое зачёркнуто.
Класс описывает роль в макете: card, price, is-open. Не называй класс red-text, если завтра этот текст может стать тёмным. Имя должно переживать смену цвета.
Порядок, в котором раздел не разваливается
- Сначала селекторы, иначе непонятно, к чему применяются правила.
- Потом отступы и блочная модель: без них сетка спорит сама с собой.
- Дальше flexbox или grid для раскладки.
- В конце адаптивность: одна и та же страница на ширине телефона и ноутбука.