3.10. Работа с CSS
Разработчику
Аналитику
Тестировщику
Архитектору
Инженеру
Блочная модель (Box Model)
Каждый элемент на странице — это прямоугольная «коробка». Эта коробка состоит из нескольких слоёв:
МАРЖИНЫ (margin)
┌─────────────────────────────┐
│ ПАДДИНГИ (padding) │
│ ┌─────────────────────┐ │
│ │ КОНТЕНТ │ │
│ │ │ │
│ └─────────────────────┘ │
│ border │
└─────────────────────────────┘
content — содержимое. То, что внутри: текст, изображение, вложенные элементы.
margin – внешние отступы. Пространство вне границы, отделяющее элемент от других. Не имеет фона, всегда прозрачное:
div {
margin: 10px; /* Все стороны */
margin-top: 20px; /* Индивидуально */
}
margin управляет расстоянием до соседних элементов. Может "схлопываться" (collapse) между вертикальными блоками.
padding – внутренние отступы. Пространство между содержимым и границей (border). Увеличивает общую занимаемую площадь:
div {
padding: 15px;
}
padding находится внутри границы и имеет фон того же цвета, что и элемент.
border: видимая граница (входит в размер элемента). Включает:
- ширину (2px),
- стиль (solid, dashed, dotted),
- цвет (black). border входит в общую ширину и высоту элемента (если не используется box-sizing: border-box).
outline: контур вокруг элемента (не влияет на размер):
.box {
border: 2px solid black;
outline: 1px dashed red;
}
Похож на border, но не входит в размеры элемента, рисуется вокруг margin, не может быть скруглён через border-radius, обычно используется для фокуса (accessibility). Используется браузером по умолчанию при tab-навигации.
Размеры и позиционирование
width и height задают ширину и высоту содержимого (если не указано иное).
width – ширина;
height – высота:
.container {
width: 100%;
min-height: 200px;
}
Поддерживают:
- абсолютные значения: px, cm, in,
- относительные: %, em, rem, vw, vh.
Важно: реальный размер зависит от box-sizing. По умолчанию — content-box (размер без padding и border). Лучше использовать border-box:
* {
box-sizing: border-box;
}
position – позиционирование, бывает следующих типов:
- static (по умолчанию);
- relative (сдвиг относительно себя);
- absolute (относительно ближайшего positioned-родителя);
- fixed (относительно окна браузера);
- sticky (гибрид relative + fixed).
.header {
position: fixed;
top: 0;
left: 0;
width: 100%;
}
— хедер будет всегда сверху экрана при прокрутке.
Фон и цвет
background – фон, может включать цвет, изображение, положение, размер, повторение:
body {
background: url("image.jpg") no-repeat center / cover;
}
— фоновое изображение по центру, без повтора, растянуто на весь блок.
color – цвет текста. Задаёт цвет символов внутри элемента:
h1 {
color: #FF5733;
}
Форматы:
- HEX: #FF5733
- RGB: rgb(255, 87, 51)
- RGBA: rgba(255, 87, 51, 0.8) — с прозрачностью.
- Названия: red, blue (ограниченный набор).
Текст и шрифты
font – шрифт:
p {
font-family: "Arial", sans-serif;
font-size: 16px;
font-weight: bold;
}
font-family — семейство шрифтов. Список шрифтов через запятую. Браузер использует первый доступный.
font-family: "Arial", "Helvetica", sans-serif;
- "Arial" — желаемый шрифт.
- sans-serif — запасной вариант (шрифт без засечек).
font-size — размер шрифта. Единицы:
- px — фиксированный размер.
- em — относительно размера родителя.
- rem — относительно корневого (
<html>) элемента. - vw — относительно ширины окна.
font-weight — жирность. От 100 до 900 (400 = normal, 700 = bold).
text-align — выравнивание текста
- left, right, center, justify (по ширине).
text-decoration — декоративные линии
- underline — подчёркивание,
- overline — надчёркивание,
- line-through — зачёркивание.
line-height — межстрочный интервал. Задаёт высоту строки. Рекомендуется значение 1.4–1.6 для читаемости.
text – свойства текста:
.text {
text-align: center;
text-decoration: underline;
line-height: 1.5;
}
Специальные эффекты
box-shadow – тень элемента:
.card {
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
— тень смещена на 4px вниз, размытие 8px, полупрозрачная.
column-count – мультиколоночность. Разбивает текст на несколько колонок, как в газете:
.article {
column-count: 3;
column-gap: 20px;
}
Если возникло желание погрузиться в CSS, то рекомендую ознакомиться с MDN - https://developer.mozilla.org/ru/docs/Web/CSS
Чит-лист - https://cheatsheets.zip/css3