Media Query в CSS Другим важным элементом в построении адаптивого дизайна являются правила Media Query, которые поволяют определить стиль в зависимости от размеров браузера пользователя. Например, некоторые элементы могут В CSS2 уже было решение в виде правила media, которое позволяет указать устройство, для которого используется данный стиль: Адаптивная веб-страница ...................... Правило media="handheld" указывает, что стили в mobile.css будут применяться к мобильным устройствам, в то время как правило media="screen" применяется к десктопным браузерам. Однако многие современные мобильные браузеры по умолчанию считают, что страница предназначена для десктопов, поэтому в любом случае применяет правило media="screen". Поэтому на подобное решение не стоит полагаться. Для решения этой проблемы в CSS3 были введен механизм CSS3 Media Query. Например, чтобы применить стиль только к мобильным устройствам мы можем написать так: Адаптивная веб-страница ................................ Значение атрибута media (max-device-width:480px) говорит нам о том, что стили из файла mobile.css будут применяться к тем устройствам, максимальная ширина экрана которых составляет 480 пикселей - то есть фактически это и есть мобильные устройства. С помощью ключевого слова and можно комбинировать условия, например: Данный стиль будет применяться, если ширина браузера находится в диапазоне от 481 до 768 пикселей. С помощью директивый @import можно определить один css-файл и импортировать в него стили для определенных устройств: @import url(desctop.css); @import url(tablet.css) (min-device-width:481px) and (max-device-width:768); @import url(mobile.css) (max-device-width:480px); Также можно не разлелять стили по файлам, а использовать правила CSS3 Media Query в одном файле css: body { background-color: red; } /*Далее остальные стили*/ @media (max-device-width:480px){ body { background-color: blue; } /*Далее остальные стили*/ } Применяемые функции в CSS3 Media Query: aspect-ratio: отношение ширины к высоте области отображения (браузера) device-aspect-ratio: отношение ширины к высоте экрана устройства max-width/min-width и max-height/min-height: максимальная и минимальная ширина и высота области отображения (браузера) max-device-width/min-device-width и max-device-height/min-device-height: максимальная и минимальная ширина и высота экрана мобильного устройства orientation: ориентация (портретная или альбомная) Например, мы можем задать разные стили для разных ориентаций мобильных устройств: /*Стили для портретной ориентации*/ @media only screen and (orientation: portrait){ } /*Стили альбомной ориентации*/ @media only screen and (orientation: landscape){ } Таким образом, мы меняем лишь определение стилей в зависимости от устройства, а сами стили css по сути остаются теми же, что мы используем для создания обычных сайтов. Как правило, при определении стилей предпочтение отдается стилям для самых малых экранов - так называемый подход Mobile First, хотя это необязательно. Например, определим следующую веб-страницу: Адаптивная веб-страница

Адаптивная веб-страница

Сначала идут общие стили, которые актуальны прежде всего для мобильных устройств с небольшими экранами. Затем идут стили для устройств с экранами средней ширины: фаблеты, планшеты. И далее идут стили для десктопов. И например, на эмуляторе Opera Mobile при эмуляции устройства с шириной в 480 пикселей страница приобретет красный цвет: Правила media query в CSS 3 А в браузере обычного компьютера страница будет иметь синий цвет, как и определено в стилях: Правила media query в HTML 5 Глава 1. Введение в HTML5 Глава 2. Элементы в HTML5 Глава 3. Работа с формами Глава 4. Семантическая структура страницы Глава 5. Основы CSS3. Селекторы Глава 6. Основы CSS3. Свойства Глава 7. Создание макета страницы и верстка Глава 8. Трансформации, переходы и анимации Глава 9. Адаптивный дизайн Глава 10. Мультимедиа Глава 11. Canvas Глава 12. Flexbox Глава 13. Grid Layout Глава 14. Дополнительные статьи Об учебнике