Baskı stilleri: Resmin bir sayfa sonunu kapsamadığından nasıl emin olunur?


96

Bir baskı stil sayfası yazarken, bir görüntünün birden çok sayfaya yayılmak yerine her zaman yalnızca tek bir sayfada olmasını sağlamanın bir yolu var mı? Görüntüler sayfadan çok daha küçük, ancak belge akışına bağlı olarak, sayfanın en altında sona eriyor ve bölünüyorlar. Gördüğüm davranışa bir örnek aşağıdadır:

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

Ne isterdim

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

LaTeX'teki float'lardan şikayet ettiğim bunca zaman ve burada aynı işlevselliği istiyorum ... Bu yapılabilir mi? Tüm tarayıcılarda çalışmasıyla ilgilenmeme gerek yok, çünkü bu genellikle PDF'ye dönüştürülmek üzere yazdığım tek seferlik bir belgedir.


45
ASCII sanat diyagramlarının mükemmel kullanımı için oy verin :)
NickG

@NickG Çok kabul etti, gerçekten harika ASCII diyagramı!

Yanıtlar:


66

Aklıma gelen tek yol, aşağıdaki css kurallarından birini (veya potansiyel olarak daha fazlasını) kullanmaktır:

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' */
}

Bu bildirimlerin yalnızca blok düzeyindeki öğeler için geçerli olduğunu yarı anımsıyorum (bu nedenle display: block;, görüntünüz üzerinde tanımlamanız veya bir tür sarma kabı kullanmanız ve buna kuralları uygulamanız gerekir (ister paragraf ister div, ister , liste vb.).

Burada bazı yararlı tartışma: " Kullanıma media="print"özel, tarayıcılar arası uyumlu CSS özellikleri nelerdir? "

Referanslar:


3
Evet, bu işe yarıyor. ( page-break-inside:avoid). Şimdi LaTeX şamandıralarının neden bir acı olduğunu hatırlattım.
davidtbernal

2
@ notJim sadece şamandıralar?
Mindwin

Açıklama çok mantıklı, ancak bazı nedenlerden dolayı Firefox 54 ile HTML5 dosyam için çalışmıyor. Belki sadece bir hata, çünkü Internet Explorer 11 ile çalışıyor ...
Wolf

sayfa sonu - CSS | MDN bu kusura adanmış bir sayfadır;)
Wolf

@Wolf Bu sayfa değişti mi? Yoksa bir şey mi kaçırıyorum? Bu neden FF54 ile HTML5'te çalışmıyor?
The Oddler
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.