2010-04-15 2 views
53

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

Page 1 |     | 
     | (text text text) | 
     | (text text text) | 
     | ________________ | 
     | | Top of image | | 
     |____________________| 
     ------page break------ 
     ____________________ 
Page 2 | | Rest of image | | 
     | |________________| | 
     |   …   | 

То, что я хотел бы

Page 1 |     | 
     | (text text text) | 
     | (text text text) | 
     |     | 
     |     | 
     |____________________| 
     ------page break------ 
     ____________________ 
Page 2 | ________________ | 
     | | Full image  | | 
     | |    | | 
     | |________________| | 
     |   …   | 

Все те времена я скулить о поплавках в латексе, и здесь я прошу ту же функциональность ... Можно ли это сделать? Я не обязательно забочусь о том, что он работает во всех браузерах, поскольку это часто просто одноразовый документ, который я пишу, чтобы превратиться в PDF.

+19

Upvote для удобного использования диаграмм ASCII-дизайна :) – NickG

+0

@NickG Многочисленная согласованная, действительно удивительная диаграмма ASCII! – 2015-05-08 07:25:00

ответ

41

только означает, что я могу думать о том, чтобы использовать один (или потенциально более) из следующих правил CSS:

img { 
    page-break-before: auto; /* 'always,' 'avoid,' 'left,' 'inherit,' or 'right' */ 
    page-break-after: auto; /* 'always,' 'avoid,' 'left,' 'inherit,' or 'right' */ 
    page-break-inside: avoid; /* or 'auto' */ 
} 

I половины напомнит, что эти заявления относятся только к блочным элементам (так вы 'd также необходимо определить display: block; на вашем изображении или использовать какой-либо контейнер для упаковки и применить к нему правила (будь то в абзаце, div, span, list и т. д.).

Некоторые полезные обсуждения здесь: «What are most usefule media="print" specific, cross-browser compatible CSS properties?»

Литература:

+3

Yup, это работает. ('Страниц обкатки внутри: avoid'). Теперь мне напомнили, почему LaTeX плавает, это боль. – notJim

+0

@notJim только поплавки? – Mindwin

+0

Объяснение очень логично, но по какой-то причине оно не работает для моего файла HTML5 с Firefox 54. Возможно, это просто ошибка, так как она работает с Internet Explorer 11 ... – Wolf