Дедушкин блог о дизайне и фрилансе

Работаем дома с удовольствием

Дедушкин блог о дизайне и фрилансе

Вы RSS выписывать будете?

У меня еле еле хватает сил телевизор смотреть.

Делаем версию для печати через CSS

16 января, 2009 г. · Комментариев: 8

Сегодня вас ждёт заметка из серии советов по дизайну. И дизайну не графическому, а дизайну интерфейса. Думаю, многие из вас хоть раз распечатывали страницу сайта прямо из браузера. Последовательность обычно такая: нажать Ctrl+P, ждать минуту, потом догадаться вставить бумагу в принтер, снова нажать Ctrl+P, удивиться, зачем было печатать столько баннеров, счётчики и главное меню. Нужна-то была всего лишь карта проезда и контакты.

принтер

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

Зачем делать отдельную версию

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

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

Как указать, что печатать?

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

Таким образом в печать уйдёт то, что находится в области контента. Всем элементам, которые вы хотите спрятать при печати, присваивайте свой класс, например «no-print».

<img src="/ban/sobchak.jpg" class="no-print">

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

img[src*="/ban/"] { display: none !important; }

Этим кодом мы скроем все баннеры, которые будут встречаться в любом месте на странице. Таким же образом нужно сделать невидимыми остальные элементы.

.no-print { display: none !important; }

Применение на практике

Для того, чтобы файл print.css обрабатывался только во время отправки на печать, нужно указать его в <head> таким образом:

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

На странице мы можем вставить ссылку на печать:

<a href="javaScript:window.print();">Распечатать эту страницу</a>

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

Теги: , ,

Вам тут просили передать:

Танцуем и программируем
Свой стиль для игры «Яндекс.города»
Закрепляем меню слева в WordPress
Мой софт: онлайн-радиослушалка AirFM
Термины
Новый интерйфейс Google Adwords
Кровавый рекламный дизайн

Рубрика: cоветы

ремонт автомобилей тойота ремонт suzuki grand vitara дешево автосервис mazda

Комментариев: 8 ↓

  • 1 Максим Покровский // 19 января, 2009 // 19:48.

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

    img[src*="/ban/"]
    Красиво, но сам знаешь где это не будет работать :)

  • 2 Дедушка // 19 января, 2009 // 21:11.

    Максим, именно, при ГРАМОТНОЙ верстке. Из 10 последних проектов в 5 вёрстку приходилось доделывать, при том, что я плачу за неё обычно выше средней рыночной стоимости, надеясь на качество.

    А где работать не будет, что-то я не понял?

  • 3 madFobos // 21 января, 2009 // 19:19.

    img[src*="/ban/"]

    А действительно смысл от этого, если в IE все равно не будет работать, если не ошибаюсь (сам не верстальщик). Ведь очень многие его используют (особенно за пределами России и СНГ).

  • 4 Дедушка // 21 января, 2009 // 22:00.

    madFobos, давно вас не слышал. Если обращаться к объекту по его классу, он будет скрываться и в Internet Explorer. А вариант с маской в IE я не опробывал, т.к. он чаще используется тогда, когда нет доступа к html и нужно решать вопросы исключительно через CSS.

  • 5 madFobos // 22 января, 2009 // 12:44.

    Да отдыхал я от фриланса и вообще от всего :) Я-то как раз про маску говорил, что от нее смысла немного, т.к. в IE баннеры таким способом на печати не уберутся.

  • 6 Дедушка // 22 января, 2009 // 13:22.

    Понятно, и как дорожка?
    Убирать лучше классами, они везде работают.

  • 7 madFobos // 22 января, 2009 // 14:17.

    Дорожка отлично :) Бегаю каждое утро по 15 минут… Выносливость и дыхалка точно развиваются. 1.5 км вообще уже без проблем можно пробежать :)

  • 8 Дедушка // 22 января, 2009 // 15:04.

    Супер, а я всё присматриваю…

Пожалуй, я отвечу

спасибо