Дизайн для мобилок и CSS3 медиа запросы
Сегодня разрешение экранов варьирует от 320px (iPhone) до 2560px (большой монитор) или еще больше. Теперь пользователи пользуются интернетом не только через свой PC, но и при помощи мобильных устройств, таких как iPad или Playbook. Таким образом, традиционный подход к фиксированным размерам страницы больше не является дееспособным. Веб-дизайн должен быть адаптирован под всё. Расположение элементов должно корректироваться автоматически, чтобы соответствовать разрешению дисплея. В этом уроке мы покажем вам, как создать кроссбраузерный дизайн, работая с HTML5 и CSS3 медиа запросами.
Сначала посмотрим на результат
Перед тем как начать читать данный урок, я рекомендую вам познакомиться с тем, что нам предстоит сделать. Измените размеры своего окна, чтобы увидеть, что элементы страницы действительно адаптируются под новые параметры (область просмотра браузера).
Обзор
Ширина главного контейнера составляет 980px. Этот размер подогнан для того, чтобы люди с экранами меньше 1024px смогли легко просматривать сайт. Медиа запрос используется для того, чтобы узнать, является ли область просмотра меньше, чем 980px. Если область просмотра меньше 650px, то элементы страницы адаптируются под новые требования и многоколоночное расположение становится одноколоночным.
HTML
Я не собираюсь подробно описывать HTML код. Скажу, что на странице у меня есть "pagewrap" контейнер, который содержит "header", "content", "sidebar", и "footer".
<div id="pagewrap"> <header id="header"> <hgroup> <h1 id="site-logo">Demo</h1> <h2 id="site-description">Site Description</h2> </hgroup> <nav> <ul id="main-nav"> <li><a href="#">Home</a></li> </ul> </nav> <form id="searchform"> <input type="search"> </form> </header> <div id="content"> <article class="post"> blog post </article> </div> <aside id="sidebar"> <section class="widget"> widget </section> </aside> <footer id="footer"> footer </footer> </div>
HTML5.js
Прошу заметить, что я использую HTML5. Internet Explorer, версия которого меньше 9, не поддерживает новые элементы, представленные в HTML5, такие как <header>, <article>, <footer>, <figure> и т.д. Прикрепив файл html5.js, исправит ситуацию и IE будет понимать новые элементы.
<!--[if lt IE 9]> <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> <![endif]-->
CSS
Сброс настроек элементов HTML5
Следующий CSS код сбросит стандартные настройки HTML5 элементов (article, aside, figure, header, footer и т.д.), чтобы элементы стали блочными.
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; }
Основная структура CSS
И тут я не собираюсь подробно останавливаться на коде. Заголовку мы выставляем фиксированную высоту в 160px. Контейнер "content" будет 600px в ширину и т.д.
#pagewrap { width: 980px; margin: 0 auto; } #header { height: 160px; } #content { width: 600px; float: left; } #sidebar { width: 280px; float: right; } #footer { clear: both; }
CSS3 Медиа запросы
Тут будет особенно интересно.
Медиа запросы Javascript
Internet Explorer 8 или более старые версии данного браузера не поддерживает медиа запросы CSS3. Но и на этот раз у нас есть, что подключть - css3-mediaqueries.js.
<!--[if lt IE 9]> <script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script> <![endif]-->
Вставляем CSS Медиа запросы
Создайте новый файл с таблицей стилей для медиа запросов.
<link href="/media-queries.css" rel="stylesheet" type="text/css">
Для экранов, которые меньше 980px (несколько столбцов)
Для данных размеров будут использоваться следующие правила:
pagewrap = сброс ширины до 95%
content = сброс ширины до 60 %
sidebar = сброс ширины до 30 %
Заметка: мы используем процент (%) для того, чтобы элементы были резиновыми.
@media screen and (max-width: 980px) { #pagewrap { width: 95%; } #content { width: 60%; padding: 3% 4%; } #sidebar { width: 30%; } #sidebar .widget { padding: 8% 7%; margin-bottom: 10px; } }
Для экранов, которые меньше 650px (один столбец)
Для данных размеров будут использоваться следующие правила:
header = выставляем значение auto;
searchform = меняем расположения элемента на 5px вверх;
main-nav = выставляем значение static;
site-logo = выставляем значение static;
site-description = выставляем значение static;
content = выставляем значение auto; (для того, чтобы контейнер развернулся на весь экран);
sidebar = сброс ширины к 100% и избавляемся от float.
@media screen and (max-width: 650px) { #header { height: auto; } #searchform { position: absolute; top: 5px; right: 0; } #main-nav { position: static; } #site-logo { margin: 15px 100px 5px 0; position: static; } #site-description { margin: 0 0 15px; position: static; } #content { width: auto; float: none; margin: 20px 0; } #sidebar { width: 100%; float: none; margin: 0; } }
Для экранов, которые меньше 480px
Для данных размеров будут использоваться следующие правила:
html = отключаем корректировку размера текста. По умолчанию, iPhone увеличивает размер текста таким образом, чтобы было удобнее читать. Подобного эффекта мы можем достичь, добавив webkit-text-size-adjust: none;
main-nav= сброс размера шрифта до 90%
@media screen and (max-width: 480px) { html { -webkit-text-size-adjust: none; } #main-nav a { font-size: 90%; padding: 10px 8px; } }
Гибкие изображения
Чтобы сделать изображения гибкими, просто добавьте свойства max-width:100 % и height:auto. Это сработает в IE7, но не в IE8 (как всегда). Для того, чтобы исправить ситуацию, воспользуйтесь следующим трюком. Добавьте строку width:auto\9 для IE8.
img { max-width: 100%; height: auto; width: auto\9; /* ie8 */ }
Гибкое видео
Для видео будем использовать тот же подход, что и в прошлом пункте. По каким-то странным причинам max-width:100 % (для встроенных элементов) не работает в Safari, поэтому тут мы напишем width:100%.
.video embed, .video object, .video iframe { width: 100%; height: auto; }
Инициализируем мета тег для iPhone
По умолчанию Safari уменьшает HTML страницы, чтобы вписаться в экран iPhone. Следующий мета тег сообщит данному браузеру отключить начальный масштаб.
<meta name="viewport" content="width=device-width; initial-scale=1.0">
Финал
Вот и всё, что мы хотели вам показать. Если у вас есть возможность, проверяйте демо на разных устройствах, таких как iPhone, iPad, Blackberry (более новые версии) и телефоны Android.
Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/8tAmpi_CQZk/lessons.php
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-03-13 » Стратегии SEO на 2024 год
- 2024-03-13 » Как использовать анимацию с помощью JavaScript-библиотеки GSAP
- 2024-03-13 » Использование GSAP 3 для веб-анимации
- 2024-03-13 » Cогласование топографической съёмки с эксплуатирующими организациями
- 2024-02-19 » Теряются лиды? Как настроить сквозную аналитику
- 2024-02-17 » Мерч и IT: на что обратить внимание в 2024 году
- 2024-02-16 » Копируем с RSync: основные примеры синхронизации файлов
- 2024-02-15 » Лучшие noCode AI платформы для создания диалоговых ботов
- 2024-02-14 » Факторы ранжирования Google 2024 — исследование Semrush
- 2024-02-12 » Перенос сайта на другой хостинг
- 2024-02-05 » В России сформирован реестр хостинг-провайдеров
- 2024-02-04 » Использование SSH для подключения к удаленному серверу Ubuntu
- 2024-02-03 » Подключаемся к серверу за NAT при помощи туннеля SSH. Простая и понятная инструкция
- 2024-02-02 » Настройка CI/CD для Gitlab-репозитория: схемы и гайд по шагам
- 2024-02-01 » GitLab CI Pipeline. Запуск сценария через SSH на удаленном сервере
- 2024-01-29 » Introduction to GitLab’s CI/CD for Continuous Deployments
- 2024-01-26 » Настройка GitLab CI/CD
- 2024-01-25 » Установка shell gitlab runner
- 2024-01-25 » Установка и регистрация gitlab-runner в docker контейнере
- 2024-01-25 » Переменные Gitlab-Ci
- 2024-01-25 » Настройка CI/CD в GitLab для синхронизации проекта с веб-серверами
- 2024-01-25 » Копирование файлов scp
- 2024-01-21 » Бездепозитные бонусы от казино: обзор условий и правил использования
- 2024-01-18 » Современная обработка ошибок в PHP
- 2024-01-18 » Пример шаблона проектирования MVC в PHP
- 2024-01-18 » Мифический человеко-DevOps
- 2023-12-28 » Google подвел итоги 2023 года в поиске
- 2023-12-28 » 5 ошибок отдела продаж, из-за которых вы теряете клиентов
- 2023-12-28 » Американский суд признал монополию Google на рынках дистрибуции Android-приложений
- 2023-12-28 » Хостинг-провайдер GoDaddy перестанет оказывать услуги пользователям из России
Бог тянет за одну руку, а черт - за обе ноги Буш Вильгельм - (1832-1908) - немецкий поэт и художник |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.