Свойства CSS3
Сгруппированный справочник по основным свойствам CSS3: Animation, Flexbox, Grid, Transforms и другие модули со ссылками на подробные главы.
CSS3 — это последняя эволюция языка каскадных таблиц стилей. Вместо единого монолитного выпуска CSS3 разбит на независимые модули — Animations, Flexbox, CSS Grid, Backgrounds and Borders, Transforms, Filters и другие, — которые браузеры могут реализовывать и выпускать по отдельности. Каждый модуль добавил новые свойства поверх исходного набора CSS2, предоставив скруглённые углы, градиенты, тени, анимации, гибкие и сеточные макеты и визуальные фильтры без использования изображений или JavaScript.
Эта страница является кратким справочным указателем свойств, введённых или значительно расширенных в CSS3, сгруппированных по модулям. Каждая строка содержит ссылку на полную главу с синтаксисом, значениями и живыми примерами.
Если вы только начинаете знакомство с языком, прочитайте главы CSS Introduction и CSS Syntax, прежде чем переходить к отдельным свойствам.
Как пользоваться этим справочником
- Ищите свойство по группе. Заголовки ниже соответствуют модулям CSS3: если вам нужно свойство макета, смотрите в разделе Flexible Box Layout или Grid Layout; для движения — в разделе Animation или Transitions; для визуальных эффектов — в разделе Filter Effects или Transform Properties.
- Переходите по ссылкам за подробностями. Каждое свойство ведёт в свою главу с полным списком значений, значениями по умолчанию и интерактивными демонстрациями.
- Учитывайте поддержку браузеров. Модули CSS3 достигли стабильной, беспрефиксной поддержки в разное время. Большинство свойств ниже безопасно работают во всех современных браузерах, однако всегда проверяйте поддержку более новых добавлений (например, некоторых свойств
column-*), прежде чем полагаться на них в продакшне.
Замечание о вендорных префиксах
Пока модули CSS3 ещё были экспериментальными, браузеры выпускали свойства с вендорными префиксами, такими как -webkit-, -moz-, -ms- и -o-. Вы можете встретить их в старых кодовых базах:
/* Older code — prefixes were needed during the experimental phase */
.box {
-webkit-transform: rotate(15deg);
-moz-transform: rotate(15deg);
transform: rotate(15deg); /* Always list the unprefixed property last */
}Для перечисленных ниже свойств сегодня почти никогда не требуются префиксы — используйте стандартное беспрефиксное имя. Прибегайте к префиксам только тогда, когда нужно поддерживать устаревший браузер, и всегда указывайте стандартное свойство последним, чтобы оно имело приоритет.
CSS3 vs. CSS2 — что изменилось?
CSS2 охватывал базовую блочную модель, цвета, шрифты и позиционирование. CSS3 расширил этот фундамент следующими возможностями, которые ранее отсутствовали или были очень ограничены:
- Скруглённые углы и рамки из изображений —
border-radius,border-image - Тени —
box-shadow,text-shadow - Градиенты и множественные фоны —
background-size,background-clip - Гибкие и сеточные макеты — Flexbox (
flex,align-items, …), CSS Grid (grid,grid-template-columns, …) - Двумерные и трёхмерные трансформации —
transform,perspective - Плавные переходы между состояниями —
transition - Анимации на основе ключевых кадров —
animation,@keyframes - Многоколоночный текст —
column-count,column-gap - Визуальные фильтры —
filter(blur, brightness, contrast, …) - Настраиваемая прозрачность —
opacity
Список свойств CSS3
Свойства анимации
Анимации на основе ключевых кадров позволяют описывать, как элемент переходит через серию стилевых снимков. Правило @keyframes определяет снимки, а свойства animation-* применяют и управляют ими на элементе.
/* Minimal animation example */
@keyframes slide-in {
from { transform: translateX(-100%); opacity: 0; }
to { transform: translateX(0); opacity: 1; }
}
.banner {
animation: slide-in 0.4s ease-out both;
}| Свойство | Описание |
|---|---|
| animation | Сокращённое свойство, задающее все параметры анимации в одном объявлении. |
| animation-delay | Задаёт момент начала анимации (положительное значение = задержка; отрицательное = старт с середины цикла). |
| animation-direction | Управляет направлением воспроизведения: normal, reverse, alternate или alternate-reverse. |
| animation-duration | Определяет длительность одного цикла анимации (например, 0.4s, 500ms). |
| animation-fill-mode | Задаёт стиль элемента до начала и/или после окончания анимации (forwards, backwards, both). |
| animation-iteration-count | Количество повторений анимации — число или infinite. |
| animation-name | Указывает имя применяемого правила @keyframes. |
| animation-play-state | Приостанавливает (paused) или возобновляет (running) анимацию — полезно для кнопок переключения. |
| animation-timing-function | Кривая плавности для каждого цикла: ease, linear, ease-in-out, cubic-bezier(…), steps(…). |
| @keyframes (at-rule) | Определяет промежуточные стилевые снимки (ключевые кадры), через которые проходит анимация. |
Свойства фона
CSS3 расширил возможности фонов: добавил управление размером, областью отсечения и возможность накладывать несколько изображений на один элемент.
/* Responsive hero with background-size */
.hero {
background-image: url('/img/hero.jpg');
background-size: cover; /* fills the box; crop as needed */
background-position: center;
background-clip: border-box; /* default; image reaches border edge */
}| Свойство | Описание |
|---|---|
| background-clip | Управляет областью распространения фона — border-box, padding-box или content-box. |
| background-origin | Задаёт начало отсчёта для background-position — border-box, padding-box или content-box. |
| background-size | Задаёт размер фонового изображения: длина, auto, cover (заполнение с возможным обрезанием) или contain (полное размещение). |
Свойства рамок
CSS3 добавил скруглённые углы и рамки из изображений — возможности, которые ранее требовали трюков с картинками.
/* Rounded button */
.btn {
border-radius: 6px;
border: 2px solid steelblue;
}
/* Pill shape */
.badge {
border-radius: 999px;
}| Свойство | Описание |
|---|---|
| border-bottom-left-radius | Скругляет нижний левый угол. Принимает один радиус (окружность) или два (эллипс). |
| border-bottom-right-radius | Скругляет нижний правый угол. |
| border-image | Использует изображение в качестве рамки, разделяя его на девять областей. |
| border-image-outset | Насколько рамка из изображения выходит за пределы блока рамки. |
| border-image-repeat | Способ повтора краёв рамки из изображения: stretched, repeated или rounded. |
| border-image-slice | Делит исходное изображение на девять частей (четыре угла, четыре края, центр). |
| border-image-source | URL изображения или градиент, используемый в качестве рамки. |
| border-image-width | Ширина частей рамки из изображения (может отличаться от CSS-свойства border-width). |
| border-radius | Сокращённое свойство для всех четырёх радиусов углов. |
| border-top-left-radius | Скругляет верхний левый угол. |
| border-top-right-radius | Скругляет верхний правый угол. |
Цвет и прозрачность
| Свойство | Описание |
|---|---|
| opacity | Задаёт прозрачность всего элемента (и его потомков) от 0 (невидимый) до 1 (полностью непрозрачный). Для прозрачности отдельных каналов используйте rgba() или hsla() в значениях color / background-color. |
Фильтры
Свойство filter применяет графические эффекты (размытие, яркость, контраст, тень и т. д.) непосредственно в CSS — без редактора изображений.
.card:hover img {
filter: brightness(1.1) saturate(1.2);
transition: filter 0.2s ease;
}
.modal-backdrop {
filter: blur(4px);
}| Свойство | Описание |
|---|---|
| filter | Применяет одну или несколько функций фильтра: blur(), brightness(), contrast(), drop-shadow(), grayscale(), hue-rotate(), invert(), opacity(), saturate(), sepia() и url() (SVG-фильтр). |
Flexible Box Layout
Flexbox — одномерная модель макета: она распределяет элементы вдоль одной оси (строка или столбец) и автоматически управляет выравниванием, отступами и переносом.
/* Classic centered card */
.card-grid {
display: flex;
flex-wrap: wrap;
gap: 1rem;
justify-content: center;
align-items: stretch;
}
.card {
flex: 1 1 300px; /* grow | shrink | basis */
}Подробное руководство смотрите в главе The Ultimate Guide to Flexbox.
| Свойство | Описание |
|---|---|
| align-content | Выравнивает строки flex-контейнера по поперечной оси при наличии свободного пространства (flex-start, flex-end, center, space-between, space-around, stretch). |
| align-items | Выравнивание по умолчанию для всех flex-элементов контейнера по поперечной оси. |
| align-self | Переопределяет align-items для отдельного flex-элемента. |
| flex | Сокращение для flex-grow, flex-shrink и flex-basis. |
| flex-basis | Начальный размер flex-элемента до распределения свободного пространства. |
| flex-direction | Направление главной оси: row, row-reverse, column или column-reverse. |
| flex-flow | Сокращение для flex-direction и flex-wrap. |
| flex-grow | Насколько flex-элемент растёт относительно соседей при наличии свободного пространства. |
| flex-shrink | Насколько flex-элемент сжимается относительно соседей при нехватке пространства. |
| flex-wrap | Переносятся ли flex-элементы на несколько строк (nowrap, wrap, wrap-reverse). |
| justify-content | Выравнивает элементы по главной оси (flex-start, flex-end, center, space-between, space-around, space-evenly). |
| justify-items | Выравнивание по умолчанию для всех grid-элементов по строчной оси (используется также в CSS Grid). |
| order | Изменяет визуальный порядок flex- или grid-элемента без изменения порядка в DOM. |
Свойства шрифтов
| Свойство | Описание |
|---|---|
| font-size-adjust | Сохраняет видимый размер текста при недоступности первого шрифта, подбирая размер резервного шрифта по соотношению высоты x. |
| font-stretch | Выбирает суженное или расширенное начертание семейства шрифтов (например, condensed, expanded, ultra-condensed). |
CSS Grid
CSS Grid — двумерная система компоновки: она размещает элементы в строки и столбцы одновременно, что делает её идеальной для макетов страниц и сложных сеток компонентов.
/* Three-column responsive grid */
.layout {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: 1.5rem;
}
/* Named template areas */
.page {
display: grid;
grid-template-areas:
"header header"
"sidebar main"
"footer footer";
grid-template-columns: 200px 1fr;
grid-template-rows: auto 1fr auto;
}| Свойство | Описание |
|---|---|
| grid | Сокращение для всех свойств grid-контейнера. |
| grid-area | Назначает grid-элемент именованной области или задаёт его позицию по строке/столбцу в виде сокращения. |
| grid-auto-columns | Задаёт размер столбца для неявно создаваемых треков (когда элементы выходят за пределы явной сетки). |
| grid-auto-flow | Управляет заполнением сетки автоматически размещаемыми элементами (row, column, dense). |
| grid-auto-rows | Задаёт размер строки для неявно создаваемых треков. |
| grid-column | Сокращение для grid-column-start и grid-column-end. |
| grid-column-end | Конечная позиция элемента по оси столбцов (номер линии, span или имя). |
| grid-column-gap | Промежуток между столбцами (заменён свойством column-gap в современном CSS). |
| grid-column-start | Начальная позиция элемента по оси столбцов. |
| grid-gap | Сокращение для row-gap и column-gap (устаревшее название; предпочтительно использовать gap). |
| grid-row | Сокращение для grid-row-start и grid-row-end. |
| grid-row-end | Конечная позиция элемента по оси строк. |
| grid-row-gap | Промежуток между строками (заменён свойством row-gap в современном CSS). |
| grid-row-start | Начальная позиция элемента по оси строк. |
| grid-template | Сокращение для grid-template-rows, grid-template-columns и grid-template-areas. |
| grid-template-areas | Определяет именованные области шаблона с помощью строкового ASCII-синтаксиса. |
| grid-template-columns | Задаёт количество и размер явных столбцов (длины, проценты, единицы fr, repeat(), minmax()). |
| grid-template-rows | Задаёт количество и размер явных строк. |
Свойства многоколоночного макета
Многоколоночный макет автоматически распределяет содержимое по заданному количеству или ширине столбцов — похоже на газетную вёрстку.
/* Two-column article body */
.article-body {
columns: 2 400px; /* shorthand: column-count column-width */
column-gap: 2rem;
column-rule: 1px solid #ddd;
}
h2 {
column-span: all; /* heading breaks out of columns */
}| Свойство | Описание |
|---|---|
| column-count | Количество столбцов, на которые делится содержимое. |
| column-fill | Выравниваются ли столбцы по высоте (balance) или заполняются последовательно (auto). |
| column-gap | Промежуток между столбцами (используется также в Flexbox и CSS Grid). |
| column-rule | Сокращение для разделительной линии между столбцами (стиль, ширина, цвет). |
| column-rule-color | Цвет разделительной линии между столбцами. |
| column-rule-style | Стиль линии разделителя (solid, dashed, dotted и т. д.). |
| column-rule-width | Толщина разделительной линии между столбцами. |
| column-span | Занимает ли элемент один столбец (none) или все столбцы (all). |
| column-width | Оптимальная ширина столбца; браузер создаёт столько столбцов, сколько помещается. |
| columns | Сокращение для column-count и column-width. |
Свойства контура
| Свойство | Описание |
|---|---|
| outline-offset | Смещает контур от края рамки элемента (положительное значение = наружу; отрицательное = внутрь). В отличие от отступов, не влияет на макет. |
Свойства текста
CSS3 добавил управление переполнением текста, переносами, тенями и тонкую настройку стиля декоративных линий.
/* Truncate long titles with ellipsis */
.card-title {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
/* Subtle heading shadow */
h1 {
text-shadow: 1px 2px 4px rgba(0, 0, 0, 0.25);
}| Свойство | Описание |
|---|---|
| tab-size | Ширина символа табуляции в блоках <pre> и кода (число пробелов или длина). |
| text-align-last | Выравнивание последней (или единственной) строки в блоке выровненного по ширине текста. |
| text-decoration-color | Цвет подчёркивания, надчёркивания или перечёркивания. |
| text-decoration-line | Какие декоративные линии отображаются: underline, overline, line-through или none. |
| text-decoration-style | Стиль декоративной линии: solid, double, dotted, dashed или wavy. |
| text-justify | Метод выравнивания при активном text-align: justify (auto, inter-word, inter-character). |
| text-overflow | Обозначение переполнения строчного текста: clip (обрезать) или ellipsis (показать …). Требует overflow: hidden и white-space: nowrap. |
| text-shadow | Добавляет одну или несколько теней к тексту. Синтаксис: offset-x offset-y blur-radius color. |
| word-break | Место переноса строки внутри слов: normal, break-all или keep-all. |
| word-wrap | Разрешает ли браузер разбивать неразрывное слово для предотвращения переполнения (normal или break-word). Стандартизировано также как overflow-wrap. |
Свойства трансформаций
Трансформации перемещают, поворачивают, масштабируют или наклоняют элементы в двумерном или трёхмерном пространстве, не влияя на поток документа.
/* 2D card flip on hover */
.card {
perspective: 600px;
transform-style: preserve-3d;
transition: transform 0.5s ease;
}
.card:hover {
transform: rotateY(180deg);
}
.card-back {
backface-visibility: hidden;
}| Свойство | Описание |
|---|---|
| backface-visibility | Видна ли обратная сторона 3D-трансформированного элемента, когда она повёрнута от зрителя (visible или hidden). Необходимо для эффекта переворота карточки. |
| perspective | Расстояние от зрителя до плоскости z=0; меньшее значение = более выраженный 3D-эффект. Применяется к родительскому элементу трансформируемого элемента. |
| perspective-origin | Позиция x/y точки схода для трансформации perspective. |
| transform | Применяет функции двумерной или трёхмерной трансформации: translate(), rotate(), scale(), skew(), matrix() и их 3D-варианты. |
| transform-origin | Точка, вокруг которой применяется трансформация (по умолчанию: 50% 50% — центр элемента). |
| transform-style | Отображаются ли дочерние элементы в 3D-пространстве (preserve-3d) или сглаживаются в плоскость элемента (flat). |
Свойства переходов
Переходы анимируют изменение свойства от одного значения к другому за указанное время при изменении CSS-свойства (например, при :hover).
/* Smooth color + shadow on hover */
.btn {
background-color: steelblue;
box-shadow: none;
transition: background-color 0.2s ease, box-shadow 0.2s ease;
}
.btn:hover {
background-color: dodgerblue;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}Переходы vs. анимации: используйте transition для изменений, обусловленных состоянием (hover, focus, active) — их проще записывать. Используйте animation с @keyframes для независимого, циклического или многошагового движения, которое воспроизводится без взаимодействия с пользователем.
| Свойство | Описание |
|---|---|
| transition | Сокращение для transition-property, transition-duration, transition-timing-function и transition-delay. |
| transition-delay | Время ожидания перед началом перехода. |
| transition-duration | Длительность перехода от начала до конца. |
| transition-property | Какое CSS-свойство (или all) охватывает переход. |
| transition-timing-function | Кривая скорости перехода (ease, linear, ease-in, ease-out, ease-in-out, cubic-bezier(…), steps(…)). |
Свойства визуального форматирования
| Свойство | Описание |
|---|---|
| box-shadow | Добавляет одну или несколько теней вокруг блока элемента. Синтаксис: offset-x offset-y blur spread color. Используйте inset для внутренней тени. |
| box-sizing | Определяет, включают ли width и height padding и рамку (border-box) или нет (content-box — стандарт CSS2). Большинство современных проектов задают *, *::before, *::after { box-sizing: border-box; }. |
| overflow-x | Управляет горизонтальным переполнением: visible, hidden, clip, scroll или auto. |
| overflow-y | Управляет вертикальным переполнением: visible, hidden, clip, scroll или auto. |
| resize | Позволяет пользователю изменять размер элемента: both, horizontal, vertical или none. Требует, чтобы overflow не было равно visible. |
Связанные материалы
Как только вы определились с нужным свойством, эти главы подробно рассматривают наиболее востребованные возможности CSS3:
- CSS Animation и @keyframes — анимации на основе ключевых кадров.
- The Ultimate Guide to Flexbox — одномерный макет.
- grid и grid-template-columns — двумерный макет страницы.
- filter — размытие, яркость, контраст, тень и другие графические эффекты.
- transform и transition — визуальные эффекты и плавные переходы между состояниями.
- border-radius и box-shadow — современное декоративное оформление.