Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Что такое отзывчивая верстка
Отзывчивая верстка (responsive design) — это современный подход к веб-разработке, при котором веб-сайт или приложение автоматически адаптируется к размеру экрана устройства пользователя, обеспечивая оптимальный просмотр и использование на любых устройствах: от мобильных телефонов до больших мониторов. Основная идея — один сайт работает хорошо везде, без необходимости создания отдельных мобильных версий.
Основные компоненты отзывчивой верстки
1. Гибкий макет (Fluid Grid)
Используются относительные единицы вместо фиксированных пикселей:
/* Плохо — фиксированные размеры */
.container {
width: 1200px;
margin: 0 auto;
}
/* Хорошо — гибкие размеры */
.container {
width: 100%;
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
/* Или с использованием fr единиц */
.grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
}
2. Гибкие изображения (Flexible Images)
/* Изображения должны масштабироваться с контейнером */
img {
max-width: 100%;
height: auto;
display: block;
}
/* Фоновые изображения */
.hero {
background-image: url('hero.jpg');
background-size: cover;
background-position: center;
height: 400px;
}
3. Media queries (медиа запросы)
/* Mobile-first подход */
.card {
width: 100%;
font-size: 14px;
}
/* Планшеты */
@media (min-width: 768px) {
.card {
width: 48%;
float: left;
margin-right: 2%;
font-size: 16px;
}
}
/* Десктопы */
@media (min-width: 1024px) {
.card {
width: 31%;
float: left;
margin-right: 2%;
font-size: 18px;
}
}
Практический пример с HTML и CSS
HTML структура
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Отзывчивый сайт</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header class="header">
<nav class="navbar">
<h1>Logo</h1>
<menu class="menu">Home</menu>
<menu class="menu">About</menu>
<menu class="menu">Contact</menu>
</nav>
</header>
<main class="container">
<section class="hero">
<h1>Welcome</h1>
</section>
<section class="features">
<article class="feature">
<h2>Feature 1</h2>
<p>Description</p>
</article>
<article class="feature">
<h2>Feature 2</h2>
<p>Description</p>
</article>
<article class="feature">
<h2>Feature 3</h2>
<p>Description</p>
</article>
</section>
</main>
</body>
</html>
CSS с отзывчивостью
/* Мобильные устройства (по умолчанию) */
body {
font-size: 14px;
line-height: 1.5;
}
.navbar {
display: flex;
flex-direction: column;
padding: 10px;
}
.menu {
padding: 10px 0;
border-bottom: 1px solid #ddd;
}
.features {
display: flex;
flex-direction: column;
}
.feature {
width: 100%;
padding: 15px;
margin-bottom: 10px;
background: #f5f5f5;
}
/* Планшеты (768px и выше) */
@media (min-width: 768px) {
body {
font-size: 16px;
}
.navbar {
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.menu {
padding: 10px 20px;
border: none;
}
.features {
flex-direction: row;
flex-wrap: wrap;
}
.feature {
width: calc(50% - 10px);
margin-right: 20px;
}
}
/* Десктопы (1024px и выше) */
@media (min-width: 1024px) {
body {
font-size: 18px;
}
.container {
max-width: 1200px;
margin: 0 auto;
}
.features {
gap: 20px;
}
.feature {
width: calc(33.333% - 14px);
margin-right: 0;
}
}
Современный подход с Flexbox и Grid
Flexbox для отзывчивости
.container {
display: flex;
flex-wrap: wrap;
gap: 20px;
}
.item {
flex: 1 1 calc(33.333% - 20px);
min-width: 300px;
}
@media (max-width: 768px) {
.item {
flex: 1 1 calc(50% - 20px);
min-width: 150px;
}
}
@media (max-width: 480px) {
.item {
flex: 1 1 100%;
}
}
CSS Grid для отзывчивости
.grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 20px;
padding: 20px;
}
.grid-item {
background: white;
border-radius: 8px;
padding: 20px;
}
Этот подход автоматически адаптируется — количество столбцов меняется в зависимости от размера экрана!
Мобильный viewport
Обязательный тег в <head>:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
Он告 браузеру:
- Использовать ширину устройства (не фиксированные 980px)
- Установить начальный масштаб 1:1
Breakpoints (точки разрыва)
Стандартные размеры для адаптации:
/* Мобильные телефоны */
@media (max-width: 480px) { }
/* Мобильные и небольшие планшеты */
@media (max-width: 768px) { }
/* Планшеты и небольшие ноутбуки */
@media (min-width: 769px) and (max-width: 1024px) { }
/* Большие экраны */
@media (min-width: 1025px) { }
Преимущества отзывчивой верстки
- Один сайт для всех устройств — не нужны отдельные мобильные версии
- Лучше для SEO — поисковики предпочитают отзывчивые сайты
- Дешевле в разработке — меньше кода, легче поддержка
- Лучший пользовательский опыт — оптимально работает везде
- Будущая совместимость — готово к новым устройствам
Инструменты для проверки
// Chrome DevTools:
// 1. Открыть F12
// 2. Ctrl+Shift+M (или Cmd+Shift+M на Mac)
// 3. Выбрать устройство
// Программно
const isMobile = window.matchMedia("(max-width: 768px)").matches;
if (isMobile) {
console.log("Mobile view");
}
Итоги
- Отзывчивая верстка адаптируется к размеру экрана
- Основана на гибких макетах, изображениях и media queries
- Mobile-first подход — лучшая практика
- Используй Flexbox, Grid и современный CSS
- Обязательный
<meta viewport>тег - Один сайт работает везде без отдельных версий