Перейти к основному содержимому

Адаптивный веб-дизайн HTML

Адаптивный веб-дизайн (responsive web design) — это создание страниц, которые хорошо выглядят на всех устройствах. Адаптивная страница автоматически подстраивается под разные размеры экрана и viewport.


Что такое адаптивный веб-дизайн?

Адаптивный веб-дизайн использует HTML и CSS для автоматического изменения размера, скрытия, уменьшения или увеличения сайта, чтобы он хорошо выглядел на всех устройствах — от настольных компьютеров до планшетов и телефонов.


Настройка Viewport

Чтобы сделать сайт адаптивным, добавьте мета-тег viewport на каждую страницу. Он сообщает браузеру, как управлять размером и масштабированием страницы.

Пример

Страница, включающая мета-тег viewport.

Prompt
Адаптивная страница, включающая мета-тег viewport (width=device-width, initial-scale=1.0) в head, с заголовком и абзацем в body.
Результат: полная HTML-страница

Адаптивные изображения

Адаптивные изображения хорошо масштабируются под любой размер браузера. Если CSS-свойство width установлено в 100%, изображение масштабируется вверх и вниз, но может стать больше своего исходного размера. Использование max-width в 100% вместо этого позволяет изображению уменьшаться, но никогда не превышать исходный размер.

Использование width

Изображение с width, установленным в 100%.

Prompt
Страница с изображением, для которого через атрибут style задано width:100%, поэтому оно увеличивается и уменьшается вместе с браузером (и может становиться больше своего исходного размера).
Результат: полная HTML-страница

Использование max-width

Изображение с max-width, установленным в 100%.

Prompt
Страница с изображением, для которого заданы max-width:100% и height:auto, поэтому оно уменьшается при необходимости, но никогда не становится больше своего исходного размера.
Результат: полная HTML-страница

Показ разных изображений в зависимости от ширины браузера

Элемент <picture> позволяет показывать разные изображения для разных размеров окна браузера.

Пример

Разные изображения цветов при разной ширине.

Prompt
Страница, использующая элемент picture для показа разных изображений цветов при разной ширине браузера: маленький цветок до 600px, более крупный до 1500px и вариант по умолчанию, с резервным img.
Результат: полная HTML-страница

Адаптивный размер текста

Размер текста можно задать в единицах vw, что означает ширину viewport, поэтому текст следует за размером окна браузера. 1vw — это 1% от ширины viewport, поэтому если viewport шириной 50 см, то 1vw равен 0,5 см.

Пример

Заголовок, размер которого задан в единицах ширины viewport.

Prompt
Страница с заголовком h1, размер шрифта которого задан в единицах ширины viewport (10vw), поэтому текст масштабируется вместе с окном браузера. Текст гласит «Привет, мир».
Результат: полная HTML-страница

Медиазапросы

Помимо изменения размера текста и изображений, адаптивные страницы часто используют медиазапросы. С помощью медиазапроса можно определить совершенно разные стили для разных размеров браузера, например показ колонок рядом друг с другом на больших экранах и их сложение друг под другом на маленьких.

Пример

Колонки, складывающиеся друг под другом на экранах 800px или меньше.

Prompt
Страница с тремя колонками (левая, основная, правая), которые располагаются рядом на больших экранах с помощью float и складываются в столбец на экранах шириной 800px или меньше с помощью медиазапроса (media query).
Результат: полная HTML-страница

Адаптивная веб-страница - полный пример

Адаптивная веб-страница должна хорошо выглядеть как на больших экранах настольных компьютеров, так и на маленьких мобильных телефонах.


Адаптивный веб-дизайн - фреймворки

Все популярные CSS-фреймворки предлагают адаптивный дизайн. Они бесплатны и просты в использовании.


Bootstrap

Bootstrap — ещё один популярный CSS-фреймворк для адаптивного дизайна.

Пример

Адаптивная страница, созданная с помощью Bootstrap 5.

Prompt
Адаптивная страница, созданная с помощью Bootstrap 5 (подключённого из его CDN): заголовок на всю ширину с основным цветом и строка из трёх колонок с заполняющим содержимым (placeholder).
Результат: полная HTML-страница