Тарифы Услуги Сим-карты

Как сделать разметку в готовом html документе. Избегаем распространенных ошибок в HTML5 разметке. Способы разметки страницы

Здесь мы рассмотрим частые ошибки в HTML5 разметке с точки зрения семантики, и как их избежать.

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

Не используйте тег в качестве обёртки для оформления Одна из наиболее общих проблем, замеченных мною, - банальная замена "ов на структурные элементы HTML5, особенно на "ы. Т.е. когда то, что в XHTML или HTML4 выглядит так:
My super duper page Переписывают так:
Это просто неправильно: не обёртка. Этот элемент означает семантический блок Вашего контента, использующийся для построения «структуры документа» (document outline), и должен содержать заголовок. Если Вам нужен элемент для обёртки, попробуйте обойтись (Kroc Camen может предложить кое-что). Если это не решает проблему необходимости дополнительных обёрток, используйте старые добрые "ы. С приходом HTML5 "ы не умерли , и именно они отлично подходят в этом случае.

Принимая во внимание все вышесказанное, было бы хорошо разметить пример выше с использованием HTML5 так:
My super duper page

Если Вы не уверены, какой элемент использовать, то я советую Вам воспользоваться нашей блок-схемой выбора элемента (прим. переводчика: см. в самом низу записи ).

Используйте и только при необходимости Нет смысла писать код, если в этом нет необходимости, правда? Увы, но я часто наблюдаю, как и там, где они не нужны. Вы можете почитать об элементах и подробнее, я же коротко обозначу ключевые моменты:
  • Элемент представляет группу вводных или навигационных средств и обычно содержит заголовок секции
  • Элемент группирует набор элементов -, представляя заголовок секции в случае, если он состоит из нескольких уровней (подзаголовки, альтернативные заголовки и т.д.)
Избыток элементов Я уверен, Вы прекрасно знаете, что элемент можно использовать несколько раз в документе. Поэтому часто встречается такое:
My best blog post

Если Ваш содержит только один заголовочный элемент, то он не нужен. В данном случае элемент уже гарантирует, что заголовок будет включен в «структуру документа» (document outline), и раз не содержит нескольких элементов (согласно определению), его можно безопасно удалить. Достаточно просто этого:
My best blog post

Неправильное использование И снова о заголовках: я часто вижу некорректное использование элемента . Не следует использовать вместе с , если:
  • Присутствует только один заголовок
  • хорош сам по себе (т.е., без ).
Первый случай:
My best blog post

by Rich Clark

В этом случае просто уберите hgroup.
My best blog post

by Rich Clark

Второй случай - это еще один пример использования элемента без необходимости.
My company Established 1893

Если единственный ребёнок "а это , зачем нужен ? Если у Вас нет дополнительных элементов в "е (т.е. сестринских по отношению к ), просто уберите .
My company Established 1893

Не обрамляйте все ссылки в В HTML5 было введено 30 новых элементов, чтобы дать нам возможность создавать структурированную и осмысленную разметку. Но не следует злоупотреблять новыми семантическими элементами. К сожалению, это как раз то, что происходит с . Спецификация описывает так:Элемент nav представляет секцию страницы, связывающую её с другими страницами или частями текущей (секцию с навигационными ссылками).

Примечание: Не все группы ссылок следует помещать в элемент nav. Его следует использовать для основной навигации . Часто в футерах размещают небольшой список ссылок на различные страницы сайта (Главная, Помощь, соглашение об использовании, etc ). В этом случае одного footer"а должно быть достаточно. Хотя ничто не мешает использовать nav, в этом нет необходимости.

WHATWG HTML spec

Ключевая фраза - «основная навигация». Можно долго спорить о том, что понимать под основной, но для меня это:

  • Первичная навигация
  • Поиск по сайту
  • Вторичная навигация (спорно)
  • Внутристраничная навигация (внутри длинной статьи, например)
Хотя в этом случае сложно судить, что есть правильно, а что - нет, я считаю, что не стоит заключать в :
  • Переключатели страниц
  • Социальные ссылки (хотя возможны исключения в случаях, когда социальные ссылки являются основной навигацией. Например, сайты вроде about.me или flavours.me)
  • Теги поста
  • Категории поста
  • Третичная навигация
  • Объемные футеры
Если Вы не уверены, обрамлять ли список ссылок в , задайте себе вопрос: «Это основная навигация?». Примите во внимание следующее:
  • “Не используйте , если Вы считаете, что с заголовком тоже подойдёт” - Hixie в IRC
  • Возможно стоит добавить «Перейти к» для удобства?
Если ответ на эти вопросы - «Нет», это, видимо, не место для .Общие ошибки в использовании элемента Ах, . Разобраться с правильным использованием этого элемента, как и его собрата , непросто. Давайте взглянем на некоторые общие ошибки, касающиеся этого элемента.Не каждое изображение Ранее, я советовал не писать больше кода, чем необходимо. Здесь похожая ситуация. Я встречал сайты, где каждая картинка была обрамлена в . Не нужно использовать больше разметки только для того, чтобы использовать больше разметки. Вы просто создаете себе больше работы, но никак не улучшаете описание своего контента.

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

Вышеупомянутая блок-схема выбора элемента поможет Вам справиться с .

Если изображение несет только презентационную нагрузку, и на него нигде в документе не ссылаются, это определенно не . Иначе, задайте себе вопрос: «Необходимо ли это изображение в текущем контексте для понимания?». Если нет, это, видимо, не (возможно, ). Если да, спросите себя, «Могу ли я переместить это в приложение?». Если ответ на оба вопроса Да, то, возможно, подойдёт.

Ваш логотип - не Тоже самое касается и логотипа. Часто я вижу такое применение:
My company name
Тут нечего добавить. Это просто неверно. Можно долго спорить о том, должен ли логотип быть в , но мы сейчас не об этом. Настоящая ошибка - злоупотребление элементом . следует использовать только когда Вы ссылаетесь на него в документе. Вряд ли Вы где-нибудь будете ссылаться на свой логотип. Достаточно этого:
My company name может быть не только изображением Другой частый случай недопонимания элемента заключается в предположении, что его можно применять только для картинок. Но это не так. В может быть заключено видео, аудио, графики (в SVG, например), цитата, таблица, блок кода, стихотворение или любая комбинация перечисленного. Не ограничивайте себя в использовании одними картинками. Наша задача как приверженцев веб-стандартов - описать контент нашей разметки.

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

Не используйте ненужный атрибут type Это, возможно, наиболее общая проблема, встречаемая в HTML5 галерее. Хотя это и не ошибка, я считаю, что лучше избегать этого.

В HTML5 нет необходимости указывать атрибут type для элементов и . Хотя от них может быть непросто избавиться, если они автоматически добавляются Вашей CMS, нет смысла включать их в код, если Вы пишете его самостоятельно или можете управлять шаблонами. Т.к. все браузеры по-умолчанию считают, что все скрипты написаны на JavaScript, а стили - это CSS, такая разметка становится избыточной:

Вместо этого Вы можете просто написать:

Помимо прочего, Вы также можете сократить количество кода, расходующегося на указание кодировки. Глава Марка Пилгрима о семантике в книге Dive into HTML5 описывает все такие практики.

Некорректное использование атрибутов форм Вы, должно быть, уже в курсе, что в HTML5 введено множество новых атрибутов форм. Мы рассмотрим их в ближайшее время, сейчас же я коротко расскажу, как делать не стоит.Логические атрибуты Существуют логические атрибуты также и для мультимедиа элементов и некоторых других. Описываемые мною правила применимы и для них.

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

  • autofocus
  • autocomplete
  • required

Я редко встречаю их, но в случае с required я видел такое:

В конечном счете, это ничем плохим не грозит. Клиентский HTML парсер встретит атрибут required в разметке и применит соответствующие правила. Но что если сделать по-другому и написать required=«false»?

Парсер по-прежнему увидит атрибут required и применит соответствующее поведение, несмотря на то, что Вы указали ему не делать этого. Очевидно, это не то, чего Вы хотели.

Логическое значение возможно применить тремя способами: (Второе и третье характерны для XHTML)

  • required
  • required=""
  • required=«required=»

Применительно к нашему примеру выше, мы могли бы написать так (в HTML):

Теги: Добавить метки

И две папки css и image.

Если вы все делали правильно, то шаблон устанавливается на Joomla 3 без проблем. Далее мы будем работать над каскадными таблицами стилей , которые отвечают за оформление страниц сайта.

Момент 1. При создании таблиц я буду использовать язык CSS2 . В отличии от CSS3, он проще для понимания. Это важно, т.к. большая часть аудитории моего сайта – новички в веб-программировании. Также есть еще один минус CSS3 - этот язык в настоящий момент не поддерживается всеми браузерами. Для тех же, кто мало знаком с CSS2, для лучшего понимания, в работе над таблицами, предлагаю использовать справочник «HTML, CSS, PHP» .

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

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

Момент 3. Я никогда не редактирую код шаблона из админпанели Joomla , а использую только программу Macromedia Dreamweaver . Открываю нужный мне файл, редактирую его, сохраняю (но не закрываю файл) и смотрю сразу же, какие изменения произошли на сайте. Если они мне не нравятся – отменяю, произведенные ранее действия.

ВНИМАНИЕ: Откатится назад в админке Joomla при редактировании кода невозможно!

С программой Macromedia Dreamweaver очень удобно работать – она подсвечивает код, помогает писать его очень быстро, выделяет ошибки, позволяет произвести откат. Всю документацию по Macromedia Dreamweaver и саму программу вы можете найти на сайте.

Ну вроде все рассказала и можно приступать к работе. Первым делом, необходимо правильно расставить все блоки DIV на странице. Сейчас они пока стоят друг за другом (смотрите скришот с предыдущего урока).

Чтобы в процессе работы хорошо видеть, как встают блоки, в менеджере модулей CMS Joomla я создала модуль поиска по сайту и поставила его в позицию «user1», модуль горизонтального меню - в позицию «user2», модуль навигации по сайту – в позицию «user3», три модуля с произвольным HTML кодом – в позиции «left», «right», «footer».

Изначально я решила блок «header» сделать универсальным и предусмотрела в нем позицию для вывода модулей «header». В этой позиции можно вывести какой-нибудь ротатор изображений или с помощью модуля с произвольным HTML кодом просто вывести изображение, любой высоты, при этом ширина должна быть всегда 950рх (ширина страницы). Это изображение можно сделать кликабельным, а также с легкостью его менять. Для начала я просто создала подобный модуль и разместила в нем картинку размером 950х250.

Используйте справочник по стилям CSS, если вам не понятны какие либо параметры.

Сначала оформляем блок «body», зададим ему пока серый цвет фона.

font:14px Arial, Helvetica, sans-serif ;

line-height:1.3;

text-align:left;

background-color:#fff;

overflow:hidden;

Бло ки "logo" и "user1" будут выводиться в контейнере «top», зададим высоту, а ширина будет занимать 100% ширины страницы, т.е. 950px.

Блоку "logo" зададим фиксированную высоту и ширину, а также синий цвет фона. Определим выравнивание по левой стороне, при этом остальные элементы будут обтекать его с других сторон.

background-color:#0099FF;

Блоку "user1" зададим фиксированную высоту, ширину, желтый цвет фона, выравнивание по левой стороне.

background-color:#CCFF00;

Блок вывода горизонтального меню «user2» будет иметь ширину 100% от ширины страницы, т.е. 950px. Высота блока будет растягиваться до высоты модуля меню.

#user2 { width: 100%;}

Блок вывода шапки сайта «header» будет иметь ширину 100% от ширины страницы. Высота блока будет растягиваться до высоты изображения, которое будет выводиться в модуле.

#header {width:100%;}

Блок «user3» будет иметь ширину 100% от ширины страницы. Высота блока будет растягиваться до высоты модуля, который будет выводиться в позиции «user3» .

background-color:#CC9900;

Оформление левой колонки блок «left»

background-color:#FF6666;

Оформление правой колонки блок «right»

background-color:#66FF33;

Теперь разберемся с контентом. Если в левой и правой колонке будут выводиться модули, то ширина компонента контент будет 550рх (950-200 -200).

Если модули будут выводиться или только в левой или только правой колонке, то ширина компонента контент будет 750рх (950-200).

Если будут отключены обе колонки, контент занимает 100% страницы, т.е. 950рх.

Блок «footer» будет иметь ширину 100% от ширины страницы. Высота блока будет растягиваться до высоты модуля, который будет выводиться в позиции «footer». Отменим обтекание блока одновременно с правого и левого края, чтобы футер не поднимался вверх.

background-color:#82b5bf;

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

P.S. Для тех у кого возникли трудности с написанием кода файлов или инсталляцией шаблона, я сделала установочный пакет TRIP , который должен быть у вас к концу этого урока.

Раньше на просторах Интернета был широко распространён табличный тип вёрстки, которому посвящена . Однако со временем этот подход к созданию структуры сайта устарел, и на смену ему пришла блочная вёрстка.

Отличия блочной вёрстки от табличной

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

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

Блочная вёрстка лишена недостатков табличной - поисковыми системами она индексируется лучше, её код не такой развесистый, да и блоки , которые так любят называть «слоями», изначально задумывались универсальными, то есть «для всего», тогда как

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

Единственный ощутимый минус блочной вёрстки - сделанные на ней сайты могут по-разному отображаться в обозревателях. Чтобы этого избежать, нужно делать вёрстку «кроссбраузерной», то есть одинаково отображаемой любым обозревателем.

Суть блочной вёрстки

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

Каждая часть страницы помещается в свой блок : верх сайта - в первый, меню - во второй, контент - в третий и т. д. Каждый блок наполняется содержимым средствами HTML, а также позиционируется и оформляется с помощью CSS-разметки.

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

Принципы блочной вёрстки

Первый - конечно же, повсеместное использование тега , который можно назвать базовым элементом блочной структуры, но об этом было сказано уже достаточно много.

Второе правило - принцип разделения кода, согласно которому содержимое от оформления нужно отделять. Говоря проще и ближе к нашему случаю: HTML - отдельно, CSS - отдельно (желательно в разные файлы). Такой подход делает структуру понятней. Программисту не нужно открывать CSS, дизайнеру - HTML. Все смотрят свой код и не мешают друг другу. Идеально.

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

Пример блочной вёрстки

Но, сколько не теоретизируй, а понимать всё проще на примере.

Итак, у нас есть макет (рисунок ниже). Условный, конечно - просто разметка, ведь цель примера - как можно наглядней объяснить принцип создания блочной вёрстки. Зная базу, навести красоту и усложнить макет вы сможете и сами, а я лучше не буду перегружать пример.

Согласно макету, страница сайта будет содержать пять блоков: «шапку», навигационное меню, боковую панель, основной блок с контентом и «ноги».

Сначала создадим HTML-страницу: обозначим структуру, разметим её. HTML-код будет таким:

Блочная вёрстка header (шапка сайта) Блок навигации Левая панель Основной контент страницы footer (низ сайта)

Разберём некоторые моменты.

- это блок-родитель, внутри которого расположились все остальные блоки. Как ячейки таблицы внутри

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

Если открыть HTML-файл в браузере, не подключая таблицу стилей, страница будет выглядеть так.

Теперь добавим файл CSS, код которого приведён ниже.

Body { background: #FFF; color: #000; font-family: Arial, sans-serif; font-size: 14px; } #header { background: #F5DEB3; width: 100%; height: 55px; } #container { background: #FFD700; margin: auto auto; text-align: center; width: 80%; height: 400px; } #navigation { background: #FE9798; width: 100%; height: 25px; } #sidebar { background: #40E0D0; float: left; width: 20%; height: 280px; } #content { background: #DCDCDC; float: right; width: 80%; height: 280px; } #clear { clear: both; } #footer { background: #00BFFF; width: 100%; height: 40px; }

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

#clear { clear:both; } запрещает обтекание элемента слева и справа. Если убрать это правило, вёрстка «поедет» и низ сайта перестанет корректно отображаться.

CSS творит чудеса, и с ним наша HTML-страница примет уже совсем другой вид.

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

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

Как создать структуру страницы с помощью блоков (блочная вёрстка) 1. Как разбить макет страницы на секции

Чтобы создать макет страницы, необходимо выделить основные разделы (секции) документа. Подробнее о секционных элементах вы можете прочитать в статье .

Стандартная веб-страница содержит следующие секции:


Рис. 1. Основные секции страницы

Мы не будем использовать элемент , так как он поддерживается не всеми браузерами.

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


Рис. 2. Основные секции страницы с тегом-контейнером

и задать для него максимальную ширину, внутренние отступы, которые будут отделять контент от краёв экрана устройств с небольшим разрешением, а также внешние отступы, позволяющие выровнять контейнер по середине родительского блока:

Container { width: 100%; max-width: 1024px; /*максимальная ширина может иметь другое значение*/ padding: 0 15px; margin: 0 auto; }

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

2. Разметка шапки сайта и позиционирование её элементов

Приступим к разметке первой секции, так называемой шапки веб-страницы. Элемент предназначен для группировки вводной информации и навигационных средств по странице/сайту. Добавим внутрь тега логотип сайта и навигационные ссылки:

LOGO


Рис. 3. Шапка сайта с добавленными логотипом и ссылками

Logo { float: left; } nav { float: right; } nav ul { margin: 0; padding: 0; list-style: none; } nav li { display: inline-block; /*один из способов разместить элементы в строку*/ }

Существует несколько способов разместить блочные элементы в строку. Все они приведены в уроке .


Рис. 4. Эффект схлопывания блока-контейнера

Обратите внимание, что после того, как мы применили обтекание, шапка исчезла. Это произошло потому, что плавающие элементы (для которых задано свойство float) изымаются из нормального потока и родительский контейнер больше не видит их высоту, поэтому и элемент и элемент внутри него с классом.container схлопнулись. Чтобы исправить эту ситуацию, воспользуемся очисткой потока для элемента с классом.container:

Container:after { content: ""; display: table; clear: both; }

Также добавим ему вертикальные отступы, отделяющие элементы внутри него от краёв шапки. В результате стили будут иметь следующие вид:

Container { width: 100%; max-width: 1024px; padding: 15px; margin: 0 auto; }
Рис. 5. Очистка потока

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


Рис. 6. Логотип-картинка

В нашем примере высота логотипа равна 38px , поэтому чтобы выровнять ссылки меню по высоте по середине шапки, нужно задать для них соответствующую высоту строки:

Nav a { text-decoration: none; line-height: 38px; } Рис. 7. Выравнивание ссылок меню шапки

3. Создание сетки для основной части страницы

Основная часть страницы чаще всего представляет собой сетку из блоков разной ширины. Позиционирование таких блоков осуществляется также с помощью свойства float . Каждую строку блоков обернём дополнительным блоком с классом.row:


Рис. 7. Сетка основной части страницы.col-1-2 { width: 50%; float: left; } .col-1-3 { width: 33.3333333333%; float: left; } .col-1-4 { width: 25%; float: left; } .col-2-3 { width: 66.6666666667%; float: left; }

Для элемента с классом.row также применим очистку потока:

Container:after, .row:after { content: ""; display: table; clear: both; }

Чтобы отделить ряды друг от друга, можно добавить нижний внешний отступ:

Row { margin-bottom: 15px; }

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


Рис. 8. Разная высота элементов сетки

Высоту блоков можно зафиксировать, указав её явно, например, .row div {height: 100px} . Но в этом случае нужно быть уверенным, что при добавлении адаптивности макету содержимое блоков не будет выходить за край блока.

Если необходимо задать фоновый цвет для блоков ряда, то это можно сделать следующим образом: для элемента с классом.row добавим новый класс, который позволит стилизовать только этот ряд (получится.row row-one), укажем для него фоновый цвет меньшего по высоте блока, а для высокого блока зададим его собственный цвет, то есть таким образом мы сделаем фоновую подложку.

Lorem ipsum dolor sit amet. Duis lobortis tempor tortor vel iaculis. Fusce volutpat commodo lacus, eget vestibulum lorem semper at. .row-one { background: lightblue; } .col-2-3 { width: 66.6666666667%; float: left; background: seashell; }
Рис. 9. Фоновая подложка

Если основная секция страницы содержит только два блока, то дополнительный ряд-обёртку можно не добавлять:

4. Разметка подвала страницы

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

Доброго времени суток, верные читатели и подписчики. Текущая публикация посвящается подробному разбору темы: «Блочная адаптивная разметка css-страницы». В этой статье я расскажу вам, что подразумевает под собой блочная верстка, в чем ее преимущества и какие инструменты для этого используются.

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

Кнуты и прянички

Блочная верстка веб-страниц – это метод разметки страниц блоками (слоями), которые создаются при помощи специального тега < div> .

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

Вкусные пряники

Уменьшение объема кода. При использовании таблиц в качестве структурированного размещения контента и элементов управления сайта в html-документе располагалось достаточно много вложенных тегов, в которых путались даже разработчики со стажем.

При использовании блоков такая проблема устраняется. В коде располагается небольшое количество div-ов, каждому из которых устанавливаются стилевые правила через прописанный класс. Например:

Гибкое управление объектами. За счет того, что за каждый слой отвечает определенный класс, появилась возможность быстро и без вреда для других блоков переопределять внешний вид выбранного, перемещать его по веб-странице или изменять вид представления. К тому же блочная верстка позволяет решать сложные задачи с нестандартным размещением слоев.

Весомое преимущество для SEO. В табличных представлениях все содержимое веб-сервиса распределялось по ячейкам, что сильно усложняло работу поисковых роботов. С использованием же блочной верстки данная проблема также решилась.

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

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

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

Камни преткновения

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

В блочной разметке все может показаться несколько сложнее. Особенно для новичка. Потому что вам необходимо хорошо разбираться не только в html-коде, а еще и знать большинство свойств css. Однако трудности возникнут только вначале при изучении технологий, а вот после жизнь покажется сказкой.

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

Простые техники создания адаптивности

Ну а теперь перейдем непосредственно к разбору нескольких простых механизмов по созданию адаптивности сайта. Для этого сверстаем простой макет страницы.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 Bootstrap Example body{ padding:0; margin:0; background: url("http://www.bankoboev.ru/fons/ODQ1MA==/Bankoboev.Ru_avtomobili_na_nochnyh_dorogah.jpg"); font-size: 19px; color: #fff; text-align: center; } .header{ background: rgba(80, 80, 80, .8); padding: 24px; border-bottom: 3px solid #B5B5B5; } .menu{ background: rgba(80, 80, 80, .5); float: left; font-size:33px; padding: 16px; text-align: left; line-height: 1.5; height: 331px; } li{ list-style-type: none;} .container{ text-decoration: underline; padding: 29px; background: rgba(0, 1, 0, .4); } img{ height: 220px; width: 350px; outline: 6px solid #CFCFCF; } .photo{ display: inline-block; } .footer{ background: rgba(0, 1, 0, .8); padding: 11px;} Сайт СуперАвто
  • Фотогалерея
  • Видео
  • Контакты
  • Tesla Все права защищены!

    Bootstrap Example body{ padding:0; margin:0; background: url("http://www.bankoboev.ru/fons/ODQ1MA==/Bankoboev.Ru_avtomobili_na_nochnyh_dorogah.jpg"); font-size: 19px; color: #fff; text-align: center; } .header{ background: rgba(80, 80, 80, .8); padding: 24px; border-bottom: 3px solid #B5B5B5; } .menu{ background: rgba(80, 80, 80, .5); float: left; font-size:33px; padding: 16px; text-align: left; line-height: 1.5; height: 331px; } li{ list-style-type: none;} .container{ text-decoration: underline; padding: 29px; background: rgba(0, 1, 0, .4); } img{ height: 220px; width: 350px; outline: 6px solid #CFCFCF; } .photo{ display: inline-block; } .footer{ background: rgba(0, 1, 0, .8); padding: 11px;} Сайт СуперАвто

    Здесь вы найдете изображения и видео, связанные с автомобильной тематикой

  • Фотогалерея
  • Видео
  • Контакты
  • Tesla Все права защищены!

    Как видите, внешний вид созданного интернет-ресурса корректно отображается до тех пор, пока размер экрана не станет слишком маленьким. Поэтому дополним свойства css некоторыми параметрами.

    Для начала к блокам с классами . header , . container и . footer добавьте свойство min-width: 355px . Теперь ваша страница с контентом будет уменьшаться только до указанного размера, а после появится скролл.

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