Что такое верстка? Кроссбраузерная верстка в современных условиях — общее понимание необходимого принципа

Почему не один?

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

Таблица

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

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

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

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

Альтернатива. Не так давно в CSS появились специальные значения свойства display, которые позволяют имитировать таблицу, используя на самом деле блоки. Например, display: table, display: table-row, display: table-cell. Элементы, к которым применяться эти свойства, начнут вести себя как таблица, ряд таблицы и ячейка соответственно. Нужно скачать, что и этот метод несовершенен, потому что не совсем одинаково поддерживается во всех браузерах. Если вы используете эти свойства, нужно тщательно тестировать на кроссбраузерность.

Фреймы

Когда-то существовал еще один метод верстки, но сегодня о нем практически забыли. Суть верстки с помощью фреймов заключается в том, что окно браузера делится на определенное количество независимых блоков (фреймов), которые формируются тегом frameset. Там указывается путь к html-страничке, которая будет загружена в фрейм.

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

Рис. 1. Такой вот пример сайта на фреймах я нашел в сети. Как вы понимаете, никакой эстетики.

Блоки

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

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

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

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

Флексбоксы (flex)

Самый новый метод верстки. Нормальную поддержку в браузерах впервые получил с 2014 года. Теперь многие разработчики придерживаются именно этого метода. Суть его в том, что структурным элементам прописывается display: flex. Это тоже своего рода блоки, только более гибкие и функциональные.

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

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

Рис. 2. Свойства flex-элементов делают их более гибкими, чем блоки.

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

Заключение

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

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

Наконец, сегодня мы имеем абсолютно новый способ верстки – элемент flex и его свойства, которые делают его более гибким и современным, чем привычный block. На этом на сегодня все. Не забывайте читать новые статьи на блоге, чтобы знать все о сайтостроении.

Создание современных сайтов подразумевает использование последних IT разработок при верстке интернет ресурса. Для этого применяются самые современные технологии в области HTML и CSS верстки. Главное – это соблюдать кроссбраузерность и следить за корректным отображением в старых браузерах.

Аббревиатура CSS (Cascading Style Sheets) переводиться как - каскадные таблицы стилей.

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

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

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

Верстка макета сайта: почему CSS предпочтительнее чем JavaScript?

При создании верстки макета с помощью CSS можно решить большое количество задач, вот лишь малая их часть:

  • интерактивные галереи;
  • несколько уровневые выскакивающие меню;
  • создание трёхмерных диаграмм;
  • анимация диаграмм.

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

Вот несколько аргументов в пользу CSS:

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

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

  • Правила верстки: адаптивная, блочная, css верстка
  • Качественная верстка сайта – гарантии от веб студии «АВАНЗЕТ»
  • Разработка сайтов – особенности дизайна и принципы верстки
  • Создание бизнес сайтов - принципы и особенности дизайна и верстки
  • Создание эффективного сайта. Удобная навигация – важная часть юзабилити

Верстка страниц с использованием CSS фреймворков

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

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

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

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

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

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

Виды верстки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Здравствуйте, уважаемые читатели блога сайт. Наша сегодняшняя задача состоит в том, чтобы сформировать так называемый макет сайта не с помощью (вчерашний день верстки), а с помощью элементов 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.

Для профессионального оформления сайтов необходимо знать не только основы 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 более семантично, так как используются теги, лучше соответствующие содержимому, и это поможет различным движкам в обработке страницы. Нередко при этом приводятся в пример программы чтения с экрана.

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

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

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

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