Вёрстка веб-страниц — процесс создания структуры гипертекстового документа (страницы сайта) с использованием HTML-разметки. Обычно вёрстка выполняется с применением таблиц стилей и клиентских скриптов для достижения внешнего вида, максимально похожего на исходный макетКлименко, Р. Веб-мастеринг на 100 % .

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

Работы по вёрстке сайта часто включаются в этап сборки сайта, на котором завершается формирование его функционала и внешнего вида.

История развития вёрстки веб-страниц Тим Бернерс-Ли, работая в Европейском институте физики частиц, придумал язык, который сосредоточился не на средствах оформления, а на логике разметки текста. Некоторое время страницы оформлялись в так называемом «академическом дизайне», который состоял исключительно из текста, например, lib.ru.

С появлением браузера Netscape ситуация изменилась. Разработчики браузера внедрили нестандартные для HTML теги, призванные улучшить внешний вид документа. Браузер был настолько распространённым, что нестандартные теги не вызывали беспокойств: не было смысла волноваться о том, что другие браузеры не поддерживают эти теги, когда только 10% посетителей пользовались другими браузерами. Сайты перестали разрабатываться в «академическом» стиле. Дизайн стал важен, а значит, потребовалась более сложная вёрстка.

С середины 1990-х годов MS Internet Explorer захватывал всё большую долю рынка. Подходы разработчиков браузеров различались, также отличался набор поддерживаемых технологий. Всё это создавало дополнительные неудобства для разработчиков сайтов, увеличивая время разработки.

Во время борьбы за рынок на смену устаревающим и плохо поддерживающим стандарты Netscape 4 и Internet Explorer 4 (IE 4) пришли пятые версии браузеров. IE 5 должна была не просто исправить ошибки предшественника, но и улучшить поддержку стандартов CSS. Microsoft приняла это решение, поскольку вошла в группу W3C. В процессе разработки разница в отображении сайтов стала настолько значительной (а часть сайтов вовсе перестала работать), что разработчикам пришлось создать специальный «режим совместимости». В этом режиме браузер работал «по старинке». Для использования режима поддержки стандартов необходимо было в HTML-код добавить элемент <!DOCTYPE html>. Идея с режимом совместимости позднее была перенята другими браузерами (например, Mozilla, Safari, Opera и т. д.). С развитием технологий разновидностей doctype стало слишком много; только к пятой версии HTML W3C предложил использовать короткую запись, унифицировав стандарт.

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

В 1998 году появилась спецификация Cascading Style Sheets Level 2 (CSS2), а затем и CSS2.1, что позволило выносить код оформления блоков в отдельные файлы и использовать его на всех страницах сайта, а также кэшировать этот , что ускоряло загрузку страниц. Развитие этой технологии и поддержка со стороны браузеров привели к использованию блочной вёрстки вместо таблиц.

Этапы вёрстки

Как правило, верстальщик получает от дизайнера утверждённый дизайн-макет страницы. Далее он анализирует полученный макет, разбивает его на горизонтальные линии (полосы) — «этажи». Каждый «этаж» анализируется отдельно и разбивается на прямоугольные блоки — колонки.

После этого происходит процесс вёрстки отдельных строк и столбцов.

После завершения вёрстки страница проверяется на кроссплатформенность. В общем случае можно задавать следующие вопросы:

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

Критические исправления вносятся в документ, и проверка повторяется с самого начала.

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

Многообразие форматов

Основным вопросом в вёрстке является отображение при различной ширине рабочего пространства.

Вёрстка различается по подходам к этому вопросу:

Фиксированная ширина — сайт отображается с одинаковой шириной независимо от ширины окна браузера. Соответственно, на широкоформатных браузерах такие сайты имеют большие поля по краям, а на малых экранах смартфонов показывают горизонтальную прокрутку; «Резиновая» ширина — полосы сайта растягиваются на весь экран, занимая место пропорционально настройкам верстальщика.

Исторически сложилось, что сайт имеет вертикальный формат, который занимает не более чем ширину экрана, чтобы избежать горизонтальной прокрутки. Все возможности по управлению положением сайта (клавиатурные комбинации, полоса прокрутки и колесо мыши) настроены непосредственно на вертикальное передвижение.

Модульность и виды подходов к вёрстке Типовые веб-макеты Одноколоночный Двухколоночный Трёхколоночный

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

Модульная сетка структурно разбивает материал на отдельные блоки, что упрощает добавление новых элементов на страницу. Некоторые верстальщики могут отклоняться от правил верстки ради специфики проекта, но необходимость простого добавления новых элементов обостряет потребность в соблюдении этих правил.

Модульная сетка представляет собой набор направляющих, выравнивающихся относительно друг друга и делящих макет на квадраты, что позволяет независимо от остальной части сайта изменять единицу информации.

Основными инструментами для вёрстки являются фреймы, таблицы и div. В стандарте HTML5 фреймы больше не поддерживаются, а вместо них стали доступны «семантические» блоки: header, main, nav, section, article, aside и footer. Однако использование этих блоков не предоставляет определенных преимуществ, а представляет собой лишь «синтаксический сахар».

Табличный подход Таблицы являются удобным инструментом для выравнивания блоков. В html таблица делится на строки, которые в свою очередь делятся на ячейки, таким образом можно создавать неограниченное количество строк с неограниченным числом ячеек в каждой. Ячейки таблицы имеют особые настройки выравнивания, которые не встречаются более в других элементах. Это значит, что некоторые элементы дизайна крайне сложно сверстать без использования таблиц.

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

Недостатком табличного подхода является то, что страница не будет отображена до тех пор, пока не будет загружен закрывающий тег таблицы, что является критичным при обрыве связи и медленном соединении. Также к недостаткам можно отнести избыток кода, усложняющий его понимание.

На момент 2011 года табличная верстка считается устаревшей.

Вёрстка слоями Слой (от имени тега <layer>) — разработка компании Netscape, использованная в браузере Netscape Navigator. Тег позволял показывать или скрывать его содержимое, устанавливать положение относительно окна браузера, накладывать слои друг на друга и включать содержимое блока из файла. В спецификацию HTML не был включён.

Блочная вёрстка Блочная вёрстка — верстка с помощью тега <div> и описывающего их множество таблицы стилей (CSS). Тег появился вследствие сознательного отказа консорциума «CSS Positioning (CSS-P)» от тега <layer>, чтобы создать аналогичный тег, но с поддержкой CSS в духе остальных тегов. С помощью блочной верстки реализуют концепцию семантической вёрстки.

Вёрстка фреймами

Вёрстка фреймами — верстка с помощью одноимённого тега <iframe>, который имеет иной способ позиционирования, а внутри себя включает отдельные html-страницы.

Фреймы просты в применении, поскольку необходимо заботиться только об отображении и перерисовке части окна браузера — одного фрейма, — остальные части находятся в другом фрейме и не перерисовываются без взаимодействия с ними. Также возможно открытие ссылки в другом фрейме, что удобно при использовании главного меню в отдельном фрейме. Страницы поделённые на фреймы имеют меньше кода, вследствие отсутствия повторяемых частей, которые не перезагружаются. Они размещаются точно в нужном месте окна браузера.

Фреймы плохо индексируются поисковыми системами, поскольку на страницах с содержимым нет ссылок на другие страницы сайта и наоборот, в навигационной странице нет никакого содержимого. Переход из поисковой страницы происходит на одну страницу, без загрузки других фреймов — навигации и логотипа. Внутренние страницы нельзя добавить в закладки, потому что браузер не показывает изменения в адресной строке, отображая всегда только адрес сайта. Совместимость между браузерами противоречива. Одни и те же параметры интерпретируются браузерами всегда по-своему.

Разметка страницы По принципам использования средств разметки HTML различают логическую разметку и презентационную (физическую). Например, курсивный текст можно получить как с помощью тега <i>, так и с помощью тега <em>. В первом случае курсив задаётся явным образом, а во втором на текст производится логическое ударение, которое обычно отображается курсивом. Иными словами, при первом подходе ориентируются на внешний вид, а во втором — на логическое предназначение. Преимуществом второго подхода является независимость вёрстки от используемого типа устройств и дизайна веб-страниц. Если придерживаться логической разметки, то можно использовать один и тот же вариант вёрстки для экрана, печати и мобильных устройств, регулируя внешний вид с помощью отдельных файлов стилей.

Типы макетов Все сайты по макету вёрстки можно разделить на 5 групп: фиксированные (статические, имеющие фиксированную ширину); резиновые (проценты); эластичные (em); адаптивные; комбинированные.

Адаптивный Адаптивная вёрстка — дизайн, который подстраивается (адаптируется) под размер экрана, в том числе может происходить перестройка блоков с одного места на другое, или их замена блоками отображаемыми только при определённом разрешении. Адаптивная вёрстка пришла на смену идеи создания специальных мобильных версий сайта, «живущих» на отдельных поддоменах (например, m.wikipedia.org).

Преимущества: Сайт будет отображаться при разных размерах экрана так, как это наиболее удобно пользователю. Недостатки: Требует тщательной проработки нескольких макетов, для различных размеров экранов.

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

Табличная вёрстка

Преимущества и недостатки Браузеры преднамеренно расценивают таблицу как один объект, из-за чего содержимое таблицы не отображается до тех пор, пока оно целиком не будет загружено на локальный компьютер.Особенности таблиц //htmlbook.ru