Полезные приемы при проектировании адаптивного сайта

Ниже приведены полезные приемы, которые пригодятся вам при проектировании адаптивного (или, что более верно, отзывчивого) сайта. В статье затронуты следующие важные нюансы полезные для адаптивного сайта: медиазапросы (характеристики устройств), гибкие изображения, поведение полей и отступов, дополнительно говорится о высоте, описывается как использовать медиазапросы в браузерах от IE(6-8), приведено краткое описание использование мета-тега viewport.



Медиазапросы и характеристики устройств

  • Width и height определяют область просмотра или окна браузера, в тоже время device-width и device-height определяют размеры экрана.
  • Max-width используется для тех браузеров, окон или устройств разрешение которых не превышает указанный параметр.
  • Min-width – ширина просмотра должна быть не меньше указанной.

Характеристики устройств для медиазапросов

ХарактеристикаОписаниеесть или нет префиксы
max и min
widthширина области просмотра
(включая скролл)
+
heightheight области просмотра+
device-widthширина всего экрана+
device-heightвысота экрана+
orientationЗначения: portrait или landscape
aspect-ratioОтношение ширины области просмотра к ее высоте (например: 16:9)+
device-aspect-ratioОтношение ширины экрана к его высоте (например: 16:9)+
resolutionПроверяем плотность пикселей в устройстве.
Например, screen and (resolution:72dpi)
+

Примеры использования медиазапросов

CSS

@media screen and (max-width: 768px), screen and (min-width: 1200px) {
    .....
}

@media screen and (max-width: 768px) {
    .....
}

@media screen and (max-width: 520px) {
    .....
}

@media screen and (max-width: 480px) {
    .....
}

@media screen and (max-width: 360px) {
    .....
}

 @media screen and (min-width: 768px) {
    .....
}

@media screen and (min-width: 1200px) {
    .....
}

 

Гибкие изображения

Все достаточно просто: при max-width: 100% изображения не выйдет за пределы ширины элемента-родителя.

Поля (margin) и отступы (padding)

И поля (margin) и отступы (padding) элемента, если вы задаете их в процентах, рассчитываются относительно ширины элемента контейнера.

Высота

Высота элемента, заданная в процентах, рассчитывается относительно высоты элемента-родителя (кроме этого, если высота элемента-предка, от которого идет расчет, равна auto, то и высота самого элемента станет равной auto независимо от указанных процентов).
Как вы помните, для высоты значение по умолчанию – auto.

Поддержка медиазапросов в браузере IE8 и ниже

Для поддержки медиазапросов в Internet Explorer м необходимо специальное решение. Ниже описывается одно из таких решений под названием respond.js, которое представляет собой т.н. polyfill-скрипт на базе JavaScript. Ссылка на github: Respond




Ссылку на respond.js поставьте после всех css файлов.

Мета-тег viewport

width=device-width

отзывчивый, адаптивный дизайна Назначив мета-тегу viewport значение device-width, мы говорим браузеру, что ширина области просмотра равняется ширине этого устройства, а не стандартной ширине в 980px, как он может предполагать по умолчанию.
Или другими словами: по умолчанию, Safari на iPhone отобразит вашу страницу так же как браузер на большом компьютерном экране шириной 980 пикселов. Затем он отмасштабирует содержимое так, чтобы оно умещалось на маленьком экране.

Следующий вариант определения области просмотра определяет ширину страницы и задает начальный масштаб:

HTML

<meta name="viewport" content="width=device-width, initial-scale=1">

 

HTML

<meta name="viewport" content="width=device-width" />

 

Этот атрибут говорит браузеру, что в качестве ширины окна просмотра надо использовать ширину экрана, а не 980px, заданных по умолчанию.

Основные параметры для мета-тега viewport

АтрибутЗначениеОписание
width(от 200px — 10,000px)
или константа device-width.
Определяет ширину области просмотра viewport
Если ширине не указана,

  • в мобильном Safari устанавливается значение 980px,
  • в Opera — 850px,
  • в Android WebKit — 800px,
  • а в IE — 974px.
height(от 223px до 10,000px)
или константа deviceheight
Определяет высоту области просмотра viewport (необязательный атрибут)
initial-scaleЧисло с точкой (от 0.1 до 10).
Значение 1.0 — не масштабировать
Определяет начальный масштаб страницы. Чем больше число, тем выше масштаб.
user-scalableno или yesОпределяет, может ли пользователь изменять масштаб в окне.
В мобильном safari по умолчанию стоит yes
minimum-scaleЧисло с точкой (от 0.1 до 10).
1.0 — не масштабировать
Определяет минимальный масштаб области просмотра viewport. В мобильном safari по умолчанию стоит 0.25.
maximum-scaleЧисло с точкой (от 0.1 до 10).
1.0 — не масштабировать
Определяет максимальный масштаб области просмотра viewport. В мобильном safari по умолчанию стоит 1.6.





Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.