Адаптивная верстка css: Адаптивная вёрстка сайта: что это, примеры

Содержание

Самые простые техники адаптивной верстки / Хабр

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


1. Видео (демо)
Очень простой CSS и HTML, и ваше embed-видео будет масштабироваться в соответствии с шириной страницы:

<div>
	<iframe src="http://player.vimeo.com/video/6929537"frameborder="0"></iframe>
</div>
.video {
	position: relative;
	padding-bottom: 56.25%;
	height: 0;
	overflow: hidden;
}
.video iframe,  
.video object,  
.video embed {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
2. Максимальная и минимальная ширина (демо)
Max-width помогает определить максимально возможную ширину объекта. В примере ниже ширина div’а — 800 пикселей при возможности, но не более 90% ширины:

. container {
	width: 800px;
	max-width: 90%;
}

Так же можно масштабировать изображение:

img {
	max-width: 100%;
	height: auto;
}

Такая конструкция будет работать в IE 7 и IE 9, а для IE 8 делаем такой хак:

@media \0screen {
  img { 
  	width: auto; /* for ie 8 */
  }
}

Min-width — противоположность max-width, позволяет задать минимальную ширину объекта. В примере ниже благодаря min-width масштабируется текстовое поле:

3. Относительные значения (демо)
Если в адаптивной верстке использовать относительные значения в нужных местах, можно значительно сократить CSS код страницы. Ниже представлены примеры.

Относительный margin
Пример верстки вложенных комментариев, где вместо абсолютных значений используются относительные. Как видно из скриншота, второй способ гораздо читабельнее:

Относительный размер шрифта
При использовании относительных значений (em или %) шрифта наследуются также относительные значения межстрочного пространства и отступов:

Относительный padding
На скриншоте ниже хорошо видно преимущества относительных значений padding перед абсолютными:

4.
Трюк с overflow:hidden (демо) Можно очистить float от предыдущего элемента и оставить контент внутри контейнера, используя overflow:hidden, что бывает очень полезно в адаптивной разметке. Наглядно — в демо.

5. Перенос слов (демо)
При помощи CSS можно переносить непереносимые текстовые конструкции:

.break-word {
		word-wrap: break-word;
}

Адаптивная вёрстка в CSS, media запросы

Главная > Учебник CSS >

В этой теме мы рассмотрим вёрстку страницы обычного сайта. Есть сайты которые выглядят иначе, и вёрстка их страниц делается по-другому. Но тот тип вёрстки, который мы рассмотрим, является самым распространённым.

Элементы сайта

Страница сайта состоит из нескольких частей. Они указаны на следующем рисунке.

Рассмотрим эти элементы.

Header — это шапка сайта. Обычно он содержит название сайта, логотип и изображение. Желательно, чтобы название или логотип были ссылкой на главную страницу. Ещё на нём могут быть дополнительные элементы, значимые для всего сайта. Например, форма авторизации.

Menu bar. Также его называют side bar.Это узкая колонка, расположенная слева или справа от контента. В ней содержится главное меню сайта. Также в ней может быть меню раздела и другая дополнительная информация. Некоторые сайты имеют такие колонки и слева и справа.

Top menu — в верхней части сайта может находиться горизонтальное меню. Оно может дублировать главное меню или отличаться от него. Иногда его делают выпадающим. При наведении на любой пункт выпадает вложенное в него меню.

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

Content — основная колонка страницы. В ней находится содержимое сайта, например статья.

Footer — подвал сайта. В нём располагаются данные о владельце сайта и авторских правах, счётчики посещаемости, ссылки на группы сайта в социальных сетях.

Также в нём могут быть ссылки на важные страницы сайта.

Чтобы показать особое значение и возможности какой-то части страницы, для неё можно установить свой вид курсора.

Табличная и блочная вёрстка

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

Адаптивная вёрстка

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

Но это подходит не всем, ведь по сути это два сайта с разной вёрсткой и работать с этими сайтами придётся по отдельности. Более универсальный способ — адаптивная вёрстка. Это такая вёрстка, которая позволяет страницам адаптироваться к разным размерам экранов. Размеры элементов адаптивной вёрстки зависят от размера экрана. Многие отступы и размеры указываются в процентах. Элементы могут иметь разное расположение.

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

Вёрстку сайта нужно проверять на экранах всех размеров. Нужно убедиться, что при малых размерах элементы страницы не пересекаются. Желательно делать размер текста не меньше 16 пикселей. Текст меньшего размера с трудом читается на мобильных телефонах.

Media запросы

Иногда для отдельных элементов страницы нужно установить разный стиль в зависимости от размеров экрана. Это делается с помощью media запросов. Media запрос создаётся так:

  • сначала идёт ключевое слово @media
  • затем можно указать типы устройств и условия, при которых должен применяться стиль
  • затем в фигурных скобках пишется обычный CSS код

Если устройство соответствует условиям, указанным в медиа запросе, то код будет применён к элементам страницы. Пример:

Стиль:

+

7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

img
  {
  width: 900px;
  }
@media screen and (max-width: 900px)
  {
  img
    {
    width: 600px;
    }
  }
@media screen and (max-width: 600px)
  {
  img
    {
    width: 400px;
    }
  }

HTML код:

28

<img src="image. jpg" alt="Разные размеры">

В строках 11 и 18 созданы медиа запросы. После ключевого слова @media идёт указание тапа устройства. screen это персональные и планшетные компьютеры и мобильные телефоны. Если для Вас тип устройства не имеет значения, то его можно не указывать. Затем следует оператор and, связывающий несколько условий. Далее идёт указание условия, при котором применяется стиль. Обычно условия — это минимальные и максимальные размеры экранов.

Этот код работает так: если страница открыта на большом экране компьютера, то применяется стиль вне media запросов. Он написан в самом начале. Если уменьшить экран до 900 пикселей то картинка становится меньше. А если уменьшить экран до 600 пикселей, то картинка будет ещё меньше. Попробуйте уменьшить ширину окна браузера и вы увидите результат работы медиа запросов.

В нашем примере просто заданы разные размеры картинки. На практике различия в стиле бывают значительнее. Блоки имеют разное расположение, некоторые элементы скрывают со страницы. Но нужно стремиться, чтобы во всех вариантах адаптивной вёрстки просматривать сайт было удобно.

Медиа-запросы адаптивного веб-дизайна

❮ Назад Далее ❯


Что такое медиазапрос?

Медиа-запрос — это метод CSS, представленный в CSS3.

Он использует правило @media для включения блока свойств CSS, только если определенное условие верно.

Пример

Если окно браузера имеет размер 600 пикселей или меньше, цвет фона будет светло-голубым:

@media only screen and (max-width: 600px) {
  body {
цвет фона: голубой;
  }
}

Попробуйте сами »


Добавить точку останова

Ранее в этом руководстве мы создали веб-страницу со строками и столбцами, и она был отзывчивым, но плохо смотрелся на маленьком экране.

Медиа-запросы могут помочь в этом. Мы можем добавить точку останова, где некоторые части дизайна будут вести себя по-разному на каждой стороне экрана. точка останова.

Рабочий стол

Телефон

Используйте медиа-запрос, чтобы добавить точку останова на 768px:

Пример

Когда экран (окно браузера) становится меньше 768 пикселей, каждый столбец должен иметь ширину 100%:

/* Для рабочего стола: */
.col-1 {ширина: 8,33%;}
.col-2 {ширина: 16,66%;}
.col-3 {ширина: 25%;}
.col-4 {ширина : 33,33%;}
.col-5 {ширина: 41,66%;}
.col-6 {ширина: 50%;}
.col-7 {ширина: 58,33%;}
.col-8 {ширина: 66,66 %;}
.col-9 {ширина: 75%;}
.col-10 {ширина: 83,33%;}
.col-11 {ширина: 91,66%;}
.col-12 {ширина: 100%;}

Только экран @media и (макс. ширина: 768 пикселей) {
  /* Для мобильных телефонов: */
[class*=»col-«] {
    ширина: 100 %;
  }
}

Попробуйте сами »



Always Design for Mobile First другое устройство (это ускорит отображение страницы на небольших устройствах).

Это означает, что мы должны внести некоторые изменения в наш CSS.

Вместо изменения стилей, когда ширина становится равной меньше , чем 768 пикселей, мы должны изменить дизайн, когда ширина станет на

больше , чем 768 пикселей. Это сделает наш дизайн Mobile First:

Пример

/* Для мобильных телефонов: */
[class*=»col-«] {
  width: 100%;
}

@media только экран и (min-width: 768px) {
  /* Для рабочего стола: */
  .col-1 {ширина: 8,33%;}
  .col-2 {ширина: 16,66%;}
  .col-3 {ширина: 25%;}
  .col -4 {ширина: 33,33%;}
  .col-5 {ширина: 41,66%;}
  .col-6 {ширина: 50%;}
  .col-7 {ширина: 58,33%;}
  .col-8 {ширина: 66,66%;}
  .col-9 {ширина: 75%;}
  . col-10 {width: 83,33%;}
  .col-11 {width: 91,66%;}
  .col-12 {width: 100%;}
}

Попробуйте сами »


9000 5 Еще одна точка останова

Вы можете добавить столько точек останова, сколько захотите.

Мы также вставим точку останова между планшетами и мобильными телефонами.

Рабочий стол

планшет

Телефон

Мы делаем это, добавляя еще один медиа-запрос (с разрешением 600 пикселей) и набор новых классов для устройств размером более 600 пикселей. (но меньше 768 пикселей):

Пример

Обратите внимание, что два набора классов почти идентичны, единственный разница в названии ( col- и col-s-):

/* Для мобильных телефонов: */
[class*=»col-«] {
  width: 100%;
}

Только экран @media и (минимальная ширина: 600 пикселей) {
/* Для планшетов: */
  .col-s-1 {ширина: 8,33%;}
  .col-s-2 {ширина: 16,66%;}
  .col-s-3 {ширина: 25%;}
  .col-s-4 { ширина: 33,33%;}
  .col-s-5 {ширина: 41,66%;}
  .col-s-6 {ширина: 50%;}
  .col-s-7 {ширина: 58,33%;}
  . col-s-8 {ширина: 66,66%;}
  .col-s-9 {ширина: 75%;}
  .col-s-10 {ширина: 83,33%;}
  .col-s-11 {ширина: 91,66%;}
  .col-s-12 {width: 100%;}
}

Только экран @media и (min-width: 768px) {
  /* Для рабочего стола: */
  . col-1 {width: 8,33%;}
  .col-2 {ширина: 16,66%;}
  .col-3 {ширина: 25%;}
  .col-4 {ширина: 33,33%;}
  .col-5 {ширина: 41,66%;}
  . col-6 {ширина: 50 %;}
  .col-7 {ширина: 58,33 %;}
  .col-8 {ширина: 66,66 %;}
  .col-9 {ширина: 75 %;}
  .col- 10 {width: 83,33%;}
  .col-11 {width: 91,66%;}
  .col-12 {width: 100%;}
}

Может показаться странным, что у нас есть два набора одинаковых классов, но это дает нам возможность в HTML , чтобы решить, что произойдет со столбцами в каждом точка останова:

Пример HTML

Для рабочего стола:

Первый и третий разделы будут занимать по 3 столбца каждый. Средняя часть будет охватывать 6 столбцов.

Для планшетов:

Первый раздел будет состоять из 3 столбцов, второй — из 9, а третий раздел будет отображаться под первыми двумя разделами и из 12 столбцов:


  < div>…

 
. ..

  <дел class="col-3 col-s-12">…

Попробуйте сами »


Типичные контрольные точки устройств

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

Пример

/* Очень маленькие устройства (телефоны, 600 пикселей и меньше) */
@media только экран и (макс. ширина: 600 пикселей) {…}

/* Маленькие устройства (портретные планшеты и большие телефоны, 600 пикселей и выше) */
Только экран @media и (min-width: 600px) {…}

/* Устройства среднего размера (планшеты с горизонтальной ориентацией, 768px и выше) */
Экран только @media и (min-width: 768px) { …}

/* Большие устройства (ноутбуки/рабочие столы, 992px и выше) */
@media only screen and (min-width: 992px) {…}

/* Очень большие устройства (большие ноутбуки и настольные компьютеры, 1200px и выше) */
Только экран @media и (min-width: 1200px) {. ..}

Попробуйте сами »


Ориентация: Книжная/Пейзажная

Медиа-запросы также можно использовать для изменения макета страницы в зависимости от ориентация браузера.

У вас может быть набор свойств CSS, которые будут применяются, когда окно браузера шире своей высоты, так называемый «пейзаж» ориентация:

Пример

Веб-страница будет иметь светло-голубой фон, если ориентация в ландшафтном режиме:

Только экран @media и (ориентация: пейзаж) {
  тело {
цвет фона: голубой;
  }
}

Попробуйте сами »


Скрытие элементов с помощью медиазапросов

Другое распространенное использование медиазапросов — скрытие элементов на экранах разных размеров:

Я буду скрыт на маленьких экранах.

Пример

/* Если размер экрана меньше 600 пикселей, скрыть элемент */
@media только экран и (максимальная ширина: 600 пикселей) {
  div.example {
дисплей: нет;
  }
}

Попробуйте сами »


Изменение размера шрифта с помощью мультимедийных запросов

Вы также можете использовать мультимедийные запросы для изменения размера шрифта элемента на различные размеры экрана:

Пример

/* Если размер экрана 601px или больше, установите размер шрифта
на 80px */
@media only screen и (min-width: 601px) {
  div. example {
размер шрифта: 80px;
  }
}

/* Если размер экрана 600 пикселей или меньше, установите размер шрифта

на 30px */
Только экран @media и (максимальная ширина: 600 пикселей) {
  div.example {
размер шрифта: 30px;
  }
}

Попробуйте сами »


CSS @media Reference

Полный обзор всех типов мультимедиа и функций/выражений см. Правило @media в нашем справочнике по CSS.

❮ Предыдущий Далее ❯

CSS: Адаптивные макеты — Учебная программа по проектированию интерфейсов

Цели обучения

  • Дайте определение четырем типам макетов страниц и объясните преимущества и недостатки каждого из них.0292
  • Понимать медиа-запросы и объяснять, как они обеспечивают поведение, которое они делают

Словарь

  • Макет страницы — размер и расположение элементов на странице. Примеры: статические, жидкие, адаптивные и реагирующие 90 292.
  • Media Query Функция CSS, позволяющая применять стили на основе логической логики
  • Точка останова Конкретные суммы, на которые ссылаются мультимедийные запросы
  • Метатег области просмотра HTML-тег, используемый для описания атрибутов, влияющих на отображение страницы

Введение

В 2019 году 53% веб-трафика во всем мире генерируется мобильными устройствами. Наши продукты живут в Интернете, поэтому мы, как разработчики, обязаны убедиться, что независимо от того, как пользователь получает доступ к нашим продуктам, он может успешно их использовать.

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

На этом занятии мы углубимся в адаптивные макеты страниц и будем использовать медиа-запросы для управления содержимым страницы на всех размерах экрана.

Исследование: макеты страниц

Макет страницы относится к расположению и размеру визуальных элементов на веб-странице. Вы и ваш партнер изучите четыре основных типа макета страницы в блоге.

  • Какие характеристики являются общими для макетов? Какая разница?

Просмотр макетов страниц

Статический макет страницы

  • Имеет фиксированную ширину и располагается в центре экрана.
  • Работает только с одним размером экрана
  • Не работает на экранах меньшего или большего размера, чем исходный дизайн.

Жидкий макет страницы

  • Также известен как «гибкий» макет страницы.
  • Использует относительные единицы вместо фиксированных единиц (например, проценты вместо пикселей).
  • Заполняет всю страницу независимо от ширины экрана или браузера
  • Не требует столько размышлений и планирования, как другие методы, что делает его быстрым и простым в реализации.
  • Однако этот тип макета не работает при размерах экрана, значительно больших или меньших, чем исходный дизайн.

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

  • Использует медиа-запросы CSS для определения ширины браузера и соответствующей корректировки макета.
  • В отличие от гибкого макета, здесь используются фиксированные единицы измерения, такие как пиксели, для определения ширины.
  • Ведет себя как ряд статических макетов, определяемых определенными медиа-запросами.
  • Часто требуется меньше времени, чем адаптивные макеты, и они отлично подходят для быстрого обновления существующего статического макета, чтобы сделать его совместимым с мобильными устройствами.
  • Недостаток заключается в том, что ширина экрана, находящаяся между установленными контрольными точками, может показаться неудобной, а содержимое выглядит либо слишком переполненным, либо слишком большим.

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

  • Лучшее решение, потому что оно сочетает в себе лучшие черты гибкого макета и адаптивного макета.
  • Обеспечивает максимальное удобство для пользователей при переходе между устройствами и размерами экрана.
  • Использует как относительные единицы, так и медиа-запросы, позволяет сайту плавно переходить от одного размера экрана к другому.

Какие изменения в дизайне помогают сделать сайт адаптивным?

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

Медиа-запросы и точки останова

Мы знаем, что хотим создать сайт, который хорошо работает на экранах различных размеров, но мы продолжаем говорить о «медиа-запросах» и «установке точек останова». Что это значит?

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

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

Точки останова относятся к ширине, на которую ссылаются медиазапросы. Когда медиа-запрос истинен (т. е. когда размер экрана соответствует размеру, указанному в точке останова), будут применены стили, указанные в этом медиа-запросе. Может показаться естественным устанавливать точки останова для определенных устройств; а на самом деле рекомендуется выбирать точку останова, когда необходимо изменить макет содержимого.

Повернись и говори

 Экран @media и (минимальная ширина: 55em) {
  тело {
    фон: пурпурный;
  }
}
Экран @media и (максимальная ширина: 40em) {
  тело {
    фон: бирюзовый;
  }
}
 

Просмотрите два медиа-запроса, написанные выше. Предскажите результат этого кода. Будьте готовы поделиться!

Давайте рассмотрим

  • В первом примере точка останова установлена ​​для экранов 55em (примерно 900px) и больше. ( Примечание: min-width используется для определения стилей в определенной точке останова и больше )
  • Во втором примере точка останова установлена ​​для экранов размером 40em (приблизительно 700 пикселей) и меньше. ( Примечание: max-width используется для определения стилей в определенной точке останова и меньше )
  • При размере экрана 55 em или более фон становится пурпурным, а при размере экрана 40 em или менее — бирюзовым.
  • В промежутке между фоном используется белый цвет, указанный в CSS.

См. перо Демонстрация медиа-запросов от Turing School (@turing-school) на КодПене.

Метатег окна просмотра

Прежде чем писать какие-либо запросы, вам нужно добавить метатег области просмотра в заголовок вашего основного html-файла (который часто называется index.html ). Это гарантирует, что сайт будет работать на устройствах. Без него вы можете обнаружить, что ваш адаптивный сайт работает локально и на симуляторах устройств, но не на самом устройстве.

Метатег viewport дает браузеру инструкции по управлению размерами страниц и устанавливает ширину страницы в зависимости от ширины экрана устройства, на котором она просматривается.

Вот как выглядит тег:

 
 

Что это делает:

  • Ширина: Сделайте ширину страницы равной ширине любого экрана, на котором она отображается.
  • Исходный масштаб: Управляет уровнем масштабирования при первой загрузке страницы.
Оставить комментарий

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

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