Резиновая верстка. Всегда ли нужна «резиновая» верстка

Любой дизайн это решение задач: эстетика, которая должна сработать нужным образом; удобство, которое должно навести на определенный метод использования или расширить стандартные возможности и т.п. Верстка, это один из этапов реализации веб-проекта, который проектируется непосредственно дизайнером. Выбирая тип верстки, дизайнер решает конкретные задачи, давайте попробуем понять - какие именно.

Чтобы понять задачи, решаемые резиновостью, стоит начать с истории её возникновения.

Первые сайты с подстраивающейся к размеру экрана версткой (резиновые) появились в период исчезновения мониторов с разрешением 640-480, активного использования разрешения 800-600 и первыми представителями 1024-768. Стоит признать, что площадь 640-480 и 800-600 мала для полноценного восприятия информации. А еще и навигация, и банер повесить надо (в те времена они были эффективнее). Растянув наш сайт в 1,6 раза по горизонтали, мы хоть как то приблизим формат сайта к хорошо воспринимаемому всеми формату листа А4. Сделаем тем самым огромное одолжение владельцам новеньких дорогих «больших» мониторов. Тем более, что мы растягиваем не только элементы по странице, но еще и текстовые блоки, которые уменьшаются по высоте, а это иногда убирает скрол! (а это пикселей 30!). Выгоды очевидны!

Получается, главная задача «резиновости» - дать необходимое пространство для контента, не ущемив достоинство владельцев стареньких мониторов.

Так как мы рассматриваем «резиновую» верстку в наше время, стоит обратить внимание на современный парк мониторов. а это (если забыть про нетбуки) от 1024 х 768 и до 2048 х 1152. Математически, мы получаем разницу в 2 раза, что не намного больше чем лет 10 тому назад.

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

КАК ОНО РАБОТАЕТ.

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

1. Текстовые блоки хорошо поддаются растяжению по горизонтали. Они несут, порою, до 90% всей информации на сайте (а значит, их много! Есть что тянуть!). Но бесконечно растягивать их просто нельзя. Наше внимание имеет определенный запас «усидчивости». Если текстовая строка становится слишком длинной, нам просто тяжело ее читать - мы устаем. Недаром, в газетах используют ограничения по ширине текстового блока примерно в 50-55 знаков, а это, даже при увеличенном межбуквенном расстоянии, меньше половины ширины листа А4. Вообще, самой оптимальной длинной строки для быстрого и удобного чтения считается 45 знаков. Минимум тоже есть, это порядка 20-25 знаков. То есть, текстовый блок может быть увеличен от минимума до удобочитаемого максимума не более чем в 2 раза. Разбивать один текст на несколько колонок, как в газете, не рекомендуется. Потому что когда мы просматриваем текст, скролируя сверху вниз, возвращаться наверх в начало второй колонки будет крайне неудобно. Исходя из этого, если текст это основной блок страницы, то мы не можем ее растягивать даже до 900 px! А лучше меньше.

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

Если исходить только из разницы размеров блоков, то совершенно не имеет значение насколько мы их растянем, ведь они будут растягиваться пропорционально. Вроде бы, они все должны справляться со своими задачами… Но тут появляется очередное «Но». Дело в том, что промежутки еще имеют и свой «характер». Возможно, кому-то, далекому от сферы дизайна, это покажется несущественным, но я напомню вам о работе танцора, музыканта, певца. Непрофессионал-танцор может выполнять те же движения что и мастер, музыкант-новичок будет играть по тем же нотам, певец будет петь ту же песню. Мы будем узнавать произведение, но мы скорее всего почувствуем разницу. Если сделать промежутки между родственными блоками в 5 мм, они будут восприниматься как родственные, но если мы их растянем до 10-15 мм, то они начнут безвозвратно разделять «родственников». И ситуацию не спасет даже то, что пропорционально это самый маленький на странице промежуток.

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

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

4. Растровые картинки при растяжении дают искажения и муар при растягивании в одном направлении. Но можно изменять размер всего изображения, сохраняя пропорции. Либо можно менять размер «окна» картинки, сохраняя ее истинный размер. Увеличивать размер картинок нужно в случаях когда эти картинки нужно показывать в максимально большом размере, например в фотосервисах, в портфолио дизайнеров и фотографов… Однако, так или иначе, это сопряжено с дополнительными техническими усложнениями.

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

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

Кроме чисто художественных аспектов и законов восприятия информации, есть еще проблема «уставания» нашего глаза. Отчасти, это затрагивается выше в санитарных нормах для текстовых блоков. Не буду уходить в цифры. Простой пример: мало кто станет вешать на рабочем месте лист с важной информацией по текущему проекту за спину или сбоку от себя, частенько наброски, схемы и записки вообще клеят в районе монитора. Чем дальше мы бегаем взглядом, тем быстрее мы устаем. В масштабах экрана это кажется менее существенным. Но чтобы рассмотреть 2 разные картинки у левого и правого края 22 дюймового монитора, нам уже приходиться чуть повернуть голову, мониторы уже стали слишком большие для движения только лишь глазами. Через 4-5 часов сетевого серфинга у пользователя достаточно расфокусируется внимание, чтобы на вашем растянутом сайте ему стало трудно найти нужную информацию.

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

ЧТО ИМЕЕМ.

Дизайнеры по прошествии 10 лет все еще решают проблему нехватки рабочего пространства, и решают ее использованием «резиновой верстки», растягивающей все имеющиеся материалы по экрану монитора. Но наши мониторы давно переступили черту нормального восприятия! С этим можно не соглашаться просматривая очередное продолжение саги «STAR WARS» или играя в одноименный шутер. Картинка фильма и игры похожи на то, что мы видим нашими глазами в жизни. В нем очень много лишней информации, даже максимально эффективный угол нашего зрения всего 5°. За счет уменьшенного угла мозг разгружается от лишней информации. Нас не интересуют все детали, а лишь картина в общем. А невоспринимаемое пространство создает лишь дополнительный «антураж» - зеленая масса леса, толпа… Прибавьте к этому факт, о том что лучше всего мы воспринимаем именно центр экрана, и нам крайне неудобно изучать что либо на краях… А страничка сайта это детали, тексты, анонсы и навигация. Да, можно заставить искать человека это все по большому экрану. И как правило, он находит. Человек может читать текст даже в нижнем правом углу экрана 9-м кеглем. Только это происходит ценой дополнительных усилий зрения и внимания, хоть и небольших на первый взгляд. Присоедините к этому лишние часы работы верстальщика и дизайнера на разработку этого типа верстки.

Стоит заметить, очень многие дизайнеры пришли к выводу, что тянуть бесконечно контент нельзя, точно так же как и сжимать. Понимание этого породило «полу-резиновость». Если человеку достаточно комфортно воспринимать информацию на 900 px ширины (немного больше ширины листа А4), то ради решения какой задачи ее растягивать до 1100 px? И это при том, что даже минимальное разрешение современных мониторов укладывается в ширину 1024 px, а значит, и сжимать не придется.

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

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

Частенько можно услышать про «законы веба», вроде как они не имеют ничего общего с типографическими правилами. Однако, главное в типографии - подача печатного текста. А до тех пор, пока видео и звук не заменили текст (который составляет гораздо больше 50% контента сайтов), а мы все еще видим биологическими глазами, было бы глупо отказываться от исследований и опыта, накопленного за несколько сотен лет типографии. Тем более, что текст на мониторах из-за низкого разрешения гораздо хуже печатного (72 dpi против 200 dpi и более), да и сами мониторы не способствуют отдыху глаз.

Для тех, кто сомневается в реальности проблем восприятия, предлагаю посмотреть 4 варианта размещения текстов тут: nano.a5.ru

ОПРАВДАНИЕ.

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

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

Делайте только резиновые сайты = Делайте только сайты красного (зеленого, синего, оранжевого, и т.д.) цвета!

P.S.
Думаю, многим приходилось натыкаться на фразы типа: «Хороший дизайнер должен уметь делать правильную резину!». На мой взгляд, куда важнее умение правильно выбрать: резина или нет?

Резиновой вёрсткой называется вёрстка, при которой сайт растягивается в зависимости от ширины окна браузера.

Я считаю, что резиновая вёрстка - это признак мастерства дизайнера и верстальщика. Разрабатывая и поддерживая качественно тянущийся сайт, дизайнеры, технологи и редакторы сайта сталкиваются с множеством проблем: необходимо сделать так, чтобы картинки и текст вели себя адекватно и оставались читабельными при любом разрешении; вместе с тем, в вёрстке не должно возникать дыр. Но если всё сделано правильно, результат будет отличный.

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

Допустим, человек купил дорогой широкий монитор, зашёл на сайт, а тот как был 800 пикселей в ширину, так и остался. Не надо его учить, что растягивать браузер на все 1900 пикселей неправильно. Надо сделать резину и предоставить право выбора человеку.

Есть две причины, почему не хотят делать «резину»: эстетическая и технологическая .

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

Технологическая причина сводится к набору страхов.

Что делать с возникающими пустотами?

Существует много хорошо свёрстанных резиновых сайтов, на которых эта проблема решена. Интернет-издание «Время-н » растягивает картинки на больших разрешениях. На Гугл-картинках блоки с картинками, перескакивают со строки на строку при разной ширине браузера.

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

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

«Резиновая» верстка

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

Однако я не могу не рассмотреть «резиновую» верстку – создание страниц, меняющих размер в зависимости от области просмотра.

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

Можно сказать, что при большом размере экрана сайт должен занимать всю доступную область, а при маленьком размере – соответствующим образом уменьшаться. Было бы не совсем справедливо утверждать, что «резиновая» верстка пытается подстроится под всех пользователей, но у нее близкая к этому задача. Интернет представляет собой конгломерат множества систем, которые обслуживают широкие группы пользователей способами, максимально учитывающими их индивидуальные потребности. Согласитесь, что одинаковое восприятие содержания или функциональности одного и того же сайта невозможно. Почему же внешний вид должен быть одинаковым для всех? «Резиновая» верстка больше подходит для Интернета и лучше учитывает его сильные и слабые стороны, чем страницы фиксированных размеров. Как уже было отмечено ранее, чем естественнее решение, тем оно эффективнее.

До недавнего времени возможности веб-дизайна не позволяли нам в полной мере насладиться «резиновой» версткой. Новые возможности браузеров, наряду с новшествами, которые появились в CSS и JavaScript, позволяющими учитывать параметры устройств, дают возможность дизайнерам создавать гораздо более динамичные страницы.

Дизайнеры-новаторы теперь могут заниматься так называемым «отзывчивым» веб-дизайном. Итан Маркотт, его активный сторонник, утверждает, что такой подход открывает новые возможности:

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

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

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

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

«Отзывчивый» веб-дизайн не делает эту задачу проще. На самом деле он ее усложняет. Появятся еще больше ситуаций, которые необходимо учитывать, больше комбинаций элементов пользовательского интерфейса в различных сочетаниях, что затруднят восприятие сайтов. Таким образом, сетка становится еще важнее для общего дизайна; создание строгой сетки, лежащей в основе «отзывчивого» веб-дизайна, сделает его более обоснованным и надежным.

Одни и те же принципы дизайна на основе сетки могут использоваться как в «резиновой» верстке, так и в «отзывчивом» веб-дизайне. Юниты можно объединять в колонки и области, а размеры элементов менять в зависимости от основных параметров сетки. Эти элементы должны увеличиваться и уменьшаться в соответствии с этими же параметрами, но важно помнить, что изменяться должно не всё. Некоторые элементы могут и должны оставаться неизменными. В среде, где элементы бесконечно меняют размеры, очень важно сохранить постоянство, предоставить пользователям какие-нибудь ориентиры. По мере развития этой теории появятся новые возможности для дизайнеров, работающих в этой области. Но неизменной останется центральная роль дизайнера – человека, управляющего пользовательским восприятием.

Из книги Adobe InDesign CS3 автора Завгородний Владимир

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

Из книги 300 лучших программ на все случаи жизни автора Леонтьев Виталий Петрович

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

Из книги О чём не пишут в книгах по Delphi автора Григорьев А. Б.

Конечное оформление и верстка листовки Первая задача по конечному оформлению листовки – оформление надписи «Новинка», которая наверняка уже давно «мозолит глаза» нашим читателям.Для оформления мы выберем нехитрый визуальный прием, который так часто используется в

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов. автора Дронов Владимир

Окончательная верстка полосы Окончательная верстка полосы в нашем случае сведется к следующим операциям: постановка на полосу служебной информации (например, колонтитулов); наполнение полосы реальным текстом (настоящими программами телепередач, подбор настоящих

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов автора Дронов Владимир

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

Из книги Сначала мобильные! автора Вроблевски Люк

Верстка и допечатная подготовка текста

Из книги автора

1.3.4.2. "Резиновая" линия и растровые операции Теперь нужно дать пользователю возможность рисовать линии. Для этого мы используем стандартную "резиновую" линию: пользователь нажимает левую кнопку мыши и, удерживая ее, передвигает мышь. До тех пор, пока кнопка удерживается,

Из книги автора Из книги автора

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

Из книги автора

7 Верстка ПРИНЦИПЫ ОРГАНИЗАЦИИ КОНТЕНТА и элементов интерфейса, применяемые при разработке дизайна обычных сайтов, несомненно, могут быть полезны и при проектировании мобильных веб-приложений. Но как быть уверенными в том, что эти принципы будут актуальны для любых

Верстки делятся по принципу отображения и по типу:

1) Деление по принципу отображения:

а) Фиксированная (статическая) верстка.
б) Резиновая (тянущаяся) верстка.
в) Адаптивная верстка - .

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

Проблема масштабирования в мобильных браузерах

Иногда случается так - Вы сделали адаптивную верстку страниц сайта, но мобильные браузеры (Opera, Mozilla, Яндекс и др.) не обращают ни какого внимания на ваш адаптив, как будто и нет никакого адаптива. Мобильный браузер просто уменьшает масштаб всей веб-страницы, чтобы веб-страница целиком поместилась на экране устройства, в котором вы смотрите сайт.

Исправить возникшую ситуацию можно тем , что в контейнере head, в исходном коде веб-страниц, нужно написать мета тег viewport. Например,

Разберем значение атрибута content
1) width=device-width этим мы показываем, что ширина области просмотра равняется ширине экрана устройства, на котором смотрят наш сайт.
2) initial-scale=1.0 этим мы показываем, что масштаб страницы при загрузке 100% При этом пользователь, просматривая сайт, может сам изменить масштаб.

Иногда на сайтах запрещают пользователю изменять масштаб просматриваемой страницы , т.е. пользователь всегда видит веб-страницу такой, какая она есть, и не может ее сделать крупнее или меньше. Это делается тем, что в значении атрибута content указывают maximum-scale=1.0, minimum-scale=1.0, user-scalable=no Например.

Размер шрифта в мобильных браузерах

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

Есть некоторые решения через CSS, но они помогают не везде и не всегда. Например.

html * {
max-height: 1000000px;
text-size-adjust: none;
}

Чтобы уменьшить самоволие мобильных устройств относительно размера шрифта, каждый используемый шрифт можно подключить как файл. Для лучшей кроссбраузерности, шрифт подключается в нескольких форматах: ttf, woff, svg, eot (для IE8 и меньше). Это относится и к безопасным шрифтам. Файлы шрифтов подключаются правилом @font-face

При этом использование файлов шрифтов, может усилить разность шрифта при отображении на ПК в разных браузерах.


01.10.2013 01:04 73845

Резиновая верстка сайта (как впрочем и верстка фиксированная) начинается с создания так называемого скелета, или каркаса для дальнейшей разработка. Вообще, html верстка - конструктор. Сначала создается основной контейнер, основа которая в дальнейшем будет отвечать за минимальную и максимальную ширину всего сайта, границ. Если правильно все сделать, то изменив максимальный размер, вы практически без правок кода(а иногда вообще без них) можете увеличить максимальный размер сайта, например, с 1280px на 1360px или 1920px. Не стоит делать бесконечную резину, так как это нечитабельно на больших мониторах. Идеальным вариантом будет html верстка, включающая в себя все основные разрешения экрана, в том числе мобильные, например, резиновая верстка под разрешения экрана от 240px до 1920px.

Есть несколько видов html верстки , которая отличается визуально. Рассмотрим кратко эти виды верстки, прежде чем перейти к практическому построению каркаса:

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

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

2) Резиновая верстка - возможность основного контейнера сайта растягиваться в ширину от и до указанных минимальных и максимальных размеров. Резиновая верстка может быть без указания минимального (будет не очень прилично смотреться на экранах меньше Npx, статичные объекты могут наплывать друг на друга, если не добавить адаптивности) или максимального размера, тогда она будет расширяться бесконечно (представьте себе, как будет выглядеть статья на разрешении 7000px, практически в одну строчку), поэтому хорошая html верстка всегда имеет разумные пределы. Поэтому, всегда нужно проверять результат верстки на разных разрешениях и в разных браузерах.

3) Адаптивная верстка - возможность как основного контейнера так и любого из элементов сайта подстраиваться под разрешение экрана, позволяя, таким образом, менять размер шрифта, расположение объектов, цвет и все, что только можно пожелать. Причем, делается это динамически, без действия пользователя, например с использованием медиа запросов, позволяющих автоматически определять разрешение монитора, тип устройства (мобильный, смартфон, планшет), и подставлять указанные значения в автоматическом режиме. Это дает большие возможности. Например, при комбинировании резиновой верстки с адаптивной можно настроить отображение сайта, начиная от самых мелких мобильных разрешений, и заканчивая самыми большими мониторами. Адаптивная верстка не затрагивает возможности резиновой или фиксированной, она их дополняет.

Поэтому, оптимальным вариантом на сегодняшний день будет html верстка, изначально построенная как резиновая верстка, например 980px-1920px, модернизированная до 240px с помощью адаптивной верстки. Нужно всегда помнить главное отличие:

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

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

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

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

Верстка каркаса

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

Для того чтобы создать основной каркас , который и будет уменьшаться до 240px и увеличиваться до 1920px , а при разрешении больше чем 1920px выравниваться по центру, нужно разместить контейнер сразу после тега body, и закрыть его перед закрывающим тегом body. Всю остальную начинку уже нужно внедрять внутри него.

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

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

Но, так как мы уверены, что обволакивающий контейнер у нас будет только один на всем сайте, целесообразнее присвоить ему не класс а идентификатор. Отличается идентификатор от класса тем, что класс можно использовать сколько угодно, а идентификатор может быть только один на странице. Идентификатор имеет более приоритетное значение так как он один, к нему можно обратиться конкретно. Это можно сравнить с очередью на вокзале. Все слышали как на жд вокзале объявляют, например, гражданка Кутузова Аделина Матвеевна, пройдите к диспетчеру...

В данном случае обращение к гражданке по ФИО и есть аналог идентификатора в html (еще говорят айди, айдишник, ID). А обращение типа уважаемые пассажиры, отправка поезда..
Будет сравнимо с классом, так как обращение идет ко всем пассажирам, без конкретного обращения.

Наличие идентификатора не запрещает использовать класс, причем одинаковое имя класса и идентификатора(ID) являются разными, и можно к такому блоку обратиться что по классу, что по id.
Например:

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

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

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

Сайдбары и футер должны находиться в исходном коде ниже чем основная часть, которую нужно выделить тегом article, указывающий поисковику основной контент. Помимо этого будем использовать теги:header, main, article, aside, footer, назначение которых, в первую очередь, показать семантическую значимость и приоритеты в структуре. Поэтому, верстка нашего пока что не резинового макета, после добавления этих тегов будет иметь такой вид:

Html код

Показать код

Верстка каркаса от сайт Шапка Каркас шаблона Для будущего сайта

контент

Левый сайдбар Правый сайдбар Футер

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

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

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

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

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

1) Если внимательно присмотреться, то футер находится за пределами основного контейнера. Это не случайно, так как такое расположение даст возможность прижать футер к низу. Думаю многие видели на сайтах футер который при любом масштабе остается внизу. И многие хотели узнать как это делается. Поэтому я по ходу объясню механизм, после чего все станет ясно.

2) Многие, увидев на сайте растягивающийся на 100% футер и хеадер, и резиновый центр, уже считают это адаптивным дизайном. Это не совсем так, адаптивность - это более широкое понятие и более совершенные трансформации, но в данном уроке это не рассматривается. Тем не менее, резиновая верстка может быть различных видов, в том числе и вышесказанного вида. Поэтому, давайте сразу модернизируем наш шаблон, чтобы в итоге шапка и футер были всегда 100%, но при этом видимая часть содержащегося в них контента была от 240px до 1920px и по центру.
Такой метод я использовал на этом сайте.

3) Поэтому, нужно добавить еще кое-что в нашу верстку, чтобы осуществить задумки, описанные во втором пункте. Итак, для того чтобы наш футер и хеадер были всегда 100% (обычно эти блоки заполняют фоном, изображениями и тд) и при этом их наполнение не выходило дальше 1920px, сделаем следующее:

1) Вынесем над обволакивающим контейнером, прямо перед body
2) Создадим несколько блоков с одинаковым классом, например, я обычно называю его.maxw, поэтому не буду отходить от своих правил. Добавим его в header и footer, и присвоим этот класс нашей основной секции с классом.section. Также добавим условие для старых версий IE, с вызовом набора правил при условии захода с IE < 9 (если такие пользователи еще есть), и специальный метатег meta name =" viewport " для корректного соотношения масштаба на устройствах типа планшет, смартфон, и тд (такие пользователи точно есть).
3) Для того чтобы управлять поведением наших блоков на разрешениях экрана ниже 980px, в самый низ файла стилей добавим правила @media, в которых и пропишем нужные изменения для определенных блоков, в нашем случае для сайдбаров. Заставим их при разрешении экрана ниже 980px перемещаться под контентную часть, и выравниваться по центру.
В результате наша html верстка будет выглядеть так:

Итоговый html код

Показать html код

Верстка каркаса от сайт Шапка Каркас шаблона Для будущего сайта

контент

Левый сайдбар Правый сайдбар Футер

Наш файл стилей будет выглядеть так:

Css код

Показать css код

* { margin: 0; padding: 0; } html { height: 100%; } header, nav, section, main, article, aside, footer { display: block; } body { height: 100%; width: 100%; background: #fefefe; } .maxw { margin: 0 auto; min-width: 240px; max-width: 1920px; } header { min-width: 240px; width: 100%; height: 220px; background: #74C9FF; } #wrapper { position: relative; margin: 0 auto; height: auto !important; height: 100%; /*min-height: 100%; - Нужно для прижатия футера к низу*/ padding: 5px 0; } .section { width: 100%; padding: 0 0 220px; position: relative; } .section:after { content: ""; clear: both; display: table; } .mainwrap { width: 100%; float: left; overflow: hidden; } main { padding: 0 240px 0 240px; min-height: 350px; margin: 0; } article { padding: 0 5px; margin: 0 5px; background: #EAF2F5; min-height: 350px; } #s_left { float: left; width: 240px; margin-left: -100%; left: 0; position: relative; background: #E88139; min-height: 350px; } #s_right { float: left; width: 240px; margin-left: -240px; right: 0; position: relative; background: #E86A3B; min-height: 350px; } footer { margin: -220px auto 0; width: 100%; min-width: 240px; height: 220px; background: #AFBFC6; position: relative; } /* Для отображения на устройствах меньше 980px*/ @media screen and (min-width:240px) and (max-width:479px) { main { padding:10px; } #s_left { padding: 0; margin: 0 auto; float: none; clear: both; left: 0; } #s_right { padding: 0; margin: 0 auto; float: none; clear: both; right: 0; } } @media screen and (min-width:480px) and (max-width:799px) { main { padding:10px; } #s_left { padding: 0; margin: 0 auto; float: none; clear: both; left: 0; } #s_right { padding: 0; margin: 0 auto; float: none; clear: both; right: 0; } } @media screen and (min-width:800px) and (max-width:979px) { main { padding:10px; } #s_left { padding: 0; margin: 0 auto; float: none; clear: both; left: 0; } #s_right { padding: 0; margin: 0 auto; float: none; clear: both; right: 0; } }

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

1) Мы вынесли header за пределы, так как в первом варианте он был внутри обволакивающего контейнера. А обволакивающий контейнер, в свою очередь, был максимум 1920px, как было сказано в самом начале. Это не дало бы возможности сделать header шириной 100%, он бы упирался в родительские 1920px. Поэтому мы убрали у обволакивающего максимальную ширину, и вынесли за его пределы, плюс создали класс.maxw , которому и назначили эти максимум 1920px и выравнивание по центру. Теперь у нас получилось, что 1920px будет у любого блока с классом.maxw. Поэтому, внутрь header и footer мы положили div контейнер с этим классом, благодаря чему все что внутри него будет находится, растянется от 240px до 1920px, и будет выравниваться по центру если разрешение больше чем 1920px. Это можно увидеть, меняя разрешение масштабом, например, ползунком в опере.

2) Футер, прижатый к низу. Это тоже важная особенность верстки. Здесь секрет заключается в следующем:
Сам футер находится за пределами обволакивающего контейнера, а тот, в свою очередь, имеет 100% высоты. Также section, который находится внутри обволакивающего, но сам обволакивает сайдбары и центральную часть, он дает отступ снизу на высоту футера с помощью padding. Это создает пустое место внизу под контентом. Так как высота 100%, а футер находится за пределами блока, он сдвинут за пределы видимости на расстояние равное его высоте. Создавая отступ снизу с помощью padding:0 0 100px мы готовим место для футера, чтобы его сдвинуть на высоту с отрицательным значением. Это даст отступ сверху в обратном порядке, а значит он сдвинется вверх на свою высоту. В итоге мы имеем отступ снизу 100px, футер сдвинутый на 100px ниже экрана, и это постоянная позиция. Когда мы даем футеру команду margin:-100px auto 0 , мы таким образом подымаем его из под низа экрана в созданную полость. В итоге имеем футер прижатый к низу экрана.

3) Резиновая верстка интересует многих, поэтому наш урок посвящен верстке сайта, точнее сказать верстке каркаса сайта, который должен иметь два сайдбара фиксированной ширины, в нашем случае это 240px, но при этом на любом экране от 240px до 1920px наш каркас должен произвольно растягиваться по ширине, причем html верстка должна понимать, что нам нужно только центральную часть растянуть, сайдбар не трогать!

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

Здесь все не так сложно как могло бы показаться на первый взгляд. Верстка css стилей, это тоже верстка, а значит подчиняется определенным правилам верстки стилей сайта.
Важную роль в этом играет отступ слева и справа, который мы прописали для тега article. Если посмотреть html код, то увидим, что есть некий контейнер с id=container, имеющий 100% ширины. Внутри него есть наш article, который имеет внутренние отступы слева и справа, padding:10px 270px. Но ширина для него не указана, а с учетом того, что он имеет display:block(мы указали для html5 элементов, чтобы они перестали быть инлайновыми), он будет на всю ширину, а не имея явной ширины, отступы внутрь будут в пределах контейнера, а не за ними. Благодаря такой комбинации мы имеем id=container, внутри которого article с отступами слева и справа по 270px. Сайдбары у нас по 240px, а по 20 на отступы от центрального article.

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

Закрывается перед левым и правым aside, таким образом они находятся под main, который уже сделал отступы слева и справа по 240px, то есть мы как и в случае с прижатым к низу футером имеем слева и справа пустое место по 240px, а сайдбары сразу под левым сайдбаром, оба. Им просто очень нравится правило по умолчанию находиться в левом верхнем углу. Учитывая что над ними находится , место слева под ним и будет являться следованию правилам. Вот такая она хитрая, эта верстка, а резиновая верстка еще хитрее. Но лекарство от этого есть, и мы как раз его и обсуждаем. Поэтому для нас это просто верстка..

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

Левый блок идет первый, поэтому дадим ему отрицательный отступ на margin-left:-100% , и он обхитрит сам себя, появившись ровно в пустом месте, которое нам приготовил article. Верстка это хорошо, резиновая верстка еще лучше, а готовая верстка, это еще лучше, особенно после долгих сражений. Поэтому контрольный выстрел в нашего оппонента под названием резиновая верстка - это сдвиг правого сайдбара на его же ширину влево. Почему влево?
Да потому что он был справа, не влез на 240px, и его сместило вниз, в левый угол, все по правилам, html тут не виноват, а css тоже с характером. Поэтому margin-left:-240px решит оставшуюся проблемку, сдвинув правый блок ровно в приготовленное пустое место справа от aside.

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

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

Резиновая верстка