аукцион / donate / услуги / RSS / распечатать / вход 
Мой мир
Вконтакте
Одноклассники

[16 декабря 2011 | 19 декабря 2011 | 20 декабря 2011]

Стильный вывод (работа со стилями в CSS)

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

Собственно гибкость в работе с оформлением — это та самая последняя капля в море которая подтолкнула меня полностью избавиться от таблиц и перейти на дивную вёрстку. Теперь я реализовал свою старую задумку с ещё более гибким резиновым дизайном. Меня сильно напрягало, что меню сайта занимает много места при выводе на экранах мобильных устройств. Работая с таблицами невозможно добиться подобной гибкости, а вот работая со стильной вёрсткой — легко. Собственно, я сейчас отрабатываю стили для вывода на мобильные устройства. Если мой блог пытаются просмотреть с наладонника или сотового телефона, то я переношу меню из левой колонки в заголовок страницы (собственно, то же самое я делаю в том случае, если размер окна меньше 720 пикселей). Жалко, что отработка подобных условий появилась относительно недавно. Раньше, с малыми габаритами экранов, подобный функционал был бы крайне кстати.

Работа со стилями в CSS

И так, как спрятать div-слой при маленьком разрешении экрана? Достаточно добавить в CSS обработку размеров экрана. Это делается с помощью тригера @media:

@media (max-width: 720px)
{ #hisize {display: none;} }

Этот тригер сработает в том случае, когда размер окна не более 720 пикселей. Получается, что в случае когда размер окна не достигает указанного числа, то у него будет установлено свойство display: none. Но когда размер окна увеличится сверх установленной границы, то войдёт в действие свойство указанное в основном теле описания каскадной таблицы стилей.

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

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

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

Стильная печать с @media print

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

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

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

Тот кто пользуется стандартными шаблонами для WordPress, могут не задумываться о проблемах с некрасивой печатью так как в шаблонах, типа TwentyTen, уже есть тригер @media print со вполне красивым оформлением для печати. А вот в нестандартных шаблонах, лучше проверить и включить обработку CCS для вывода на печать.

В качестве примера могу предложить следующий код для подключения:

@media print {
body {
 background: none !important;
 }
 #wrapper {
  clear: both !important;
  display: block !important;
  float: none !important;
  position: relative !important;
 }
 #header {
  border-bottom: 2pt solid #000;
  padding-bottom: 18pt;
 }
 #colophon {
  border-top: 2pt solid #000;
 }
 #site-title,
 #site-description {
  float: none;
  line-height: 1.4em;
  margin: 0;
  padding: 0;
 }
 #site-title {
  font-size: 13pt;
 }
 .entry-content {
  font-size: 14pt;
  line-height: 1.6em;
 }
 .entry-title {
  font-size: 21pt;
 }
 #access,
 #branding img,
 #respond,
 .comment-edit-link,
 .edit-link,
 .navigation,
 .page-link,
 .widget-area {
  display: none !important;
 }
 #container,
 #header,
 #footer {
  margin: 0;
  width: 100%;
 }
 #content,
 .one-column #content {
  margin: 24pt 0 0;
  width: 100%;
 }
 .wp-caption p {
  font-size: 11pt;
 }
 #site-info,
 #site-generator {
  float: none;
  width: auto;
 }
 #colophon {
  width: auto;
 }
 img#wpstats {
  display: none;
 }
 #site-generator a {
  margin: 0;
  padding: 0;
 }
 #entry-author-info {
  border: 1px solid #e7e7e7;
 }
 #main {
  display: inline;
 }
 .home .sticky {
  border: none;
 }
}

Методы подключения CSS к документу

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

<link type="text/css" rel="stylesheet" media="print" href="/css/print.css" />

В свойстве media указывается для какого устройства используется данный CSS. Какие типы могут там использоваться я уже перечислял выше. Если вы хотите чтобы в одном файле хранились все определения, то можете туда вписать просто all.

Но можно всё хранить в одном месте, тогда для переопределения носителя используется тригер @media. Но, о его использовании я уже писал. Будет желание и свободное время, то я рекомендую поиграть с выводом на принтер. Свою вариацию на тему сокрытия ненужных информационных блоков при выводе на принтер я скоро допишу.

Тэги: SEO

Отредактировано:2020-09-28 08:05:40




4 комментария
Имя: West Blogger 🖉
Никогда не задумывался о печатных формах, да и не думаю что кто-то возьмется печатать на бумагу мои статьи :)
Комментарий оставлен: 2011-12-19 00:00:00


Имя: Orcinus Orca 🖉
West Blogger, а мои пользователи столкнулись. Собственно по этому и решил пойти им на встречу. Точнее несколько человек пожелали чтобы можно было распечатывать статьи с моего сайта нажатием на одну кнопочку. Про это я завтра напишу коротенькую статейку.
Комментарий оставлен: 2011-12-19 00:00:00


Имя: Вадим 🖉
Я действую просто — выделяю текст и жму Печать выделенного и текст в задуманном форматировании с картинками выводится на Ура)
Насчет CSS, такие чувства, что скоро в него встроят многие функции JS и при этом код будет очень простым...но это только мои догадки
Комментарий оставлен: 2011-12-19 00:00:00


Имя: Orcinus Orca 🖉
Вадим, в CSS3 есть много условных конструкций, это не JS, но с виду может так показаться. Жаль, что его не поддерживают старые IE и Opera. А вот все современные браузеры типа ФуфлоФокса и Хрена — отрабатывают его корректно и правильно.
Комментарий оставлен: 2011-12-19 00:00:00



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

Сообщайте мне о замеченных ошибках на: web@orcinus.ru. Все пожелания и советы будут учтены при дальнейшем проектировании сайта. Я готов сотрудничать со всеми желающими. В некоторых случаях, мнение автора может не совпадать с мнением автора! Phone: +7-902-924-70-49.

Top.Mail.Ru
Top.Mail.Ru LiveInternet Rambler's Top100 Яндекс.Метрика