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

1. Вёрстка сайтов и Windows 8

На днях, коллега выложил в социальной сети скриншот видеохостинга “Youtube”, с вопросом:
“Никто не в курсе, что за беда с Ютюбом? Почему он забился в левый угол? Нафига столько свободного места на главной?"

После некого мозгового штурма, мне пришло в голову, что скорее всего на это как-то повлиял новый интерфейс новой версии операционной системы Windows. Думаю, что все таки я прав, т.к. самая функциональная панель Windows 8 всплывает с правой стороны и сразу съедает 378 px от области просмотра окна, соответственно, чтобы на экране было максимальное количество полезной информации, компания Google стала смещать полезную верстку влево. Это хорошо видно при разрешение экрана от 1388px по длинной стороне

Как можно увидеть, при смещении верстки влево, функциональной панелью не перекрывается главное содержимое (видео в стандартном представлении.

2. Теги HTML5

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

Например у на есть такой код:
Тест HTML5

LoremIpsum










Копирайт@12

Во всех современных браузерах (IE9/10, Chrome, Firefox, Opera, Safari5) данный код отображается корректно:

Но в нашем «любимом» Internet Explorer с кодом уже возникаю проблемы, и стили перестают срабатывать.

После разных способов задать стили в у меня получилось только привычным способом - это элемент div, которому задается класс. Поэтому я предлагаю взять за некоторое правило (возможно уже кто-то взял, но для себя я только недавно обнаружил этот момент), что в случае необходимости верстки для IE8 и младше, стоит в брать div и назначать ему имя класса, в соответствии с тегом в спецификации HTML5:

Тест HTML5

LoremIpsum
Боковая панель.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec lobortis felis eu velit dignissim in fermentum justo cursus. Suspendisse potenti.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec lobortis felis eu velit dignissim in fermentum justo cursus. Suspendisse potenti. Aenean odio quam, egestas rhoncus posuere at, imperdiet vel sem. Curabitur in nisl neque, ac porttitor arcu. Sed sed est lectus, in egestas nisi. Morbi turpis urna, feugiat fermentum condimentum quis, congue non quam. Vivamus auctor ultricies tincidunt. Pellentesque eget nunc tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vel ante justo. Sed ornare diam sit amet risus convallis mattis. Fusce a augue sit amet felis vehicula iaculis. Nunc lectus lectus, pretium id pulvinar sit amet, pulvinar a metus. Nam ultrices lobortis erat, et mollis odio tristique vel. Suspendisse nec massa dui, nec tempus sapien.

Donec congue lorem id orci congue vel interdum orci pellentesque. Vivamus nec orci vitae diam scelerisque faucibus id dictum felis. Vivamus dictum rhoncus ipsum, vel tempor sapien aliquet vel. Vestibulum lobortis sodales leo, ut lobortis ligula tristique nec. Mauris vitae dolor leo, vehicula semper ligula. Nam sed orci leo. Sed auctor iaculis mauris non pretium. Vestibulum eros tortor, consectetur id varius et, porta in magna.

Fusce vel turpis turpis. Cras dapibus neque et quam cursus euismod. Donec justo felis, scelerisque quis ornare nec, aliquam ut mi. In est augue, vestibulum ac volutpat id, laoreet vitae diam. Proin non libero ac libero ultrices tristique ac in neque. Nam nec lacus id erat volutpat iaculis. Nam dapibus fringilla adipiscing.

Aliquam erat volutpat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Phasellus interdum lorem a sem rutrum vulputate. In est felis, consequat ut malesuada sed, volutpat quis purus. Sed non urna eget metus ornare condimentum ac quis diam. Quisque eleifend dapibus ligula, at mollis justo tristique tempus. Morbi viverra vehicula nisi, vel aliquam lacus malesuada eu. Sed pulvinar eros et quam sodales ullamcorper. Donec volutpat magna vel massa lobortis scelerisque.

Nulla mattis pharetra elit, eu dapibus orci fringilla tempus. Donec vel sodales elit. Ut non justo at purus facilisis interdum. Fusce porttitor feugiat lacinia. Aliquam a tortor metus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nunc malesuada auctor nisl non vehicula. Nulla nec eros eget leo vestibulum rhoncus. Praesent rhoncus sapien eget turpis mollis et scelerisque urna consectetur. Fusce ullamcorper tempus vehicula. Integer mauris mauris, eleifend quis ultrices nec, hendrerit vel urna. Suspendisse malesuada magna non lacus imperdiet egestas. Integer condimentum libero at diam tincidunt luctus. Duis eget erat in sem dictum tempus quis eget nisl. Donec nisl lacus, lobortis non facilisis a, ultricies in quam.

Вывод:

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

P.S. Прошу сильно не бить, первая статья на хабре.

Теги: Верстка, HTML, веб-дизайн

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

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

Кроссбраузерной;
- адаптивной ;
- содержать минимальное количество кода;
- способствовать высокой скорости загрузки web-страниц;
- базироваться на применении HTML-тегов исключительно согласно их предназначению (последовательность и иерархичность системы внедрения элементов также считается неотъемлемым требованием);
- валидной (соответствие кода сайта общепринятым техническим стандартам W3C).

Виды

Теперь приступим к рассмотрению видов HTML-верстки.

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

2. Резиновый тип HTML-верстки подразумевает заполнение страницей всего экрана устройства. И здесь не имеет большого значения то, где именно вы осуществляете просмотр контента. Изначальные параметры страницы (размер, например) также ни на что не влияют. Поскольку web-элементы занимают все свободное пространство, значительно усложняется процесс разработки удобного дизайна.

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

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

4. Верстка web-блоками (или div-верстка). Считается, что это наиболее распространенный способ конструирования сайтов на сегодняшний день. Сетка формируется за счет тегов

и . Доступ к ним обеспечивается благодаря web-элементам class и id. Поверхностно изучить особенности такой верстки можно при помощи набора комбинации Ctrl+U (способ открытия исходного кода страницы в браузере).

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

6. Гибкая верстка (flex). В кругах web-дизайнеров поговаривают, что за этим видом верстки кроются неограниченные возможности, перспективы в области программирования. Для того чтобы не быть голословными, представляем вам перечень ключевых преимуществ гибкой верстки:

Все блоки подлежат сжиманию и растягиванию, необходимому для эффективного заполнения имеющегося пространства;
- присутствуют ресурсы для выравнивания текстовых материалов по горизонтали и вертикали;
- нет необходимости в четком размещении компонентов в HTML;
- возможно написание языков как справа налево, так и слева направо (хотя в данном случае более подходящими будут понятия «начало» и «конец»);
- освоение CSS подразумевает минимальные временные затраты.

7. Семантическая HTML-верстка позиционируется в качестве расширения блочной верстки. Проанализировать функционал можно на платформе HTML5. Заметим, что обновленный комплект тегов позволяет улучшить показатель структурированности web-страницы (поисковые системы отдают предпочтение порталам с семантическим кодом).

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

Понятие термина «верстка»

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

В эпоху докомпьютерного набора верстка производилась посредством ручного набора текста строками на линотипе или монотипе, и иллюстраций-клише. Текстовые строки и иллюстрации обкладывались пробельными материалами и линейками. Современная верстка осуществляется как в стандартных программах, таких как Microsoft Word, так и в Ventura Publisher, Adobe PageMaker, Adobe FrameMaker, CorelDraw, Microsoft Publisher и QuarkXPress, Adobe InDesign.

Виды верстки

Условно верстку можно классифицировать по следующим признакам:

1. По виду издания:

Книжно-журнальная верстка

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

  • -- годовые отчёты;
  • -- рекламные брошюры;
  • -- каталоги;
  • -- художественные альбомы.

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

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

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

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

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

Газетная верстка

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

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

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

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

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

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

Подвал - статья, размещенная в нескольких, а чаще всего во всех колонках внизу полосы. Отделяют подвал от предыдущего текста линейкой; заголовок подвала располагают чаще всего над первыми двумя-тремя колонками. Высота подвала должна быть не больше 1/3 и не меньше 1/4 высоты полосы.

Стояк - статья, заверстанная на две-три колонки по всей высоте полосы.

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

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

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

Объявления заверстывают обычно на последней полосе.

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

Акцидентная верстка (акцидентный или мелочный набор)

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

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

Для профессионального оформления сайтов необходимо знать не только основы CSS, но и понимать, как работает браузер, знать правила, которым он следует. Именно они определяют основные способы и приёмы вёрстки.

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

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

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

Таблица

Исторически, первым и единственным способом раскладки страницы были таблицы. Описанию поведения таблиц посвящена целая глава в спецификации CSS 2.1. Несмотря на такой объем, некоторые моменты описаны скудно или вообще не определены и отданы на усмотрение браузеров.

Достоинства и недостатки

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

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

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

Особенности

Ячейки таблиц идут в коде строго друг за другом, слева направо или справа налево в зависимости от направления языка, заданного CSS-свойством direction или его аналогом в HTML, атрибутом dir .

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

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

Имитация

Появившаяся в CSS 2.1 группа свойств display: table-* позволяет создать таблицу из произвольных элементов, имеющих соответствующую структуру.

Согласно спецификации, достаточно только одного объявления вроде display: table или display: table-cell - недостающие элементы должны автоматически достраиваться браузером.

Однако будет надёжнее создать минимальную структуру таблица > ряд > ячейка, аналогично обязательным тегам

, , в HTML, браузер обязательно создаст этот элемент, если только документ не обрабатывается в режиме XHTML, при отсутствии группирующих элементов , и . Этим можно пользоваться при оформлении, и обязательно следует иметь в виду при использовании родительского селектора, который может иметь запись вида table > tbody > tr > td . Селектор table > tr > td работать не будет.

Анонимные элементы при display: table-* , воссоздающие структуру таблицы согласно CSS 2.1, не влияют на дерево элементов. Им нельзя задать CSS-правила, действуют только наследуемые свойства.

Семантичность

Существует мнение, что использование display: table более семантично, так как используются теги, лучше соответствующие содержимому, и это поможет различным движкам в обработке страницы. Нередко при этом приводятся в пример программы чтения с экрана.

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

Кстати говоря, такую задачу мы с вами уже решали, когда я писал о .

Казалось бы, что повторяться не стоит, но я и не собираюсь этого делать. Сегодня будет описан принципиально другой способ верстки сайта , а также параллельно рассмотрим назначение директив @import и @media (с впереди) в уже изученном нами (на базовом уровне, конечно же) языке стилевой разметки CSS.

Верстка сайта на блоках — а оно вам надо?

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

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

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

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

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

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

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

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

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

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

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

Главная

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

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

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

Следовательно, переполнение левой или правой колонки не вызовет пропорциональное увеличение блоков с ID vnutr и vnesh (плавающие элементы на высоту своих родителей или, другими словами, контейнеров не влияют), а значит контент вылезет за их пределы, наедет на футер и вообще выйдет за границы макета. Беда.

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

Т.о. при увеличении контента в правой или левой колонке произойдет пропорциональное смещение вниз элемента с ID podporka, а т.к. этот тег уже не является плавающим, то блоки с ID vnutr и vnesh будут его учитывать и пропорционально увеличивать свой размер по вертикали:

Теперь вроде бы все работает правильно. Однако, наша верстка сайта еще не закончена. Допустим, что мы сделали в index.html таким образом макет главной страницы, а вот для какого-нибудь другого раздела вид макета должен будет отличаться (например, там должно быть не три, а только две колонки). Как выходить из этой ситуации?

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

Ну и файлик с таблицами каскадным стилей нам придется новый использовать, например, razdel.css. Вот именно в них мы и будем вносить изменения, а заодно посмотрим поподробнее, как же именно использовать директиву @import в таких случаях.

Давайте начнем с razdel.html:

Раздел ...

Мы изменили заголовок страницы Title и поменяли название подключаемого файлика стилей на razdel.css. При этом, естественно, необходимо будет в папке CSS этот самый файл стилевой разметки создать. Осмелюсь вам напомнить, что для index.html мы подключали стилевую разметку через osnovnoy.css, в котором была прописана одна единственная директива @import для подгрузки правил из файлика obdhiy.css:

@import url(obdhiy.css);

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

#right { display:none; } #center { margin-right:0; } #vnesh { background-image: none; }

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

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

@import url(obdhiy.css); @import url(dvekolonki.css);

Все правила, стоящие в коде ниже (из dvekolonki.css), будут иметь приоритет более высокий, а значит именно их действо мы и будет наблюдать на веб странице. В результате при открытии razdel.html вы уже сможете наблюдать двухколоночный вариант макета:

Собственно, дополнительной нашей задачей было рассмотреть варианты использования директивы @import в современной верстке сайтов , с чем, я считаю, мы справились.

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

Верстка макета для печати с помощью директивы @media

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

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

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

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

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

У атрибута media можно использовать и другие значения:

  1. all — используется по умолчанию и означает, что данный файл стилей нужно будет использовать для абсолютно любых устройств вывода
  2. braille — устройства для чтения пальцами (для слепых или слабовидящих)
  3. handheld — КПК, смартфоны и прочая мелочь
  4. print — принтеры
  5. screen — экраны мониторов пользователей, на которых они будут просматривать ваш сайт
  6. speech — речевые браузеры
  7. projection — проекторы
  8. tty — телетайпы и прочая рухлядь, на которой нельзя использовать размерность в пикселах
  9. tv — старый добрый телевизор

В приведенном чуть выше примере мы, с помощью атрибута Media, подключили к веб документу отдельный файл стилей для отображения на мониторе и отдельный для вывода на печать (print.css). Нам как раз подобное и нужно реализовать в этом уроке верстки, но лучше будет сделать это немного другим способом, с использованием именно директивы @media прописанной в файле стилей.

Если вы обратили внимание, то при таком способе верстки, который выбрали мы (с использованием @import), у нас имеется общий файлик стилей, который подключается всегда через эту самую директиву — obdhiy.css. Вот именно в нем мы и начнем колдовать.

@media имеет свой собственный синтаксис:

@media screen, tv{ набор селекторов и правил, которые будут выполняться только в случае вывода веб страницы на указанные чуть выше через запятую устройства }

В нашем файлике obdhiy.css не будем заключать все уже имеющиеся правила внутрь директивы @media screen, достаточно в самом его конце просто дописать необходимые CSS правила для вывода документа на печать с помощью @media print :

@media print{ *{ color:#000 !important; background:transparent !important; } html { font:10pt serif; } #footer, #header, #left, #right { display:none; } #center { margin:0; } a:after{ content:" (" attr(href) ")"; } }

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

Для селектора Html мы прописали задание умолчательного шрифта в , ибо принтеру так понятнее. Ну и шрифт задали любой с засечками (serif). C помощью display:none мы запретили отображения обвеса (шапки, футера и колонок), а с помощью margin:0 разрешили контенту из средней колонки занимать все доступное пространство по ширине.

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

Псевдоэлемент after позволяет осуществлять генерацию контента во время построения документа браузером. After позволит нам добавить URL адрес гиперссылки сразу после того места, где эта самая ссылка проставлена. Делается это с помощью специального CSS правила content, которое работает только для двух псевдоэлементов: after и before.



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

 
, с соответствующими значениями свойства display: table , table-row и table-cell .

В противном случае может возникнуть нерегулярно проявляющаяся ошибка, замеченная в Firefox и браузерах на основе Webkit, когда ряд таблицы без элемента с display: table-cell случайным образом разбивается на несколько ячеек. Возможное объяснение может состоять в попадании границы сетевых пакетов среди ячеек при передаче HTML-кода.

Таким образом, блочная разметка с display: table-* почти не отличается от обычной HTML-таблицы ни в чем, кроме имён тегов, однако обычная таблица лучше поддерживается браузерами (а именно в Internet Explorer 7 и ниже) и имеет больше возможностей, таких как объединение ячеек.

Стоит отметить, что, несмотря на необязательность тега