Как сверстать современный сайт
Полное руководство по HTML, CSS, адаптивной вёрстке и современным подходам. Всё, что нужно для создания быстрых, доступных и красивых веб-страниц.
1. Фундамент: семантический HTML
Семантическая разметка
В 2026 году семантика влияет на SEO, доступность (a11y) и поддерживаемость кода. Используйте элементы по назначению.
<header> — шапка сайта
<nav> — навигация
<main> — основной контент
<article> — независимый блок
<section> — логический раздел
<aside> — дополнительная информация
<footer> — подвал
Современные возможности HTML
Dialog, Popover API, lazy loading, атрибуты для форм и валидация без JS.
<img loading="lazy" src="photo.jpg" alt="описание">
<dialog id="modal"> ... </dialog>
<button popovertarget="menu">Открыть</button>
Структура базового шаблона
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Название проекта</title>
<meta name="description" content="Краткое описание">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header>...</header>
<main>
<section>...</section>
</main>
<footer>...</footer>
</body>
</html>
2. CSS 2026: новые возможности и архитектура
CSS Grid + Subgrid
Гибкие сетки с subgrid для согласованных макетов. Больше не нужны сложные обёртки.
.grid-parent {
display: grid;
grid-template-columns: repeat(12, 1fr);
gap: 1rem;
}
.child {
grid-column: span 4;
display: grid;
grid-template-rows: subgrid;
}
Container queries
Адаптация компонентов на основе размера родителя, а не окна браузера.
.card {
container-type: inline-size;
}
@container (min-width: 400px) {
.card h3 {
font-size: 1.8rem;
}
}
Новые цветовые пространства
Используйте oklch(), lch(), color-mix() для более предсказуемых цветов.
background: oklch(70% 0.15 250);
color: color-mix(in oklch, blue, white 30%);
:has() родительский селектор
Выбирайте родителя по наличию потомка. Упрощает стилизацию форм и карточек.
form:has(input:invalid) {
border-color: #d9534f;
}
.card:has(img) {
padding-top: 0;
}
3. Адаптивность и производительность
Mobile First подход
Начинайте стилизацию с мобильных устройств, затем расширяйте с помощью медиазапросов. Это улучшает производительность и читаемость кода.
/* базовые стили для мобильных */
.card {
padding: 1rem;
}
/* планшеты */
@media (min-width: 768px) {
.card {
padding: 1.5rem;
}
}
/* десктоп */
@media (min-width: 1024px) {
.grid {
display: grid;
grid-template-columns: repeat(3,1fr);
}
}
Оптимизация загрузки
- 1 Адаптивные изображения:
<picture>иsrcsetдля разных разрешений. - 2 Ленивая загрузка для изображений и iframe.
- 3 Минификация CSS/JS и использование современных форматов (webp, avif).
- 4 CSS-переменные для единообразной тематизации.
Практический пример адаптивной сетки
.responsive-layout {
display: grid;
gap: 1.5rem;
grid-template-columns: 1fr;
}
@media (min-width: 640px) {
.responsive-layout {
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
}
/* с использованием container queries для карточек */
.card-item {
container-type: inline-size;
}
@container (min-width: 320px) {
.card-item .title {
font-size: 1.25rem;
}
}
4. Инструменты и подходы современной вёрстки
Препроцессоры и сборка
PostCSS, Lightning CSS, Vite — ускоряют разработку и обеспечивают совместимость.
- → CSS-модули для изоляции стилей.
- → Автопрефиксер и поддержка современных фич.
- → Интеграция с TypeScript для типобезопасной вёрстки.
Доступность (A11Y)
В 2026 году веб-стандарты требуют доступности для всех. Используйте ARIA-атрибуты и семантику.
<button aria-label="Закрыть меню">✕</button>
<nav aria-label="Основная навигация">...</nav>
<img alt="описание изображения">
/* фокус-стили */
:focus-visible {
outline: 2px solid #6b9eff;
outline-offset: 2px;
}
CSS-фреймворки vs кастом
Tailwind CSS остаётся популярным, но кастомный CSS с переменными даёт больше контроля. Выбирайте под задачи проекта.
Проверка качества
Lighthouse, axe DevTools, валидатор W3C — обязательные этапы перед публикацией.
5. Публикация и хостинг
Бесплатные платформы
- ▹ Netlify — автоматический деплой из Git, формы, функции.
- ▹ Vercel — отличная поддержка фронтенда и Edge Functions.
- ▹ GitHub Pages — просто и надёжно для статических сайтов.
- ▹ Cloudflare Pages — быстрая сеть доставки.
Собственный домен и HTTPS
Приобретите домен (например, на reg.ru, nic.ru) и подключите бесплатный SSL через Let's Encrypt. Современные хостинги предоставляют SSL автоматически.
6. Готовый шаблон (пример современной вёрстки)
Ниже представлен компактный, но полноценный шаблон с использованием Grid, Container Queries, :has() и переменных. Вы можете взять его за основу.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Современный шаблон</title>
<style>
:root {
--color-bg: #0a0c10;
--color-surface: #12161c;
--color-text: #e4e6eb;
--color-accent: #6b9eff;
--spacing: 1.5rem;
}
* { margin:0; padding:0; box-sizing:border-box; }
body {
background: var(--color-bg);
color: var(--color-text);
font-family: system-ui, 'Segoe UI', sans-serif;
line-height: 1.5;
padding: 2rem;
}
.container {
max-width: 1200px;
margin: 0 auto;
background: var(--color-surface);
border-radius: 2rem;
padding: 2rem;
box-shadow: 0 12px 30px -12px rgba(0,0,0,0.5);
border: 1px solid rgba(255,255,255,0.05);
}
.grid {
display: grid;
gap: 1.5rem;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
margin: 2rem 0;
}
.card-example {
container-type: inline-size;
background: rgba(107, 158, 255, 0.08);
border-radius: 1.5rem;
padding: 1.5rem;
border: 1px solid rgba(107, 158, 255, 0.1);
}
@container (min-width: 350px) {
.card-example h3 {
font-size: 1.5rem;
}
}
header, footer {
text-align: center;
padding: 1rem 0;
}
@media (max-width: 640px) {
body { padding: 1rem; }
.container { padding: 1.25rem; }
}
</style>
</head>
<body>
<div class="container">
<header><h1>Мой современный сайт</h1></header>
<div class="grid">
<div class="card-example"><h3>Компонент 1</h3><p>Адаптив через container query.</p></div>
<div class="card-example"><h3>Компонент 2</h3><p>Гибкость и производительность.</p></div>
<div class="card-example"><h3>Компонент 3</h3><p>Современные CSS-возможности.</p></div>
</div>
<footer>© 2026 | Сделано по современным стандартам</footer>
</div>
</body>
</html>
Этот шаблон демонстрирует адаптивность, CSS-переменные, контейнерные запросы и сетку. Вы можете расширять его под свои проекты.
Начните свой проект прямо сейчас
Используйте изученные техники: семантическую разметку, CSS Grid, контейнерные запросы и инструменты автоматизации. Современная вёрстка — это доступность, скорость и отзывчивый дизайн.
Вернуться к основам