CSS: что такое и как подключить
CSS (Cascading Style Sheets) — язык описания внешнего вида HTML-документа: цвета, шрифты, размеры, отступы, раскладка.
Зачем нужно
CSS отделяет содержание от представления: HTML описывает структуру, CSS — как она выглядит. Это позволяет изменить дизайн всего сайта, редактируя один файл, применять разные темы, адаптировать вид под устройства и принтер. Понимание способов подключения CSS и их порядка каскадирования — первый шаг в изучении языка.
Где используется
- Оформление любой веб-страницы
- Адаптивный дизайн через media queries
- Печатные стили через
@media print - Темизация через Custom Properties
Основной контент
Три способа подключения CSS
<!-- 1. Внешний файл (рекомендуется) -->
<head>
<link rel="stylesheet" href="styles.css">
</head>
<!-- 2. Тег <style> внутри HTML -->
<head>
<style>
body { margin: 0; }
.title { color: #333; }
</style>
</head>
<!-- 3. Атрибут style (инлайн-стили) -->
<p style="color: red; font-size: 18px;">Текст</p>
Внешний файл — лучшая практика
<!-- Базовое подключение -->
<link rel="stylesheet" href="css/main.css">
<!-- С media-query -->
<link rel="stylesheet" href="css/print.css" media="print">
<!-- Preload для критического CSS -->
<link rel="preload" href="css/critical.css" as="style"
onload="this.onload=null;this.rel='stylesheet'">
@import внутри CSS
/* Импорт другого CSS-файла */
@import url('reset.css');
@import url('variables.css');
@import url('components.css');
/* С условием */
@import url('mobile.css') (max-width: 767px);
@importблокирует загрузку и замедляет рендер; предпочтительнее несколько<link>тегов.
Структура CSS-правила
/* Правило = селектор + блок объявлений */
selector {
property: value;
another-property: value;
}
/* Примеры */
h1 {
font-size: 2rem;
color: #111;
margin-bottom: 16px;
}
.button,
.link {
cursor: pointer;
}
Каскад и порядок применения
/* Приоритет (от низшего к высшему):
1. Browser defaults (user agent stylesheet)
2. Внешние стили (<link>)
3. <style> в <head>
4. Инлайн style=""
5. !important (нарушает нормальный каскад)
*/
p { color: gray; } /* применяется */
p { color: black; } /* перекрывает */
p { color: red !important; } /* побеждает всё */
Частые ошибки
@importв начале файла —@importдолжен быть первым в файле, иначе игнорируется- Инлайн-стили трудно переопределить — нужен
!importantили сброс; лучше не использовать инлайн-стили для компонентной логики - Несколько
<link>с конфликтующими стилями — последний подключённый файл выигрывает (при равной специфичности) - Забыт
<meta charset>и кодировка — кириллица в CSS-комментариях может ломаться без правильной кодировки файла (UTF-8)