Каскадные Таблицы Стилей

индекс
324,89

Печатаем сайты — о незаслуженно игнорируемом правиле @media

Сегодня я попытаюсь рассказать о том, почему на современных сайтах не должно быть ссылки «версия для печати».
Спецификация CSS 2.1 подразумевает, что наша страничка может выводится на следующие типы носителей:
all — стили будут работать для любого типа устройства по мере его способностей
braille — для вывода на устройства, выводящие информацию азбукой Брайля для слепых
embossed — то же что и braille, но не для устройств, а для физических страниц
handheld — говорит за себя — для устройств, ограниченных в разрешении и пропускной способности сети
print — тоже очевидно — для вывода на устройство печати постраничного материала (он же будет отображен в предпросмотре печати большинством современных броузеров)
projection — для презентаций, тоже постраничных
screen — для вывода на экран компьютера, где мы чаще всего сейчас и видим HTML-документы
speech — для вывода на «читалки»-синтезаторы (в CSS2 назывался «aural»)
tty — для любителей Lynx, проще говоря — для терминального вывода с ограничениями по форматированию
tv — для вывода на телевизор (низкое разрешение, проблемы с промоткой)
Мы остановимся на print и screen

Взять нужный стиль — обязанность броузера. Рассказать ему, какой стиль следует применять на том или ином носителе можно двумя способами:
с помошью правил @import и @media непосредственно в CSS-файле
@import url("style4print.css") print;
@media print {
	описания стилей
}

или в HTML с помощью атрибута media тега link:
<link rel="stylesheet" type="text/css" media="print, handheld" href="otherStyle.css" />


Хорошие новости!

Это работает во всей большой 4-ке (IE, Firefox, Safari, Opera). Думаю, должно работать и во всех броузерах, работающих на соответствующих движках.

Что нам это дает?
  • Нет необходимости делать особенную версию для печати и необычных устройств.
  • Печать строго в соответствии с нашим представлением о прекрасном.
  • Возможность заменять изображения на бОльщие или меньшие по разрешению и/или цветности. Например, вместо цветного вебдванольного логотипа можно зарядить черно-белый Gif с высоким разрешением или наоборот, уменьшенный его вариант.
  • Чувство глубокого удовлетворения от проделанной работы.

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

Итак, с чего начать.

Оптимальнее всего, взять весь уже написанный стиль и поместить его в «контейнер» all.
Таким образом, этот стиль будет работать для всех носителей.
Далее пишем «контейнер» print.
Первым делом, убираем то, что печатать не нужно:
  • Рекламу (мы же получаем за клики а не за распечатки, правильно?)
  • Навигацию
  • Все остальное, что мы не хотим выводить на печать

@media print {
	.class|#id, .class|#id_1, ... , .class|#id_n {
		display: none;
	}
}

Лучше сделать весь текст черным
...
body, p, h1, ..., hn {
	color: black;
	background: white;
}
...

Далее, в 99% случаев нужно убрать оформление ссылок
...
a, a:hover, a:active, a:visited {
	text-decoration: none;
	color: black;
}
...


Кое-что поинтереснее


Можно не только убирать, но и добавлять элементы.
Например, на нашем сайте я сделал вывод даты распечатки, добавив в его конец параграф
<p class="printOnly">Документ распечатан 28 августа 2008 года</p>

Нам не нужно выводить это на экран, поэтому пишем
@media screen {
	.printOnly {
		display: none;
	}
}

Можно заменить логотип на другой — с бóльшим разрешением.

@media all {
	.logo, .logo_hr {
		width: x;
		height: y; //не забываем установить одинаковые размеры отображения,
				повысив тем самым разрешение печати (естественно, логотип
				 для печати должен быть большим сам по себе)
	}
}
@media screen {
	.logo_hr {
		display: none;
	}
}
@media print {
	.logo {
		display: none;
	}
}

У меня не было возможности проверить, смотрят ли мобильные броузеры на handheld.
Было бы интересно узнать. Это открывает не такие уж и новые, но почему-то незаслуженно игнорируемые возможности.

UPD: К сожалению, разные броузеры по-разному трактуют поля. А как они отностяся к правилам CSS относительно разбивки документа на страницы (да, там есть и такое) я опишу в следующий раз
+171
28 августа 2008, 08:13
233

комментарии (90)

+2
daD #
хорошая статья, хорошие примеры, спасибо)

когда накинут кармы, перенесите в каскадные таблицы стилей.
–1
CurlyBrace #
Ага, уже накинули. Автор, переносите )
+2
MihallicA #
Сделано.
Рад что оказалось полезным :)
+8
CurlyBrace #
Ждем продолжения с page-break, widows, orphans и тд:)
+1
Voropaev #
Спасибо за проведеные исследования и такое методичное изложение.
+2
Andrey_Gordeev #
Автору спасибо.
А вдруг в мире поприбавится разумных верстальщиков и поубавится кнопок «версия для печати» )
+3
6coder #
Вот только что делать с пользователями, которые будут лихорадочно искать «версия для печати». А не найдя вставлять текст в ворд и печатать из ворда, потому что не захотят печатать в цветном. Они ведь не знают как сайт заверстан. ))
+1
lifeforweb #
Можно для таких делать кнопку «Распечатать», которая будет вызывать print().
0
Sannis #
Поддерживаю lifeforweb, советую прочитать ветку и всю статью.
0
eros #
а вот некоторые ищут кнопку не для того чтобы распечатать а чтобы посмотреть одной страницей и без рекламы — например многие сайты о высоких технологиях (не буду рекламировать)
0
el777 #
Замечательно, но есть несколько вопросов: получается, что все устройства (в т.ч. pda) должны грузить всю разметку и все стили — не создаст ли это проблем с отображением особенно «для самых маленьких и слабых»?

Насчет этого не уверен, но есть подозрение, что браузер будет в любом случае качать несколько логотипов, даже те, которые в настоящий момент не нужны — лишний трафик для пользователя. Но гораздо хуже, когда телефон начнет закачивать полноразмерный логотип для печати.
0
kr1z #
да вот для этого и статья эта, что-бы все это лишнее не грузилось по идее
0
el777 #
Нет эта статья учит как показать только нужное, но для этого приходится загрузить почти все.
Я не пробовал, но думаю, что print может и не загрузится просто так без попытки распечатать страницу — во всяком случае это было бы логично и хоршо с точки зрения браузера.
Но если у нас два лого прописано в HTML, то загрузятся оба, но покажется только одно.
+1
rumkin #
А с чего телефон будет закачивать полноразмерный логотип?
Да, если делать лого через тег, то он его закачает, если бекграундом к div или span, то закачает то что прописано в стилях!
Хотя я всё-таки выступаю за разделение сайта на обычную и облегчённую версию, потому что ничего универсального нет!
+1
elfiki #
Ну да, ведь ХТМЛ отдастся один и тот же, поменяется только его отображение…
+1
ScorpAL #
А разве мы уже можем контролировать размеры бэкграунда?
Может подскажете как мне в блок 100x100px вставить картинку 300x300px что бы она влезла в блок и нигде не обрезалась?

72 dpi для экрана. Для принтера гораздо больше.
0
ScorpAL #
Имелось в виду вставить картинку бэкграундом.
0
rumkin #
Тогда можно так:

@media screen{
    #logo-print{
        display: none;
    }
}

@media print{
    #logo-screen{
        display: none;
    }
}

Только этот стиль должен быть включён в страницу, а не подгружаться.
+1
ScorpAL #
Что и требовалось доказать.
Мы загрузим «большое» изображение но просто не покажем его. Расточительство получается.

Ок. постараюсь на пальцах:

Логотип #logo-screen = 2кб.
Логотип #logo-print = 10кб (с высоким разрешением).

Получаем:
Грузим оба логотипа (12кб), но показываем только 2кб.

Мне кажется не правильно как-то это.
0
rumkin #
мда, погорячился )
0
MihallicA #
двухцветный gif может запросто оказаться еще и меньше исходного цветного :)
0
ScorpAL #
Согласен.
Но все же… 2 объекта что бы показать один?

Вы же не открываете горячий и холодный кран что бы пустить только холодную воду?
0
MihallicA #
Ну да, это скорее хак
Только ради красивой распечатки.
Это не рекомендация, просто доп.возможность
+1
diomas #
Не берусь утверждать, но, по-моему, элементы с display: none не подгружают ресурсы, т.е. #logo-print потянет за собой 10Кб только непосредственно перед выводом на печать.
0
diomas #
Сейчас проверил, так и есть
0
ScorpAL #
А если еще раз проверить но предварительно очистив кэш? ;)
НЛО прилетело и опубликовало эту надпись здесь
0
diomas #
Да, я в опере смотрел. фаерфокс, действительно, сразу все берет
0
hawange #
У кого сейчас мониторы с таким плохим разрешением (72 dpi)? Я пока нигде не встречал меньше 96dpi.
0
ScorpAL #
Очепяточка. Сказалась старая закалка. Исправляюсь. 96 dpi.
Но сути не меняет.
НЛО прилетело и опубликовало эту надпись здесь
+1
elfiki #
Недавно проверял — не изменилось…
0
MihallicA #
Ну, конечно никто не говорит, что нужно повсеместно бежать и делать так а не иначе.
Просто мысли про неиспользуемые полезные функции.
Я не проверял, но думаю, что внешние данные (bitmap, video) для элементов с display: none; до особого распоряжения грузиться не должны.
Да и если делать через тег link лишний стиль грузиться не будет.
+ Красивая распечатка это все же как бонус идет. Не мокрым полом единым :)
0
Zibba #
Проверил handheld на паре мобильных браузеров. IE for WM5.0, Opera 8.65 for WM, Opera mini 4.1 все отлично! :)
+2
rumkin #
статья познавательная и очень полезная за это автору большое спасибо.
Заинтересовала конструкция width=x; height=y; , может всё-таки width: x; height: y; ?
0
crwin #
давно хотелось бы найти статью, которая полностью раскрывает все прелести стилей для печати, но увы есть такие лишь небольшие общие «заметки». странно что полностью стили никто не использует, или может кто подскажет реальный пример с упоминавшимися page-break'ами и тому подобнымы вкусностями?
+1
ambientos #
Статья хорошая, пускай новички внимательно прочитают и начнут пользоваться.
Заметил следующее: rel=«stylesheet» type=«text/css» media=«print, handheld» href=«otherStyle.css»
все-таки правильнее через quot; Автор, поправьте пожалуйста. UPD: заметил, что хабр переводит обычные кавычки в типографские, используем &quоt;

Это работает во всей большой 4-ке (IE, Firefox, Safari, Opera). Думаю, должно работать и во всех броузерах, работающих на соответствующих движках.
Работает, почему нет.

Кстати с поддержкой css для печати в браузерах как-то все удачнее получилось, нежели с отображением контента в самих браузерах. На самом деле тема гораздо актуальнее чем всем кажется, но странно, что материалов по этому поводу не то что мало, их практически нет. То, что media=«print» дает возможность использовать файлы css, описывающие только стили для печати, это и так понятно, а вот как конкретно форматировать печатные страницы — конкретных рекомендаций почему то не встречал, разве что только в самой спецификации про это написано. Наверно все дело в том, что подобное выходит за рамки специализации веб-разработчика: здесь уже появляется работа для печатников — это больше их специализация.
А если подойти к проблеме с другой стороны — во многих конторах распечатывают сайты, прежде чем ознакомиться с его содержимым (наверно странно звучит на фоне распространенности компьютеров, но контингент по-прежнему оочень велик). Так что не забываем про css для печати.
0
Stac #
FF для печати плох. Очень меня подвел месяц назад. При том, что на экране FF и IE отображали все одинаково, на бумаге все выглядело также только при печати в IE.

Не знаю, может случай был сложный (оносительно позиционированные div)… Но осадок, как говорится, остался…
0
ambientos #
Да-да. Автор, расскажите об использовании таких прелестей.
+1
vastvision #
Ничего нового не узнал, явные вещи объясняете
–1
vastvision #
Мейер всё это расписал в своей книге ещё в 2005м
0
MihallicA #
Да, а CSS 2.0 вышел в 1998
Публикация и популяризация — разные вещи
+2
Gonzo9 #
Спасибо за статью. Действительно полезно.
Хотя я против полного отказа от «версий для печати». Мне, например, удобно кликнув по такой ссылке, сохранить страницу без рекламы, меню, навигации и прочей отвлекающей мишуры, чтобы потом почитать, да и банально места на диске такие «архивы» занимают меньше. Просто тогда при грамотном css такие страницы можно назвать не «версиями для печати», а «чистыми страницами» чтоли :-)
0
MihallicA #
«Чистые страницы» в рамках современных веяний лучше, наверное, получать через синдикацию и/или XML-подобное что-то.
0
korynd #
HTML и есть структура документа.
НЛО прилетело и опубликовало эту надпись здесь
0
KonstRuctor #
Спасибо за статью, в избранное!
Интересное наблюдение: есть пользователи, которые не знают о таких возможностях браузеров, как печать на принтер. Чаще всего они выделяют интересующий их фрагмент текста и иллюстрации, копируют и вставляют в Ворд, оттуда уже довольные печатают (в Ворде есть кнопка с пиктограммой принтера :-)
Именно поэтому я пока за то, чтобы оставить, к примеру, около новости надпись «версия для печати».
А там уже пригодится материал данной статьи
НЛО прилетело и опубликовало эту надпись здесь
0
lanabel #
Аналогично — странички типа «много текста, надо просмотреть на досуге» часто печатаю через Ворд каким-нибудь 6-7 размером шрифта. Не думаю, что вебмастера такие шрифты будут ставить в версии для печати. У меня даже макрос был написан для ворда «приведение текста с веб-страницы в печатаемый вид».
Кстати, часто надо распечатать только маленький кусок со всей страницы — интересно, как там нынче дело обстоит с печатью выделенного фрагмента в плане совместимости с media=print?
+3
dfitiskin #
отличная статья, хорошие примеры — спасибо. мы уже давно применяем эти возможности, и поэтому хочу заметить что ссылка «версия для печати» все же иногда бывает необходима и вот почему. ввиду того что ранее этот подход не применялся, то часть пользователей привыкли — что если просто напечатать страницу, то получится хреново и поэтому даже не пытаются этим пользоваться (инерция). поэтому как вариант — мы делаем ссылку «версия для печати», которая просто выполняет скрипт «window.print()».
0
MihallicA #
Или ничего не выполняет, если js и/или всплывающие окна отключены ;)
+1
dfitiskin #
решается так:

<a href=«? print=1» onclick=«window.print(); return false;»>Версия для печати</a>
+1
Twin #
А мы всё же делаем вот так:

на обычной странице пишем:
а на странице по ссылке «Версия для печати» просто:
+6
Twin #
Вах, нормально парсер съем мои теги=))))

на обычной странице пишем:
link href=«styles.css» rel=«stylesheet» type=«text/css» media=«screen»
link href=«print_styles.css» rel=«stylesheet» type=«text/css» media=«print»

а на странице по ссылке «Версия для печати» просто:
link href=«print_styles.css» rel=«stylesheet» type=«text/css»
0
alexbig #
полностью поддерживаю. в гонках за технологиями, не нужно забывать об инерции пользователей.
ссылка (или что-то, что запустит печать) обязательна. а как вы это будете обрабатывать — тут уже решайте сами.
0
kostos #
Это не гонка технологий, не путайте.
Эта технология очень старая, просто забытая, как и написано в названии топика.
0
alexbig #
ненененене. я всё внимательно прочитал.
Сегодня я попытаюсь рассказать о том, почему на современных сайтах не должно быть ссылки «версия для печати».
0
kostos #
Вы все правильно прочитали.
Вот только там нет ни слова о том что это новая технология, потому как это совсем не так, просто ее раньше очень редко использовали и пора наверстывать упущенное.
Так что все таки это не гонка технологий ;)
0
alexbig #
если бы комментарии можно было редактировать, и я бы написал «гонка за технологиями» в кавычках, вы бы перестали спорить?
0
kostos #
Да я понял о чем вы ;)
Просто поясняю, что это не ново, а просто забыто.
+1
Twin #
Вопрос убирания ссылки «Версия для печати» из тела страницы спорный. Это же юзабилити. Конечно, @media print рулит, но ссылку убирать не стоит, имхо. Многие привыкли к её существованию и ищут её, чтобы вывести страницу на печать. Дело даже не в ссылке, а в том, что на печать идёт совершенно не то, что я вижу глазами в браузере — как мне проверить, едет ли что-либо в верстке в созданной вами @media print? Я хочу получать на выходе то, что ожидаю =)

Делать 2-3 клика вместо одного, чтобы зайти в предпросмотр печати и проверить, реализован ли для данного сайта @media print и просто не сделана ссылка «Версия для печати» вместо того, чтобы один раз кликнуть на данную ссылку и сразу увидеть специализированную для печати версию — имхо не каждому будет удобно.
0
MihallicA #
Есть, да, тонкие моменты.
ИМХО при распечатке человек все же ожидает увидеть ТЕКСТ, который он читает, а не весь флеш вокруг. И большим шоком для него это не будет.
0
Twin #
И, кстати, урезанные по содержимому и аскетичные специализированные html с «версией для печати по ссылке» страницы часто используются для более качественного парсинга поисковиками, чем обычная страница. Для SEO это большой-большой плюс. =)
+1
dmx #
По хорошему, эти страницы нужно закрывать для поисковика.
0
kostos #
Да это будет не привычно для пользователей, но нужно, я бы даже сказал необходимо «приучать». Не все время же в каменном веке жить.
Ну не найдет он (пользователь) ссылки «версия для печати», а ему срочно нужно это на бумаге, возьмет и распечатает и каково его удивление будет, когда он увидит хорошо отформатированный текст без лишнего, после этого он уже не будет с таким усердием искать ссылку.
И будет всем хорошо.

Еще подобное представление данных снижает объем работ разработчику и экономит ресурсы сервера, что является еще одним большим плюсом
0
Novikov #
А чем хуже просто подключать отдельные CSS-файлы для разных устройств?

Кстати, отдельную версию, например, для мобильников, лучше делать. Чтобы не грузить лишнего в HTML, а потом не скрывать это CSS-ом.
–3
vastvision #
главное что графика не грузится
0
MihallicA #
Ну это собственно оно и есть — «просто разные файлы», можно и так, а можно в одном файле
Пожалуй, основная выгода в первую очередь только при печати
0
MihallicA #
Да и тема статьи, первую очередь о том, чем мы с сервера управлять не можем, в частности, печатью.
0
kostos #
Кстати.
Поднимем вопрос про забытость.
Такая печальная ситуация получилась из за малого количества разработчиков, которые умело обращались с css.
Речь идет о временах, когда большинство активно использовали теги font и им подобные. Разработчики не видели большого смысла в обильном применении css вместо тегов и атрибутов делающих «то же самое». Да и разработчиков было не так много, как сейчас, соответственно и небыло такой конкуренции, что не подбивало разработчиков к получению новых знаний и использованию новых технологий.
+2
cc00ffee #
Для браузеров, которые понимают, рекомендуется выводить адрес ссылок:
#content a: link: after, #content a: visited: after {
content: « (» attr(href) «) „;
font-size: 90%;
}
#content a[href^=“/»]: after {
content: « (http://www.alistapart.com» attr(href) «) „;
}

Источник: davidwalsh.name/optimize-your-links-for-print-using-css-show-url
Приведенная версия, совместимая со ссылками в пределах сайта: www.alistapart.com/stories/goingtoprint/
0
maggg #
Вот, точно. Только начал об этом писать — с языка сняли.
НЛО прилетело и опубликовало эту надпись здесь
0
mcm69 #
там, кстати, так и сделано. но только для внешних ссылок.
–3
Zeboton #
Интересная информация. Спасибо.
Но у меня есть вопрос. Мне нужно отправлять на принтер не всю страницу, а только определённую часть. Мне нужно что бы распечатанный документ не имел верхнего и нижнего колонтитула сайта. Это реально? Если да, то как это сделать?
0
kostos #
Реально, собственно для этого все это и делается (ну и не только для этого).
В файле css который предназначен для печати переопределяем стили для «не нужных» в печати элементов. Например:
#header {display: none;} #footer {display: none;}
0
ant99 #
Статья полезная, спасибо.
Небольшая придирка. Нельзя говорить: «оптимальнее всего». Оптимальный — это и есть наилучший. Что-то может быть оптимальным и неоптимальным, в крайнем случае, близком к оптимальному. В Вашем случае можно было сказать: «лучше всего».
0
Stac #
Будтье осторожы с браузерами на движке gecko 1.8 (другие не проверял).
Сложная или не очень верстка (с относительно позиционируемыми блоками, например) на печати может выглядеть совем не так, как на экране. Имею печальный опыт.
+2
Delka #
тема обсосанная сто раз.

html — один, т.к. данные одни и не меняются по сути.
отображение разное.

отдельная страница ненужна.
кнопка «версия для печати» — нужна. По клику на кнопку — меняем css.
0
rapkasta #
Переводил для себя статью одну(за старостью оной решил всётаки нигде не выкладывать), но всётаки вот несколько кусочков из ней, как я считаю полезных кусочков-советов:

ССЫЛКИ

Ссылки по-назначению на бумаге использовать невозможно, но они существуют в оригинале… с этим надо что-то делать!

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

a {
color:#000000;
text-decoration: underline;
}

a: after {
content: « ( „attr(href)“ )»;
}

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

— Размеры шрифтов на бумаге, однако, немного отличаются. Обычно лучше оставить размер стандартным (прим.пер.: использовать small, medium и так далее...), но если вы задали другой шрифт, то проверьте чтобы текст получался разборчивым.
— УБИРАЙТЕ БЕСПОЛЕЗНЫЙ МУСОР

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

.navigation {
display: none;
}
— В КОНЦЕ КОНЦОВ

Тестируйте по несколько раз и читайте(Прим.пер. Да, да читайте!!!)! Печатная индустрия развивалась очень долгое время, читая вы увидите множество примеров оформления: выберите тот который вам больше понравится и используйте его как идеал. Чем больше вы тестируете, тем больше у вас возможности исправить ошибки: убрать подсветку, пробелы… пробуйте и в конце концов вы получите удобный для чтения стиль.
0
SidexQX #
спасибо! на днях как раз задумывался на эту тему…
0
BekoBou #
Когда-то уже поднималась эта тема — maovrn.habrahabr.ru/blog/18580/

Статьи ещё не читал, но в общем хорошо, что такие статьи появляются…
0
ArtMar #
Очень хорошо описано, пойду применю на своем сайте ) (Хотя моему сайту это ни к чему, но закрепление материала происходит только с практикой)
0
Iskin #
Проблема в том, что Opera Mini (по умолчанию) и S60 browser не подхватывают CSS для handheld. Раньше Opera Mini его использовало, но после того как стало можно «понтоваться» зумом и тем, что страница отображается прям как на домашнем компьютере, стали использовать стили для больших компьютеров.

В результате можно было и в JS легко определить, что к тебе пришли с мобильника (просто в hendheld.css определив «.handheld {color: white;} ) и проверив стили в JS.
0
wiktar #
У меня вопрос.

Если мы включим в страницу через тег link стили для разных выводов:
all.css
print.css
handheld.css
screen.css
tv.css

Браузер будет загружать их все? Или загрузит только то, что будет использовать для отображения?
0
MihallicA #
Должен загрузить только нужный в данный момент.
На деле — скорее всего вместе со screen загрузит и print. А может print загрузить и только в момент распечатки (предпросмотра).
Я думаю, тут зависит от реализации броузера. Заранее трудно что-то сказать.
0
sovnarkom #
В качестве информирования населения о том, что при помощи css можно так — безусловно статья полезная.
Однако, я всё же не согласен с принципом использования этой технологии, и скрытии ненужного при помощи display: none;

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

Понятное дело, что при печати удобнее было бы вывести сразу все записи, принтер то сам прекрасно всё разобьёт на страницы. Таким образом, получается, что всё-равно придётся делать эту кнопочу «для печати», а на сервере по другому генерить html.

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

Полагаю, что очевидно появление граблей во втором случае. А граблей нам не надо).
0
Delka #
напишите плиз подробней, а то непонятно что вы имеете в виду
Понятное дело, что при печати удобнее было бы вывести сразу все записи, принтер то сам прекрасно всё разобьёт на страницы. Таким образом, получается, что всё-равно придётся делать эту кнопочу «для печати», а на сервере по другому генерить html.
0
Delka #
sic, это относится к верхнему комменту, не туда отправил(
0
wiktar #
А вот ещё что!

Нет ли такого, чтобы при распечатке объёмных таблиц THEAD таблицы повторялся на каждой странице?

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