Я всегда использую CSS-фреймворк, который я сделал из нескольких базовых таблиц стилей.
Сброс.css, чтобы убедиться, что все поля, отступы, границы и т. Д. Одинаковы во всех браузерах. Затем typography.css, чтобы установить несколько правил для всех шрифтов, размеров, цветов и т. Д. Для всех стандартных элементов, таких как абзацы, списки, заголовки и т. Д. Затем Forms.css, чтобы заботиться о формах, и, наконец, wireframe.css, который Позвольте мне создать страницу, основанную на Святом Граале A List Apart: http://www.alistapart.com/articles/holygrail/
В моем случае каркас состоит из заголовка, подзаголовка, контейнера и нижнего колонтитула. В контейнере я могу указать один, два из трех столбцов, присвоив ему соответствующий класс.
С этой базовой настройкой я начинаю писать HTML очень глобально. Конечно, деления для разделов каркаса, а затем деления внутри этих делений. Обычно я заполняю заголовок h1 и списком с основными навигационными элементами (в зависимости от дизайна), боковыми панелями с одним или несколькими блоками списков и / или абзацев и основным столбцом с несколькими абзацами. Это просто для того, чтобы немного заполнить страницу, даже если содержание все еще бессмысленно.
Затем я начинаю брать каждый элемент (например, меню навигации), сначала записывая HTML-код для него, как если бы он был показан в браузере без таблиц стилей. Убедитесь, что с семантикой все в порядке, используйте h1 для заголовков, p для абзаца, ul / ol для списков и т. Д. Затем, когда HTML этого конкретного элемента готов и выглядит хорошо в браузере без стилей, я начинаю применять css.
Все стили, которые я добавляю после настройки стилей фреймворка, помещаются в отдельную таблицу стилей, являющуюся main.css. Я обычно делю эту таблицу стилей так же, как и страницу, сначала блок с классами, которые используются на всей странице (например, повторяющиеся блоки, которые служат нескольким целям), а затем один за другим блокируют стиль для заголовка и его содержимого. , подзаголовок и его содержимое, основной столбец, левая и правая боковая панель и нижний колонтитул.
Этот процесс заставляет меня задуматься о каждом элементе html, прежде чем даже применять к нему стиль, так что базовый html семантически корректен, но, предварительно определив основную среду CSS, я по крайней мере буду с чем работать.
(пример в работе можно увидеть по адресу pkr.nl/template/, где вкладка форума в верхнем меню может быть нажата для другой страницы с меньшим количеством столбцов).