Типографика
Типографику следует выстраивать перед остальными стилями, поскольку она будет влиять на остальные блоки. Для простоты можно считать, что стили типографики будут использоваться в текстах записей сайта. Для удобства сделайте новую запись и разместите в ней коды
[text-demo] [text-normalize]
При просмотре этой записи автоматически будет выведена вся используемая типографика. Это и заголовки H1-H6, и ссылки, и списки, и т.п. Второй код отвечает за вывод типового варианта normalize.html, где используются только «голые» html-тэги.
Изначально следует задать стили для BODY, поскольку от него наследуются остальные. Привожу свой «типовой» вариант типографики (файл 22-typography/typography.less):
// типографика
body {
background: #eee;
font-size: 14px;
color: #444;
line-height: 1.4em;
}
p, hr, ul, ol, dl, blockquote, pre, address, fieldset, figure, table {
margin: 0 0 10px 0;
}
* + p, * + hr, * + ul, * + ol, * + dl, * + blockquote, * + pre,
* + address, * + fieldset, * + figure, * + table {
margin-top: 10px;
}
h1, h2, h3, h4, h5, h6 {
margin: 20px 0;
font-weight: normal;
line-height: 1.4em;
}
* + h1, * + h2, * + h3, * + h4, * + h5, * + h6 {
margin-top: 20px;
}
h1 {
font-size: 2.0em;
color: #8C0000;
}
h2 {
font-size: 1.6em;
color: #555;
}
h3 {
font-size: 1.3em;
color: #444;
}
h4 {
font-size: 1.2em;
color: #444;
}
h5 {
font-size: 1em;
color: #444;
}
h6 {
font-size: 0.9em;
color: #444;
}
a {
color: #0036D9;
text-decoration: none;
&:hover {
color: #FF4C4C;
text-decoration: underline;
}
}
hr {
display: block;
padding: 0;
border: 0;
border-top: 1px solid #aaa;
margin: 30px 0;
}
img {
max-width: 100%;
height: auto;
vertical-align: middle;
}
blockquote {
font-style: italic;
padding-left: 15px;
border-left: 5px solid #aaa;
}
pre {
padding: 10px;
background: #eee;
color: #555;
font-size: 1em;
-moz-tab-size: 4;
tab-size: 4;
& code {
color: inherit;
white-space: pre-wrap;
}
}
code {
color: #FFFF73;
background: #000066;
white-space: nowrap;
display: inline-block;
padding-left: 5px;
padding-right: 5px;
}
Размер шрифта в PX задается в BODY, а для других элементов используется EM. Это позвляет автоматически их масштабировать. Впрочем, при использовании LESS можно сразу рассчитать PX-размеры шрифтов для заголовков через коэффициент от BODY. У подходов есть плюсы и минусы, какой использовать вебмастер решает сам.
Поскольку типографика влияет на множество блоков, например виджеты, компоненты, то возникнет стремление сразу править стили и для этих блоков. Не нужно этого делать! На уровне типографии следует лишь отладить тексты записей. Возьмите за правило, что на этом уровне создаются стили только для «голых» HTML-тэгов, то есть никаких div.info не может быть в принципе.
Ещё раз layout
После отладки типографики возможно придется ещё раз обратиться к модульной сетке. Обратите внимание, что в типографике я указал для BODY серый фон. Условно это можно назвать особенностью дизайна.
Если убрать этот фон, то потеряется смысл во внутреннем отступе контента:
Очевидно, что для такого варианта потребуется вернуться к layout.less и поправить отступы ещё раз.
Прототипирование
На этом этапе следует определиться с дизайном шаблона, хотя бы по основным параметрам: размеры, цвета ссылок, текста и положение основных блоков. Если есть готовый (нарисованный) дизайн, то это несколько упрощает дело. Для таких вариантов следует разбить дизайн на состовляющие блоки и постепенно верстать от одного к другому. Вначале выставлюятся размеры и положение, а после уже цвета и прочие мелкие детали.
Если же готового дизайна нет, но есть некий набросок, то есть смысл выполнить прототипирование, где основная задача — размещение блоков в серых/нейтральных тонах. Тема прототипирования достаточно обширна, поэтому я просто дам ссылку на статью «Учимся использовать каркасы при создании сайта» для ознакомления.
Прототип в теории должен быть полнофункциональным. В нашем случае вопрос решается достаточно просто, поскольку мы прототипируем сразу «по живому» и надобности в «буферных» инструментах нет.
Шаблон может быть универсальным или узконаправленным. К универсальным можно отнести Default-шаблон, поскольку он поддерживает массу компонентов, type_foreach-файлов и прочие сложные выводы данных. На практике, как правило, такой задачи не стоит и можно органичиться лишь выбранными компонентами и одним-двумя выводами данных. Отдельно стоит отметить вывод главной страницы. В MaxSite CMS несколько вариантов вывода, но для клиента возможно будет нужен только один, но какой-то особенный. Решается этот вопрос через unit'ы type-файлов. Хорошим тоном будет скрыть из настроек шаблона незадействованные опции.
Для простоты, думаю, есть смысл остановиться на варианте прототипирования без учета цветового дизайна. Схематично это будет выглядеть так:
Глядя на этот набросок можно определить, что для шапки мы можем использовать компоненты logo-ns-descr-banner и menu-only, а для подвала footer-copy-stat. Выбираем эти компоненты в настройках шаблона.
Clearfix
Микс .clearfix() достаточно важен, поэтому я приведу его код полностью (10-mixins/helpers.less):
.box() { .clearfix() { &:before, &:after { content: " "; display: table; } &:after { clear: both; } } }
Вызывать так:
БЛОК { .box > .clearfix; }
«Супермикс» .box() я использую для группировки миксов так или иначе связанных с размерами, положением или поведением блоков. Часто встречается просто микс «.clearfix» (а не «.box > .clearfix») и это создает конфликт использования, поскольку, как правило, уже существет одноименный css-класс «.clearfix». LESS-компилятору придется дважды включить стили в результирующий код: вначале от микса, после от класса.
Отдельного упоминания clearfix заслуживает в первую очередь из-за особенностей его использования. Существует два варианта. Первый — в родительском блоке указывается clearfix вторым классом:
<div class="блок clearfix"> ... какой-то блок ... </div>
В этом случае следует заранее предопределить класс .clearfix {...}.
Второй вариант без использования класса clearfix:
<div class="блок"> ... какой-то блок ... </div>
То есть блок содержит только свой класс. В стилях же следует указать:
div.блок { .box > .clearfix; ... прочие стили ... }
Существует ещё один вариант, который признан морально устаревшим (из-за современных браузеров, которым больше не требуется данный «костыль»), но до сих пор часто встречается. Задаются стили .clearfix, который размещается в отдельном пустом div-блоке:
<div class="блок"> ... какой-то блок ... <div class="clearfix"></div> </div>
Данный вариант лучше не использовать, а ограничиться первым или вторым (второй — более универсальный, поскольку не завязан на предопределенный css-класс).
Комментариев: 1 RSS
1Аноним31-01-2014 03:47
При использовании [text-demo] не хватает how-to около блоков.
Т.е. как разные элементы использовтаь, где-то есть, где-то нет