Модуль 2. CSS и оформление
Занятие 22
Адаптивность
Сегодня мы научим страницу подстраиваться под телефон: на узком экране колонки встанут друг под другом.
Сегодня сделаем вот такое
Один сайт — все экраны
🖥 Монитор · 💻 Ноутбук · 📟 Планшет · 📱 Телефон
Больше половины людей смотрят сайты с телефона.
Адаптивный сайт перестраивается под экран.
Шаг 1: тег viewport
В head каждой страницы:
<meta name="viewport" content="width=device-width, initial-scale=1">
Без него телефон показывает уменьшенную «компьютерную» версию с крошечными буквами 🔬
Шаг 2: гибкие размеры
%— от родителяrem— от шрифта (16px)vw / vh— от окна
max-width вместо width
<div class="container">
<img src="/images/mountain.svg" alt="Горы">
<p>Контейнер не шире 400px, но на узком экране сжимается.</p>
</div>
.container {
width: 100%;
max-width: 400px;
margin: 0 auto;
padding: 0 16px;
font-family: sans-serif;
}
img { max-width: 100%; height: auto; }
Шаг 3: медиазапрос
@media (max-width: 600px) { … }
«Если экран не шире 600px — то примени эти стили»
max-width— до (телефоны)min-width— от (компьютеры)
<h1>Мой город</h1>
h1 {
color: white;
background: #0984e3;
padding: 20px;
font-family: sans-serif;
}
@media (max-width: 600px) {
h1 { background: #e17055; }
}
Ряд превращается в колонку
- На компьютере — карточки в ряд
- На телефоне — друг под другом
- В @media — только то, что меняется
Нажми «📱 Телефон» в редакторе урока!
<main class="cards">
<article class="card">🏛 Музей</article>
<article class="card">🌳 Парк</article>
<article class="card">🎡 Набережная</article>
</main>
.cards { display: flex; gap: 1rem; }
.card {
flex: 1; padding: 2rem 1rem; text-align: center;
font: 1.2rem sans-serif; background: #dff9fb; border-radius: 12px;
}
@media (max-width: 600px) {
.cards { flex-direction: column; }
}
Что меняем на телефоне
- ↕️ Ряды → колонки
- 🍔 Меню в колонку или с переносом
- 🔠 Заголовки меньше, текст ≥ 16px
- 👆 Кнопки ≥ 44px — под палец
- 🙈 Второстепенное —
display: none
Как проверить
- F12 → значок телефона (Ctrl+Shift+M)
- Выбрать ширину 360px
- Или сузить окно мышкой
- Лучше всего — настоящий телефон
Горизонтальной прокрутки быть не должно!
Запомни!
<meta name="viewport" …>Обязательный тег для телефонов@media (max-width: 600px) { }Стили для узких экрановmax-width: 900pxНе шире 900px%, rem, vw, vhОтносительные единицыflex-direction: columnКолонка вместо рядаCtrl+Shift+M (в F12)Режим устройства
Практика: Мобильная версия страницы
- Сделай шапку и три карточки в ряд с помощью Flexbox.
- Добавь медиазапрос: при ширине до 600px карточки встают в колонку.
- На телефоне уменьши размер заголовка и спрячь лишнюю картинку (display: none).
- Проверь страницу в режиме «Телефон».
🚀 Со звёздочкой: Сделай «бургер-меню»: на телефоне пункты меню прячутся, а вместо них — значок ☰ (подсказка: details и summary).
🔒 Без входа в аккаунт работу из практики нельзя сохранить на сайте, а занятие — отметить пройденным.
Подведём итоги
- Что нового я сегодня узнал(а)?
- Что получилось лучше всего?
- Где было трудно и что поможет в следующий раз?
✨ По желанию: Открой свою страницу увлечений на телефоне и запиши, что там неудобно.