Пропорциональная модульная сетка
При работе над адаптивным дизайном всегда возникает вопрос с гибкими сетками. Очевидно, что если размер экрана становится больше, шаблон должен изменяться. Как это сделать наилучшим образом?
Проблема
Множество решений, используемых на текущий момент, содержат громоздкий код для переопределения свойств CSS в точках излома. Особенно актуальным такой подход становится при использовании полей, выраженных в процентах – 10% для мобильного устройства существенно меньше, чем 10% для монитора. Вложенные колонки также трудно реализовать, так как придется провести ряд вычислений чтобы выровнять поля. Процесс несколько упрощается при использовании препроцессора Less и Sass, которые делают вычисления для вас, но использование цифр может утомить.
Решение
Воспользуемся свойством CSS box-sizing
для решения, которое позволит использовать фиксированные поля (ems/rems)
вместе с резиновыми колонками. Расстояние между колонками будет оставаться идентичным точке излома в соответствии с базой font-size
.
Колонки, которые определяются пропорционально (например, одна вторая, две третьих) могут использоваться столько раз, сколько нужно, даже для вложенных схем.
Как работает решение
В решении нет класса class="first"
для добавления к колонке, так как поле для первой колонки имеет отрицательное значение:
.grid-wrap { margin-left: -3em; /* такое же как и поле */ overflow: hidden; clear: both; } .grid-col { float: left; padding-left: 3em; /* поле между двумя колонками */ width: 100%; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
Классы, которые используются для каждой колонки для определения пропорций, устанавливаются для каждой точки излома:
<div class="grid-wrap"> <div class="grid-col bp1-col-one-half bp2-col-two-thirds"> <p>Колонка 1</p> </div> <div class="grid-col bp1-col-one-half bp2-col-one-third"> <p>Колонка 2</p> </div> </div>
В данном примере каждая колонка grid-col
начинает использоваться как единственная колонка. Класс bp1-col-one-half
означает, что колонка становится половинкой в точке излома 1. Класс bp2-col-two-thirds
означает, что колонка станет шириной две трети в точке излома 2. И так далее.
Все просто, одна система модульной сетки, один набор классов для всех случаев!
bp2-col
просто префикс в точке излома. Можно использовать что угодно, но номер точки излома более нагляден для разработчика, чем имя устройства, например tablet-col
.
Internet Explorer
Очевидно, что IE8 и старше не поддерживает @media
, а IE7 и старше не поддерживает box-sizing
. Но в комплект исходников входит специальная таблица стилей для IE, в которой повторяется содержание медиа запросов (для IE8) и немного модифицируется сетка для IE7 и страше. Оба варианта имеют фиксированную ширину 960px, так как браузеры используются на десктопах.
Что включено в пример
Пример состоит из шести частей с разной конфигурацией сетки, включая блочный вариант и маленькие поля (только добавление одного класса к .grid-wrap
). Файлы SASS облегчают компиляцию вашей собственной сетки с помощью изменения одного макроса для точки излома.
Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/6GnOFEyrl0Y/lessons.php
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 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 » Интеграция с Яндекс Еда
- 2024-07-26 » Интеграция с Эквайринг
- 2024-07-26 » Интеграция с СДЕК
- 2024-07-26 » Интеграция с Битрикс-24
- 2024-07-26 » Интеграция с Travelline
- 2024-07-26 » Интеграция с Iiko
- 2024-07-26 » Интеграция с Delivery Club
- 2024-07-26 » Интеграция с CRM
- 2024-07-26 » Интеграция с 1C-Бухгалтерия
- 2024-07-24 » Что такое сторителлинг: техники и примеры
- 2024-07-17 » Ошибка 404: что это такое и как ее использовать для бизнеса
- 2024-07-03 » Размещайте прайс-листы на FarPost.ru и продавайте товары быстро и выгодно
- 2024-07-01 » Профилирование кода в PHP
- 2024-06-28 » Изучаем ABC/XYZ-анализ: что это такое и какие решения с помощью него принимают
- 2024-06-17 » Зачем вам знать потребности клиента
- 2024-06-11 » Что нового в работе Яндекс Метрики: полный обзор обновления
- 2024-06-11 » Поведенческие факторы ранжирования в Яндексе
- 2024-06-11 » Скорость загрузки сайта: почему это важно и как влияет на ранжирование
Всегда храни верность своему начальнику - следующий, может быть еще хуже... |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.