И все же предположим, что мы уже создали все CSS, связанные со шрифтами, фоновыми изображениями и всеми элементами нашего дизайна,
Рис. 2.11.
Работа над шаблоном закончена! Если, конечно, не принимать во внимание то, как он должен выглядеть в самом концеТак как же нам превратить эти блоки .
main
и .
other
в нужные колонки? У нас уже есть схема контента и основная разметка, теперь давайте внимательнее взглянем на физические параметры сетки в оригинальном дизайне (рис. 2.12).Рис. 2.12.
Теперь наша страница основана на сетке!Сама сетка разделена на 12 колонок по 69 пикселей каждая, отделенных друг от друга промежутками шириной в 12 пикселей (12px
960px
. Сам же блог шириной 900 пикселей отцентрирован по горизонтали в пределах холста.Вот они, детали высокого уровня. И если мы внимательно рассмотрим две колонки в блоге (рис. 2.13
), то увидим, что ширина левой основной колонки (.main
в нашей разметке) составляет 566 пикселей, в то время как ширина правой вспомогательной (.other
) – только 331 пиксель.Рис. 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).Рис. 2.14.
Мы избавились от ненужных пикселей, и наш дизайн почти готов. Или нет?И хотя наш макет идеально совпадает с оригинал-макетом, он получился совсем негибким. Фиксированная ширина в 960px
И нас это, мягко говоря, не устраивает.
Рис. 2.15.
Дизайн выглядит отлично, но он совсем негибкий. Давайте это исправимОт пикселей к процентам
Вместо того чтобы переносить значения в пикселях из оригинал-макета в CSS, мы должны перевести эти размеры в относительные, пропорциональные значения. В результате мы получим сетку, которая будет трансформироваться в зависимости от области просмотра, причем оригинальные пропорции дизайна останутся неизменными.
Давайте начнем с первого элемента #page
#page {
margin: 36px auto;
width: 960px;
}
Противные, гадкие пиксели. Терпеть их не можем!
Ну ладно, не такие уж они и отвратительные. Помните: в макетах с фиксированной шириной нет ничего плохого! Но нам нужна более гибкая сетка, поэтому давайте попробуем перевести эти 960 пикселей в проценты.
#page {
margin: 36px auto;
width: 90 %;
}
Должен признаться, что я пришел к этим 90 % без особых на то оснований, просто пробовал различные варианты в окне браузера, а затем выбрал тот, что понравился мне больше всего. Задавая значение элемента #page
Рис. 2.16.
Наш контейнер изменяется в размерах при любом изменении размера окна браузераПока все идет неплохо. Теперь давайте примемся непосредственно за модуль .blog
.blog {
margin: 0 auto 53px;
width: 900px;
}
Теперь вместо величины в пикселях мы должны выразить ширину элемента .blog
target ÷ context = result
.