Представьте, что у вас есть готовый каркас дома из HTML — стены, окна, двери. Но он серый, безликий. CSS (Cascading Style Sheets — каскадные таблицы стилей) — это краска, обои, декор и освещение. Он превращает скелет сайта в живой, красивый и удобный интерфейс.

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

CSS — это язык стилей, который делает HTML-страницы красивыми. Он отвечает за внешний вид: цвета, шрифты, отступы, расположение элементов и многое другое.

HTML — структура

Каркас сайта, его скелет. Что будет на странице.

CSS — внешний вид

Дизайн сайта, его внешность. Как это будет выглядеть.

JavaScript — поведение

Интерактивность сайта. Как будет реагировать на действия.

Как подключить CSS к сайту: 3 способа

Есть три основных способа добавить CSS на страницу:

Пример подключения CSS
<!-- Внешний файл (рекомендуется) -->
<link rel="stylesheet" href="style.css">

<!-- Внутри HTML -->
<style>
    h1 { color: blue; }
</style>

<!-- Инлайн-стили (не рекомендуется) -->
<h1 style="color: red;">Заголовок</h1>

Правильный подход: Всегда используйте внешние файлы CSS (.css). Это позволяет:

  • Использовать один файл для всех страниц сайта
  • Легко вносить изменения
  • Ускорить загрузку (браузер кэширует CSS файлы)
  • Поддерживать порядок в коде

Основы синтаксиса: селекторы и свойства

Синтаксис CSS очень прост: Выбираете элемент (селектор) и говорите, как он должен выглядеть (свойства).

Структура CSS правила
селектор {
    свойство: значение;
    свойство: значение;
    свойство: значение;
}

Селекторы по тегу

h1, p, a

Применяются ко всем элементам этого типа

Пример:

h1 {
  color: #2563eb;
  font-size: 2rem;
}

Селекторы по классу

.button, .header

Наиболее частый способ. Элементы с классом class="button"

Пример:

.button {
  background: blue;
  color: white;
  padding: 10px 20px;
}

Селекторы по ID

#header, #footer

Для уникальных элементов с id="header"

Пример:

#header {
  height: 80px;
  background: #f8fafc;
}

Блок, отступы, границы: модель Box Model

Каждый элемент в CSS — это прямоугольный блок. Box Model описывает, как этот блок устроен изнутри наружу.

Пример Box Model
.card {
    /* Контент */
    width: 300px;
    height: 200px;
    
    /* Внутренние отступы */
    padding: 20px;
    
    /* Граница */
    border: 2px solid #e2e8f0;
    border-radius: 8px;
    
    /* Внешние отступы */
    margin: 15px;
    
    /* Фон */
    background: white;
    
    /* Тень */
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

Важно понимать: Когда вы задаете width: 300px, это ширина только контента. Общая ширина элемента будет: 300px + padding + border. Используйте box-sizing: border-box; чтобы width включала padding и border.

Современная верстка: Flexbox и Grid

Flexbox и Grid — две революционные технологии CSS, которые упростили создание сложных макетов.

1

Flexbox

Одномерное выравнивание элементов в строку или колонку. Идеально для навигации, карточек, распределения пространства.

2

CSS Grid

Двумерные сетки для сложных макетов. Позволяет точно контролировать строки и колонки одновременно.

3

Когда что использовать

Flexbox — для компонентов внутри контейнера. Grid — для общего макета страницы.

4

Совмещение

Часто используют вместе: Grid для основного макета, Flexbox для внутренних компонентов.

Пример Flexbox
.nav {
    display: flex; /* Включаем Flexbox */
    justify-content: space-between; /* Распределяем по ширине */
    align-items: center; /* Выравниваем по центру вертикально */
    gap: 20px; /* Расстояние между элементами */
}
Пример CSS Grid
.products-grid {
    display: grid; /* Включаем Grid */
    grid-template-columns: repeat(3, 1fr); /* 3 колонки равной ширины */
    gap: 30px; /* Расстояние между карточками */
}

Адаптивный дизайн: Mobile First подход

Mobile First — сначала создаем дизайн для мобильных, потом адаптируем для больших экранов. Более 60% трафика идет с мобильных устройств!

Медиа-запросы для адаптивности
/* Базовые стили для мобильных (Mobile First) */
.container {
    padding: 15px;
    font-size: 16px;
}

/* Планшеты (768px и выше) */
@media (min-width: 768px) {
    .container {
        max-width: 720px;
        margin: 0 auto;
        padding: 20px;
    }
}

/* Десктопы (1024px и выше) */
@media (min-width: 1024px) {
    .container {
        max-width: 1200px;
        padding: 30px;
    }
    
    .nav {
        display: flex;
    }
}

Профессиональный совет: Используйте относительные единицы (%, rem, vw) вместо пикселей. 1rem = 16px (обычно), но пользователь может изменить размер шрифта в браузере.

Практика: создаем красивую карточку товара

Давайте создадим современную карточку товара, которая использует все изученные техники:

HTML структура карточки
<div class="product-card">
    <div class="product-badge">Новинка</div>
    <div class="product-image">
        <img src="product.jpg" alt="Смартфон Premium X">
    </div>
    <div class="product-content">
        <h3 class="product-title">Смартфон Premium X</h3>
        <p class="product-description">Мощный смартфон с отличной камерой</p>
        <div class="product-price">24 999 ₽</div>
        <button class="product-button">В корзину</button>
    </div>
</div>
CSS стили карточки
.product-card {
    background: white;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease;
    max-width: 320px;
}

.product-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15);
}

.product-badge {
    background: #ef4444;
    color: white;
    padding: 5px 15px;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 600;
    position: absolute;
    top: 15px;
    left: 15px;
}

.product-image {
    height: 200px;
    overflow: hidden;
}

.product-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.product-card:hover .product-image img {
    transform: scale(1.05);
}

.product-content {
    padding: 20px;
}

.product-title {
    font-size: 1.25rem;
    margin-bottom: 10px;
    color: #1e293b;
}

.product-description {
    color: #64748b;
    font-size: 0.9rem;
    margin-bottom: 15px;
    line-height: 1.5;
}

.product-price {
    font-size: 1.5rem;
    font-weight: 700;
    color: #2563eb;
    margin-bottom: 15px;
}

.product-button {
    width: 100%;
    padding: 12px;
    background: #2563eb;
    color: white;
    border: none;
    border-radius: 8px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.3s ease;
}

.product-button:hover {
    background: #1d4ed8;
}

Ключевые выводы:

CSS отделяет оформление от структуры (HTML)
Используйте внешние файлы .css для профессиональных проектов
Box Model: content → padding → border → margin
Flexbox для одномерных, Grid для двумерных раскладок
Mobile First: сначала мобильные, потом десктоп
Практика — лучший учитель. Создайте реальный проект!

CSS — это искусство превращения черно-белого каркаса в живой, дышащий дизайн. Он дает вашему сайту характер, эмоции и удобство. Начните с основ, экспериментируйте, и скоро вы сможете создавать интерфейсы, которые будут радовать и вас, и ваших пользователей.

Нужен красивый и современный сайт?

Digital Greatness создает адаптивные сайты с продуманным дизайном. Мы знаем, как сделать сайт, который будет работать на ваш бизнес и привлекать клиентов.

Обсудить дизайн сайта