Отзывчивый веб-дизайн - [8]

Шрифт
Интервал

), а две колонки примыкают друг к другу без каких-либо отступов или промежутков (рис. 2.19). Определенно, нам нужно еще поработать.

(Конечно, на самом деле мы без них страдаем.)


>Рис. 2.18. Наш заголовок отчаянно нуждается в полях


>Рис. 2.19. Отступы? Мы не признаем никаких отступов!


>Рис. 2.20. Согласно параметрам эскиза, нам нужно задать горизонтальное поле в 48 пикселей с левой стороны заголовка


Ну что ж, давайте начнем с заголовка. В оригинальном макете между началом заголовка и левым краем контейнера есть промежуток в 48 пикселей (рис. 2.20). Мы, конечно, могли бы задать поле (>padding-left) в пикселях или >em:


>.lede {

>padding: 0.8em 48px;

>}


Это хорошее решение. Но это фиксированное значение левого поля (>padding-left) создаст промежуток, который не будет сочетаться со всей «резиновой» сеткой. И когда гибкие колонки будут становиться у́же или шире, это поле проигнорирует остальные пропорции дизайна, и ширина его всегда окажется 48 пикселей (>48px), независимо от того, насколько уменьшился или увеличился весь макет.

Так что мы не пойдем этим путем – мы создадим гибкий отступ. Пока что мы использовали относительные единицы измерения только в отношении ширины различных элементов, но мы можем это сделать и с полями и отступами. И воспользуемся для этого нашей проверенной формулой:


>target ÷ context = result


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

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

2. Задавая гибкое поле для элемента, принимайте за контекст ширину самого элемента. Подумайте о «боксовой» модели, и эти предложения обретут смысл: мы описываем поле в отношении к ширине самого элемента.

Поскольку мы хотим определить поле заголовка, в качестве контекста мы возьмем ширину самого элемента >.lede. Ширина заголовка нам неизвестна, поэтому мы берем ширину модуля блога, то есть >900 пикселей. Снова открываем калькулятор и получаем:


>48 / 900 = 0,0533333333


и переводим результат в:


>.lede {

>padding: 0.8em 5.33333333 %; /* 48px / 900px */

>}


Наши 48 пикселей поля теперь выражены в относительных единицах измерения, как доля ширины заголовка.

С этим расправились, идем дальше. Давайте введем понятие пробела в наш контент. Но сначала вспомним, что каждая колонка фактически содержит меньший модуль: левая колонка >.blog содержит модуль. article, а правая >.other – список >.recent-entries (рис. 2.21).


>Рис. 2.21. Взглянув на колонки, мы можем достаточно быстро определить их ширину


Начнем с последнего. К счастью для нас, тут и делать нечего. Мы знаем ширину элемента (>231px) и ширину содержащей ее колонки (>331px), поэтому можем просто отцентрировать модуль по горизонтали:


>.recent-entries {

>margin: 0 auto;

>width: 69.7885196 %; /* 231px / 331px */

>}


Со статьей (модуль >.article) мы можем поступить так же. Но давайте-ка попробуем кое-что другое.

Помните поле шириной >48px, которое мы задали в заголовке? Наша статья находится в той же колонке (рис. 2.22), поэтому вместо того, чтобы размещать ее по центру контейнера, создадим еще один пропорциональный промежуток.


>Рис. 2.22. У заголовка и статьи одинаковые поля


Целевое значение – >48px. А поскольку мы работаем с относительным полем, в качестве контекста берем ширину самой статьи. Но, опять же, мы не знаем точной ширины модуля >.article, поэтому используем ширину блока >.blog, то есть >566px:


>.article {

>padding: 40px 8.48056537 %; /* 48px / 566px */

>}


Вуаля! Гибкая сетка закончена (рис. 2.23).


>Рис. 2.23. Гибкие поля и отступы! Ура!

Немного отрицательных значений

Давайте обратим внимание на заголовок даты записи в блоге.

Пока он занимает всю ширину записи, а так быть не должно. К этому времени мы уже много чему научились, поэтому особых затруднений не возникнет. На первоначальном дизайне мы видим, что дата расположена слева и занимает одну колонку шириной >69px (вернемся к рис. 2.12). А поскольку дата входит в блок статьи шириной >474px, мы уже знаем и контекст.

Вооружившись этой информацией, напишем небольшой CSS:


>.date {

>float: left;

>width: 14.556962 %; /* 69px / 474px */

>}


Пока все хорошо и гибко. Но мы упустили один ключевой элемент: на данный момент дата расположена вплотную к левому краю статьи и окружена заголовком и текстом (рис. 2.24). А нам нужно вынести ее за пределы контейнера к левому краю целого модуля.


>Рис. 2.24. Прогнило что-то в датском королевстве. (Под «датским королевством» я имею в виду дату записи, а когда я говорю «прогнило», то это значит, что она находится слишком близко к тексту.)


Мы сможем сделать это при помощи отрицательных отступов, причем нам даже не придется менять принцип действий. Как и прежде, все, что нам нужно, – это определить ширину отступа по отношению к ширине контейнера элемента.

На первоначальном дизайне расстояние от левого края даты до левого края статьи составляет 81 пиксель (рис. 2.25). Если бы это был дизайн с фиксированной шириной, эта величина стала бы нашим отрицательным отступом:


>.date {

>float: left;

>margin-left: -81px;

>width: 69 px;

>}


>Рис. 2.25. Необходимо сдвинуть дату влево на 81px (или соответствующий относительный эквивалент)


Рекомендуем почитать
От батутов до попкорна – 2. 100 дел ФАС России против малого и среднего бизнеса

Эта книга – продолжение первой части, вышедшей в 2015 г. Во второй части анализируются 100 дел ФАС России против малого и среднего бизнеса за 2016—2018 гг. Несмотря на принятие 3.07.2016 закона об «иммунитетах» для малого бизнеса от антимонопольного контроля, подходы ФАС изменились незначительно. По основным объектом преследования остаются н самые крупные игроки на рынке. В книге предлагается реформа антимонопольного регулирования, предусматривающая полное прекращение преследования МСП.


Варгань, кропай, марай и пробуй

Нейробиолог Шрини Пиллэй, опираясь на последние исследования мозга, примеры из спорта и бизнеса и истории из своей психологической практики, бросает вызов традиционному подходу к продуктивности. Вместо внимания и сосредоточенности он предлагает специально «расфокусироваться», чтобы стимулировать креативность, развить память, увеличить продуктивность и двигаться к целям. На русском языке публикуется впервые.


Автоматический покупатель

Сразу после выхода в свет эта книга заняла первые места на Amazon среди книг по маркетингу и клиентскому сервису. Формирование источника регулярной выручки для компании – важная задача каждого предпринимателя. Благодаря разнообразию разновидностей бизнес-моделей на основе подписки для каждой отрасли можно найти подходящий вариант. Подписчики в любом случае намного ценнее для компании, чем обычные покупатели. Эта книга для всех, кто хочет построить бизнес-модель, приносящую регулярную прибыль. На русском языке публикуется впервые.


Отношение определяет результат

В бизнесе да и в жизни уже не так важно, что именно вы делаете. Гораздо важнее то, как вы это делаете. Дов Сайдман, основатель и CEO компании LRN, на страницах своей книги убедительно доказывает: моральные «факторы», прежде считавшиеся «факультативными», определяют сегодня ваш успех. Только ориентируясь на нравственные ценности, выстраивая отношения на основании доверия и заботясь о собственной репутации, вы сможете обойти конкурентов и преуспеть в бизнесе и в жизни. Эта книга будет полезна владельцам компаний, руководителям и менеджерам, которые заботятся не только о прибыли, но и о том, какое наследство они оставят своим детям.


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

Инновации являются важнейшим фактором роста. Сегодня, более чем когда-либо, компании должны внедрять инновации, чтобы выжить. Но успешные инновации – это очень непростая задача. Авторы – партнеры всемирно известной консалтинговой компании Simon-Kucher & Partners Strategy & Marketing Consultants знают о чем говорят. Георг Таке – ее генеральный директор, а Мадхаван Рамануджам – партнер в Сан-Франциско. Simon-Kucher & Partners – глобальная консалтинговая компания, насчитывающая 900 профессионалов в 33 офисах по всему миру.


Аттестация персонала – путь к взаимопониманию

«Шпаргалки для менеджеров» – это ваши «карманные консультанты» в решении самых разных проблем деловой, да и повседневной жизни. Ничего лишнего – только самое главное!Аттестация персонала – важнейший этап в работе менеджера, который стремится к взаимопониманию и эффективному сотрудничеству с подчиненными. Здесь вы найдете практические советы о том, как проводить собеседование, выносить объективную оценку и способствовать профессиональному росту сотрудников.