Статьи

Когда посетители печатают — об этой таблице стилей печати

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

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

Вы правы, это такая драматизация, не каждый заходит на ваш сайт и нажимает кнопку печати, но когда они вас окрылили?

Почему посетители печатают?

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

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

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

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

Создание таблицы стилей печати во Flash

Начните с чистого листа

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

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

— файл для экрана и файл для печати

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

Удалить беспорядок и сохранить окружающую среду

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

Подумайте обо всем, что однажды не имеет значения на бумаге, и удалите его одним движением:

 ``/* -- Hide screen specific elements -- */
nav,
footer .footer-links,
feature a.prev,
feature a.next {
display: none;
}``

Сделайте чтение приятным

Часто упоминается, что тип Sans Serif отлично подходит для чтения на экране, а лучшим вариантом для печати является тип Serif.
Это не обязательно должен быть Times New Roman и, тем более, Times New Roman, вот пример, который использует простой интервал, Georgia и немного стиля CSS3, чтобы оживить страницу:

 ``/* -- Typography -- */
body {
    background: #FFF;
    color: #000;
    font-family: Georgia, serif;
    line-height: 1.2;
}</p>

p, table, ul, ol, dl, blockquote, pre, code, form {
    margin: 0 0 1em;
}

    h1,h2,h3,h4,h5 {
    font-weight: normal;
    margin: 2em 0 0.5em;
    text-shadow: rgba(0, 0, 0, 0.44) 1px 1px 2px;
}

h1 { font-size: 2em; margin: 2em 0 0.25em; }
h2 { font-size:1.7em; }
h3 { font-size:1.5em; }
h4 { font-size:1.2em; }
h5 { font-size:1em; }``
Example of serif type in a print stylesheet

Код выше в действии

Брендинг

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

У ABC News (Австралийские радиовещательные ведомства) есть отличный пример этого, когда они включили печатную версию своего логотипа, которая ждет, когда кто-нибудь напечатает:

Версия логотипа ABC, удобная для печати, ждет подходящего момента:

 <a href="/news/" id="news-logo">
    <img class="print" src="/news/assets/v5/images/common/header-logo-print.png" width="800" height="100" alt="ABC News" title="ABC News">
    <img class="noprint" src="/news/assets/v5/images/common/logo-news.png" width="288" height="80" alt="ABC News" title="ABC News">
</a>

Выдержка из таблицы стилей ABC, на которой скрыт удобный для печати логотип:

 .print {
    position: absolute;
    top: -32768px;
    left: -32768px;
}
ABC logos, screen and print versions

Экранные и печатные версии логотипа новостей ABC (abc.net.au/news) изображены сверху и снизу соответственно

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

 #header strong {
    color: #000;
    display: block;
    font-weight: normal;
    font-size: 3em;
    margin: 0 0 1em;
    padding: 0;
    text-shadow: rgba(0, 0, 0, 0.44) 1px 1px 2px;
}

Сохранение заголовка простым с оттенком таланта

Вы не можете нажать на листе бумаги

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

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

 <p>``#content a:link:after,</p>

content a:visited:after {

  content: " (" attr(href) ") ";
  font-size: 80%;
  text-decoration: none;
}``

Решение для неуправляемых ссылок, впервые упомянутое еще в 2002 году Эриком Мейером и по-прежнему популярное как никогда.
Обратите внимание, что вышеуказанный CSS ограничивает себя всеми ссылками в контенте. Так что такие вещи, как ссылка вокруг логотипов, не отображаются.

Верните этих посетителей на ваш сайт

Print message

Пример сообщения, которое отображается только в печати

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

 #content:before {
    content: "Thank you for printing this page. Do come back to foo.tld, we are constantly adding new and interesting articles and tutorials. Note: To help the environment we have automatically removed navigation and other unnecessary elements from the page.";
    display: block;
    border: 1px solid #ccc;
    font-style: italic;
    margin: 0 0 1em;
    padding: 8px 10px;
}

— CSS выше печатает сообщение в верхней части страницы с рамкой и некоторыми отступами. Это сообщение может быть изменено на что угодно в зависимости от аудитории сайта.

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

Размещение для интерактивных элементов

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

 display: none;

декларация, чтобы скрыть то, что не показывается.

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

Возьмем в качестве примера фотогалерею. Зайдите на сайт jQuery Tools и ознакомьтесь с демонстрацией их прокручиваемой галереи изображений в действии. Если вы откроете Firebug или ваш любимый аналог и нацелитесь на содержащий его элемент фотографий, вы увидите, что плагин jQuery Tools Scrollable добавляет встроенное «левое» объявление, которое перемещает и толкает галерею влево и вправо.

 ``<div class="scrollable"> <br />
   <!-- root element for the items -->

<div class="items">
      <!-- 1-5 -->
      <div>
         <img src="http://farm1.static.flickr.com/143/321464099_a7cfcb95cf_t.jpg">
         Y
      </div>
      <!-- 5-10 -->
      <div>
         <img src="http://farm1.static.flickr.com/163/399223609_db47d35b7c_t.jpg">
         Y
      </div>
      <!-- 10-15 -->
      <div>
         <img src="http://farm4.static.flickr.com/3629/3323896446_3b87a8bf75_t.jpg">
         Y
      </div>
   </div>

</div>``

Теперь, чтобы распечатать это подходящим способом, давайте начнем с объявления с важным утверждением, которое переопределяет этот встроенный стиль:

 .scrollable .items {
    left: auto !important;
}

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

 .scrollable .items {
    left: auto !important;
    overflow: hidden;
}
 .scrollable .items div {
    float: left;
    margin: 0 10px 0 0;
}

Предварительный просмотр со стилем

С тех пор, как я впервые увидел Safari Reader , я удивлялся, как посетитель может щелкнуть ссылку для печати и увидеть лист бумаги А4, скользящий по экрану, включая предварительный просмотр того, что он собирается напечатать. Затем я начал думать о достоинствах плагина jQuery, который легко развернуть на любом сайте, где есть таблица стилей для печати. То, что показывало посетителям то, что они собирались напечатать, прежде чем они напечатали, не нуждаясь в «печатной версии» сайта.

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

Получите настройку в три этапа:

  1. Настройка таблицы стилей печати
  2. Включая плагин jQuery и немного CSS (в комплекте) для оформления скользящего лайтбокса / модального окна.
  3. Добавление ссылки на предварительный просмотр и инициализация плагина

Для получения полных инструкций по использованию перейдите на страницу GQub для подключаемого модуля jQuery Print Preview .

Чего же ты ждешь?

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

  • Разработайте дополнительные элементы, такие как таблицы. Для некоторых идей прочитайте статью Джонатана Снука под названием « Потрясающие сказки с CSS» на Sitepoint.
  • Если вы применяете таблицу стилей для печати к сайту с комментариями, почему бы не заглянуть в «разрыв страницы до: всегда;», чтобы переместить все комментарии на новую страницу — предлагая посетителям возможность оставлять последние страницы при печати
  • Приспосабливайтесь к JS, перекрывая любые стили, управляемые JS, такие как непрозрачность. Посмотрите демонстрацию выше для некоторых идей.

Все идеи в этой статье можно увидеть в этой демонстрации .

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