Что такое CSS и зачем он нужен

HTML определяет структуру документа: заголовки, абзацы, изображения и списки. CSS задаёт внешний вид HTML-элементов. Разделение содержания и оформления позволяет менять дизайн, сохраняя разметку.

CSS относится к декларативным языкам: вы описываете результат, а браузер рассчитывает отображение. JavaScript, или JS, обычно отвечает за поведение страницы, например расчёт суммы заказа.

Без авторского CSS остаётся оформление браузера: крупные заголовки, выделенные ссылки, отступы между абзацами. Ваши стили меняют эту основу под макет.

В карточке товара HTML содержит название, фото и описание. CSS размещает их рядом, задаёт фон и оформляет кнопку.

Как подключить CSS к HTML-документу

Основные способы подключения CSS: внешний файл, тег style и атрибут style у отдельного элемента. Для начала удобно создать index.html и style.css в одной папке. Подключение общего файла позволяет менять оформление нескольких страниц в одном месте.

Есть и правило @import: оно подключает другую таблицу внутри CSS. Например, @import url(base.css); помещают перед обычными правилами. Исключения для служебных правил описаны в справочнике MDN.

Внешняя таблица стилей

В head добавьте link с rel=stylesheet и путём к файлу в href. Если файл лежит в папке styles, укажите styles/style.css. Ниже приведён готовый HTML-документ для проверки подключения.

Стили внутри документа

Тег style в head содержит CSS-код целиком. Он удобен для учебного примера; на нескольких страницах такие стили придётся повторять.

Стиль у отдельного элемента

Атрибут style содержит объявления, например color: red;, без селектора и скобок. Он подходит для точечной проверки, но усложняет общие настройки.

<!doctype html>
<html lang="ru">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Проверка CSS</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <main class="card">
    <h1>Моя первая страница</h1>
    <p>Этот абзац станет красным.</p>
  </main>
</body>
</html>

Синтаксис CSS: селектор, свойство и значение

Структура обычного правила CSS: сначала селектор, затем блок объявлений в фигурных скобках. Селектор выбирает элементы страницы. Каждое объявление состоит из свойства и значения, разделённых двоеточием. Между объявлениями ставят точку с запятой.

Сохраните предыдущий HTML как index.html, а следующий CSS как style.css в той же папке. Откройте index.html в браузере: абзац станет красным, карточка получит рамку и отступы.

Комментарий CSS записывают между /* и */. Он поясняет код и не влияет на оформление.

Проверяйте скобки, двоеточия и допустимые значения. Отступы в коде помогают читать его, но не заменяют разделители объявлений.

/* Общие настройки текста */
body {
  font-family: Arial, sans-serif;
}
.card {
  max-width: 36rem;
  margin: 20px auto;
  padding: 10px 20px;
  border: 1px solid #333;
}
p {
  color: red;
  font-weight: bold;
}

Селекторы CSS: как выбрать нужные элементы

Селекторы CSS выбирают элементы по типу, классу, атрибуту или состоянию. Класс подходит для повторяющихся карточек. Значение id в корректном HTML должно быть уникальным внутри документа.

В CSS .card выбирает класс, а #header выбирает идентификатор. В HTML значения class и id пишут без точки и решётки.

Запятая объединяет селекторы, пробел выбирает потомков. Селектор .card a затронет ссылки внутри карточек; .card, a затронет карточки и все ссылки.

Селекторы CSS: как выбрать нужные элементы
СелекторЧто выбираетКогда применять
pВсе элементы pОбщее оформление абзацев
.cardЭлементы с классом cardПовторяющиеся карточки
#headerЭлемент с id headerКонкретная область документа
.card aСсылки внутри .card на любом уровне вложенностиОформление ссылок карточки
a:hoverСсылку при наведении указателяИзменение внешнего вида при наведении
h1, h2Элементы h1 и h2Общие свойства разных заголовков
img[src]Изображения с атрибутом srcОтбор по наличию атрибута
*Все элементыОбщие настройки, например box-sizing
.card > pАбзацы, непосредственно вложенные в .cardОтбор прямых потомков
h2 + pАбзац сразу после h2 с тем же родителемОформление первого абзаца раздела
p::first-lineПервую строку абзацаОформление части элемента псевдоэлементом

Шрифты, цвет и фон: основные свойства CSS

Начните с читаемого текста: задайте шрифт, размер и межстрочный интервал. Цвет текста меняет color, а фон элемента меняет background-color.

Цвет можно задать именем red, кодом #ff0000 или функцией rgb(255 0 0). Запись rgb(255 0 0 / 50%) добавляет прозрачность. Значения здесь учебные, палитру выбирайте с учётом контраста текста и фона.

Свойство font-family определяет шрифт, font-size задаёт размер, font-weight управляет насыщенностью. Параметр line-height меняет высоту строки. Значение text-align: center выравнивает текст по центру внутри блока, но не перемещает сам блок.

Общие шрифты удобно задавать для body: текстовые свойства наследуются потомками. Отдельным заголовкам можно назначить свой размер и тень text-shadow.

Размеры CSS допускают разные единицы измерения. px обозначает CSS-пиксель, rem связан с размером шрифта корневого элемента. Для width значение в процентах обычно рассчитывается относительно ширины содержащего блока. Выбор единицы зависит от свойства и задачи.

В font-family: Arial, sans-serif браузер сначала пробует Arial, затем доступный шрифт без засечек. Это запасной вариант, а не название конкретного шрифта. Фоновую картинку задаёт background-image: url(image.png);, а повторение отключает background-repeat: no-repeat;.

Блочная модель CSS

Блочная модель CSS объясняет, из чего складывается размер блока. В центре находится область содержания, или content: текст, изображение и вложенные элементы. Далее идут внутренний отступ padding, граница border и внешний отступ margin.

Padding отделяет содержимое от рамки; margin оставляет место снаружи. В записи padding: 10px 20px первое значение задаёт верхний и нижний отступы, второе задаёт левый и правый.

При box-sizing: content-box ширина width относится к области содержания. Padding и border увеличивают наружную ширину. При box-sizing: border-box заданная ширина включает внутренние отступы и рамку. Внешний margin в эту ширину не входит.

Для центрирования изображения в обычном потоке задайте display: block; max-width: 100%; height: auto; margin: 0 auto;. Когда картинка уже контейнера, автоматические боковые отступы делят свободное место поровну.

Каскад, специфичность и наследование в CSS

Каскад CSS определяет итоговое значение, когда к одному элементу подходят разные объявления. Отсюда название «каскадные таблицы стилей».

Браузер учитывает применимость объявлений, их происхождение, важность и слои каскада. Затем сравнивает специфичность селекторов. При дальнейшем равенстве учитывается близость области @scope, если она задана, и порядок записи.

Без слоёв и !important класс .note имеет большую специфичность, чем p. При прочих равных решает порядок записи.

Наследование работает иначе: некоторые свойства переходят от родителя к потомкам. Например, color и font-family могут прийти от body, а margin обычно не наследуется. Собственное объявление color у дочернего элемента заменяет унаследованный цвет.

Пометка !important повышает приоритет объявления внутри каскада, но не побеждает любой стиль. Сначала найдите источник конфликта в инструментах разработчика.

CSS-вёрстка: Flexbox, Grid и позиционирование

За расположение элементов отвечает отдельная группа возможностей CSS. В обычном потоке блоки следуют друг за другом, а строчный текст заполняет строки. Для управляемого макета применяются Flexbox, Grid и позиционирование.

Flexbox для ряда или колонки

Свойство display: flex создаёт гибкий контейнер. Его непосредственные дочерние элементы можно выстроить вдоль основной оси, выровнять и разделить промежутками gap. Такой CSS подходит для меню, ряда кнопок или строки с изображением и описанием.

Grid для сетки

С помощью display: grid вы задаёте строки и столбцы. CSS Grid удобен для каталога, где карточки должны занимать согласованные ячейки. Flexbox и Grid могут использоваться вместе: сетка снаружи, гибкое расположение содержимого внутри карточки.

Float и position

Float задаёт обтекание элемента текстом. Для основного макета рассмотрите Flexbox или Grid. Position: relative сохраняет место элемента в потоке; position: absolute исключает его из потока. Position: fixed обычно привязывает элемент к области просмотра; отдельные свойства предков могут изменить эту привязку.

Адаптивный CSS: пример для разных экранов

Адаптивный дизайн помогает сохранять удобную структуру при изменении ширины окна. Медиазапрос CSS проверяет условие и применяет вложенные объявления, когда оно выполнено. Ниже карточка становится колонкой при ширине области просмотра до 600 CSS-пикселей включительно.

Display: flex включает раскладку, а flex-direction: column меняет её направление. Число 600 выбрано для примера. В проекте границу определяет ширина, при которой содержимому становится тесно.

  1. Откройте страницу в браузере и постепенно уменьшайте ширину окна.
  2. Проверьте длинный заголовок, подписи кнопок и крупное изображение.
  3. Найдите момент, когда блоки перестают помещаться рядом.
  4. Измените CSS в медиазапросе и повторите проверку с реальным содержанием.
.card {
  display: flex;
  gap: 1rem;
}

@media (max-width: 600px) {
  .card {
    flex-direction: column;
  }
}

Развитие CSS и поддержка браузерами

Первые уровни CSS описывали язык целиком; затем стандарт разделили на модули, которые развиваются независимо. Поэтому CSS3 не обозначает одну завершённую версию, а единой спецификации CSS4 нет. На сентябрь 2026 года учите конкретные возможности и проверяйте их совместимость.

В справочнике MDN у каждого свойства есть таблица Browser compatibility. Сверяйте её с браузерами и устройствами посетителей. Правило @supports позволяет применить CSS при поддержке указанной возможности. Сначала задайте базовое оформление, затем добавьте улучшение внутри проверки.

Препроцессоры и CSS-фреймворки

Препроцессор Sass преобразует исходный код с дополнительными возможностями в обычный CSS. Браузеру подключают полученный файл. Переменные Sass обрабатываются при сборке; переменные CSS участвуют в каскаде браузера.

CSS-фреймворк предоставляет готовые стили и компоненты: например, сетки, кнопки и формы. Устройство такого набора показано в документации Bootstrap. Для первых упражнений он необязателен: сначала полезно разобраться, как селекторы и свойства формируют результат.

Как начать изучать CSS на практике

Для начала достаточно текстового редактора и браузера. Используйте пример выше, меняя одно свойство за раз и наблюдая результат.

Следующее упражнение: добавьте изображение, затем несколько карточек и расположите их в ряд. Проверяйте CSS с длинным текстом и на узком экране.

Если оформление не изменилось, откройте инструменты разработчика и выберите нужный элемент. Проверьте загрузку файла, совпадение класса и перечёркнутые объявления. Панель вычисленных стилей поможет увидеть итоговое значение свойства.

Помощь с CSS

Если вы меняете CSS на действующем сайте, сначала сохраните исходный файл. Проверяйте не только главную страницу: общие классы могут использоваться в каталоге, статьях и формах.

Нужна помощь с оформлением? Посмотрите услугу дизайн сайта и опишите нужные экраны и ограничения вёрстки. seosite1 делает сайты с 2009 года и работает удалённо по всей России. Цену и сроки называем после брифа.

Источники

  1. MDN: подключение CSS, синтаксис и селекторы
  2. MDN: основы CSS, шрифты и оформление
  3. MDN: блочная модель
  4. MDN: каскад и стили браузера
  5. MDN: справочник CSS и развитие модулей
  6. MDN: медиазапросы и адаптивный дизайн
  7. W3C: уровни и модули CSS
  8. Sass: документация препроцессора