รูปแบบการพิมพ์: วิธีตรวจสอบให้แน่ใจว่ารูปภาพไม่ขยายช่วงแบ่งหน้า


96

เมื่อเขียนสไตล์ชีตการพิมพ์มีวิธีใดบ้างที่จะทำให้แน่ใจว่ารูปภาพจะอยู่ในหน้าเดียวเสมอไปแทนที่จะต้องขยายหลายหน้า รูปภาพมีขนาดเล็กกว่าหน้ามาก แต่ขึ้นอยู่กับขั้นตอนของเอกสารพวกเขาจะจบลงที่ด้านล่างของหน้าและแยกออก ตัวอย่างพฤติกรรมที่ฉันเห็นอยู่ด้านล่าง:

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     | |
       | |                | |
       | |________________| |
       |         …          |

ทุกครั้งที่ฉันบ่นเกี่ยวกับการลอยใน LaTeX และที่นี่ฉันกำลังขอฟังก์ชันเดียวกันนี้ ... สามารถทำได้หรือไม่? ฉันไม่จำเป็นต้องกังวลว่ามันจะใช้งานได้ในทุกเบราว์เซอร์เนื่องจากสิ่งนี้มักจะเป็นเพียงเอกสารเพียงครั้งเดียวที่ฉันเขียนให้กลายเป็น PDF


45
upvote สำหรับการใช้งานที่ดีของแผนภาพศิลปะ ASCII :)
NickG

@NickG เห็นด้วยมากแผนภาพ ASCII ที่ยอดเยี่ยมจริงๆ!

คำตอบ:


66

วิธีเดียวที่ฉันคิดได้คือใช้กฎ 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' */
}

ฉันจำได้ครึ่งหนึ่งว่าการประกาศเหล่านี้ใช้กับองค์ประกอบระดับบล็อกเท่านั้น (ดังนั้นคุณจะต้องกำหนดdisplay: block;บนรูปภาพของคุณด้วยหรือใช้คอนเทนเนอร์การตัดบางประเภทและใช้กฎกับสิ่งนั้น (ไม่ว่าจะเป็นในย่อหน้า, div, span , รายการ ฯลฯ ... )

การสนทนาที่เป็นประโยชน์บางส่วนที่นี่: " คุณสมบัติ CSS ที่เข้ากันได้กับข้ามเบราว์เซอร์ที่มีประโยชน์ที่สุดmedia="print"คืออะไร "

อ้างอิง:


3
ใช่มันได้ผล ( page-break-inside:avoid). ตอนนี้ฉันนึกถึงว่าทำไมการลอยตัวของ LaTeX จึงเป็นความเจ็บปวด
davidtbernal

2
@notJim แค่ลอย?
Mindwin

คำอธิบายมีเหตุผลมาก แต่ด้วยเหตุผลบางประการมันใช้ไม่ได้กับไฟล์ HTML5 ของฉันกับ Firefox 54 อาจเป็นเพียงข้อผิดพลาดเนื่องจากทำงานกับ Internet Explorer 11 ...
Wolf

page-break-inside - CSS | MDNเป็นเพจที่ทุ่มเทให้กับข้อบกพร่องนี้)
Wolf

@ หมาป่าหน้าเปลี่ยนไปมั้ย? หรือฉันขาดอะไรไป? เหตุใดจึงไม่ทำงานใน HTML5 กับ FF54
The Oddler
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.