09. Адаптивный дизайн
Что такое адаптивный дизайн
Адаптивный дизайн — это подход, при котором сайт автоматически подстраивается под размер экрана пользователя: от телефона до телевизора.Bootstrap создан специально для адаптивности: вам не нужно вручную писать десятки медиа-запросов — всё уже встроено!
Брейкпоинты Bootstrap
Брейкпоинты (breakpoints) — это контрольные точки ширины экрана, при которых меняется макет страницы.Bootstrap использует стандартные брейкпоинты:
— до 576px (мобильные устройства)xs
— ≥ 576pxsm
— ≥ 768px (планшеты)md
— ≥ 992px (ноутбуки)lg
— ≥ 1200px (большие мониторы)xl
— ≥ 1400px (очень большие экраны)xxl
Пример использования:
<div class="row">
<div class="col-12 col-md-6 col-lg-3 bg-primary text-white p-3">1</div>
<div class="col-12 col-md-6 col-lg-3 bg-success text-white p-3">2</div>
<div class="col-12 col-md-6 col-lg-3 bg-warning text-dark p-3">3</div>
<div class="col-12 col-md-6 col-lg-3 bg-danger text-white p-3">4</div>
</div>
Что произойдёт:
- На телефоне (меньше 576px) — все блоки идут друг под другом (по 12 колонок).
- На планшете (от 768px) — 2 блока в ряд.
- На ноутбуке (от 992px) — 4 блока в ряд.
Работа с изображениями: img-fluid
Bootstrap делает изображения адаптивными с помощью класса.img-fluid Он заставляет изображение уменьшаться или увеличиваться в зависимости от размера контейнера.Пример:
<img src="https://via.placeholder.com/800x400" class="img-fluid rounded shadow" alt="Пример изображения">
— автоматически масштабирует изображение по ширине контейнера..img-fluid
— добавляет скруглённые углы..rounded
— лёгкая тень для визуальной глубины..shadow
Видео и соотношение сторон (ratio)
Если вы вставляете видео или iframe (например, YouTube), используйте компонент ratio. Он сохраняет правильные пропорции.Пример YouTube-видео:
<div class="ratio ratio-16x9">
<iframe src="https://www.youtube.com/embed/dQw4w9WgXcQ" allowfullscreen></iframe>
</div>
Доступные варианты:
— квадрат (1:1).ratio-1x1
— стандартное видео (4:3).ratio-4x3
— широкоформатное (по умолчанию для YouTube).ratio-16x9
— очень широкое (кинематографичное).ratio-21x9
Скрытие и показ элементов на разных устройствах
Иногда нужно скрыть элемент на телефоне, но показать на ПК — и наоборот. Для этого есть утилиты отображения:Примеры:
<p class="d-none d-md-block">Этот текст виден только на планшетах и выше.</p>
<p class="d-block d-md-none">Этот текст виден только на телефонах.</p>
Пример адаптивной страницы
HTML:
<div class="container my-5">
<div class="text-center mb-4">
<h1 class="fw-bold">Адаптивная страница Bootstrap</h1>
<p class="lead text-secondary">Попробуй изменить ширину окна браузера 👇</p>
</div>
<div class="row g-4">
<div class="col-12 col-md-6 col-lg-4">
<div class="card h-100 shadow-sm">
<img src="https://via.placeholder.com/400x200" class="card-img-top img-fluid" alt="">
<div class="card-body">
<h5 class="card-title">Карточка №1</h5>
<p class="card-text">Эта карточка изменяет размер вместе с экраном.</p>
</div>
</div>
</div><div class="col-12 col-md-6 col-lg-4">
<div class="card h-100 shadow-sm">
<img src="https://via.placeholder.com/400x200" class="card-img-top img-fluid" alt="">
<div class="card-body">
<h5 class="card-title">Карточка №2</h5>
<p class="card-text">Попробуй открыть эту страницу на телефоне!</p>
</div>
</div>
</div>
<div class="col-12 col-md-6 col-lg-4">
<div class="card h-100 shadow-sm">
<img src="https://via.placeholder.com/400x200" class="card-img-top img-fluid" alt="">
<div class="card-body">
<h5 class="card-title">Карточка №3</h5>
<p class="card-text">Bootstrap сам решит, сколько колонок в ряд.</p>
</div>
</div>
</div>
</div>
</div>
Итоги урока
Теперь вы знаете:- Что такое адаптивный дизайн и зачем он нужен.
- Как работают брейкпоинты в Bootstrap.
- Как делать изображения и видео адаптивными с помощью
и.img-fluid.ratio - Как скрывать и показывать элементы на разных устройствах.
- Как создавать полностью адаптивные карточки и сетки.