Дизайн для мобилок и 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
Новые статьи и публикации
- 2025-03-14 » SPF-запись
- 2025-03-07 » SEO на маркетплейсах: как оптимизировать карточку товара для поисковой выдачи
- 2025-02-18 » Топ-10 бесплатных нейросетей для генерации изображений: лучшие ии генераторы 2024 года
- 2025-02-11 » Критическая уязвимость в 1С-Битрикс
- 2025-02-11 » Google Search Console: руководство для начинающих вебмастеров
- 2025-02-11 » Методы измерения результативности рекламных кампаний: плюсы и минусы
- 2025-02-11 » Тренды SEO в 2025 году
- 2025-02-10 » Свой Google в локалке. Ищем иголку в стоге сена
- 2025-01-29 » SEO — это комплексная работа. Шесть главных факторов ранжирования сайтов
- 2025-01-29 » Гайд для главной страницы e-commerce сайта: как оформить, чтобы повысить конверсию
- 2025-01-20 » Krea AI выпустила бесплатную функцию преобразования изображений в 3D-объекты — их можно вращать и вписывать в фотографии
- 2025-01-19 » Отзывы на Яндекс Картах: как пройти модерацию
- 2025-01-15 » Топ-6 лучших российских нейросетей, в которых можно генерировать тексты и изображения бесплатно и без VPN
- 2025-01-14 » 15 бесплатных способов узнать, чем интересуется ваша аудитория
- 2025-01-11 » Бездепозитные бонусы в казино за регистрацию с выводом: особенности и возможности получения
- 2025-01-09 » Новая модель LAM способна выполнять задачи в Word
- 2024-12-26 » Универсальный промпт для нейросети: как выжать максимум из ChatGPT, YandexGPT, Gemini, Claude в 2025
- 2024-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
"Я придерживаюсь простого правила: все дела этого дня должны быть сделаны в этот день". Герцог Веллингтон. |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.
Или напишите нам в WhatsApp
Или напишите нам в WhatsApp