Литмир - Электронная Библиотека
A
A

Рис. 2.11. Работа над шаблоном закончена! Если, конечно, не принимать во внимание то, как он должен выглядеть в самом конце

Так как же нам превратить эти блоки

.
main
и
.
other
в нужные колонки? У нас уже есть схема контента и основная разметка, теперь давайте внимательнее взглянем на физические параметры сетки в оригинальном дизайне (рис. 2.12).

Отзывчивый веб-дизайн - i_019.png

Рис. 2.12. Теперь наша страница основана на сетке!

Сама сетка разделена на 12 колонок по 69 пикселей каждая, отделенных друг от друга промежутками шириной в 12 пикселей (

12px
). В сумме колонки и промежутки дают нам полную ширину в
960px
. Сам же блог шириной 900 пикселей отцентрирован по горизонтали в пределах холста.

Вот они, детали высокого уровня. И если мы внимательно рассмотрим две колонки в блоге (рис. 2.13), то увидим, что ширина левой основной колонки (

.main
в нашей разметке) составляет 566 пикселей, в то время как ширина правой вспомогательной (
.other
) – только 331 пиксель.

Отзывчивый веб-дизайн - i_020.png

Рис. 2.13. Давайте-ка изучим детали и измерим ширину внутренних колонок

Что-то слишком много пикселей вокруг, да? И если бы пиксели нас устраивали, мы могли бы просто перенести их в CSS. (Эй! Это очень важно!)

#page {

margin: 36px auto;

width: 960px;

}

.blog {

margin: 0 auto 53px;

width: 900px;

}

.blog.main {

float: left;

width: 566px;

}

.blog.other {

float: right;

width: 331px;

}

Отлично. Мы установили ширину

#page
в
960
пикселей, отцентрировали в ней модуль
.blog
шириной
900
пикселей, задали ширину
.
main (566)
и
.
other (331)
и наконец-то разместили эти колонки рядом. Результат выглядит шикарно (рис. 2.14).

Отзывчивый веб-дизайн - i_021.jpg

Рис. 2.14. Мы избавились от ненужных пикселей, и наш дизайн почти готов. Или нет?

И хотя наш макет идеально совпадает с оригинал-макетом, он получился совсем негибким. Фиксированная ширина в

960px
делает нашу страницу совершенно безразличной к изменениям размеров области просмотра. Иными словами, если ширина окна будет меньше 1024 пикселей, перед читателем появится полоса горизонтальной прокрутки (рис. 2.15).

И нас это, мягко говоря, не устраивает.

Отзывчивый веб-дизайн - i_022.jpg

Рис. 2.15. Дизайн выглядит отлично, но он совсем негибкий. Давайте это исправим

От пикселей к процентам

Вместо того чтобы переносить значения в пикселях из оригинал-макета в CSS, мы должны перевести эти размеры в относительные, пропорциональные значения. В результате мы получим сетку, которая будет трансформироваться в зависимости от области просмотра, причем оригинальные пропорции дизайна останутся неизменными.

Давайте начнем с первого элемента

#page
, который содержит наш макет, и попробуем что-нибудь с ним сделать:

#page {

margin: 36px auto;

width: 960px;

}

Противные, гадкие пиксели. Терпеть их не можем!

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

#page {

margin: 36px auto;

width: 90%;

}

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

#page
в процентах, мы создаем контейнер, который будет увеличиваться и уменьшаться в зависимости от области просмотра (рис. 2.16). И поскольку он отцентрирован по горизонтали, справа и слева останутся отступы по 5%.

Отзывчивый веб-дизайн - i_023.png

Рис. 2.16. Наш контейнер изменяется в размерах при любом изменении размера окна браузера

Пока все идет неплохо. Теперь давайте примемся непосредственно за модуль

.blog
. Чуть ранее, когда мы играли с пикселями, то установили следующее правило:

.blog {

margin: 0 auto 53px;

width: 900px;

}

Теперь вместо величины в пикселях мы должны выразить ширину элемента

.blog
в пропорциональных величинах: описать ее как процент ширины содержащего его элемента. И вот здесь нам снова пригодится формула
target ÷ context = result
.

Из оригинал-макета мы знаем, что ширина нашего блога должна составлять

900px
. Теперь нам нужно представить эту ширину в относительных единицах, процентах ширины родительского элемента для элемента
.blog
. Поскольку блок
.blog
вложен в элемент
#page
, ширина которого в соответствии с оригинал-макетом составляет
960
пикселей, это и есть наш контекст.

Давайте разделим ширину

.blog
(
900
) на его контекст (
960
):

6
{"b":"189369","o":1}