Saya mencoba mendapatkan google chrome untuk melakukan jeda halaman.
Saya telah diberi tahu melalui banyak situs web yang page-break-after: always;
valid di chrome tetapi saya tampaknya tidak dapat membuatnya berfungsi bahkan dengan contoh yang sangat sederhana. apakah ada cara untuk memaksa jeda halaman saat mencetak di chrome?
css
printing
google-chrome
Mike Valstar
sumber
sumber
Jawaban:
Saya telah berhasil menggunakan pendekatan berikut di semua browser utama termasuk Chrome:
Ini adalah contoh yang disederhanakan. Dalam kode sebenarnya, setiap div halaman berisi lebih banyak elemen.
sumber
position: relative
.break-after
danbreak-before
hanya berlaku untukblock-level elements, table row groups, table rows (but see prose)
: drafts.csswg.org/css-break-3/#break-between - itu berarti tidak ada float atau trik pemosisian yang mewah.Sebenarnya satu detail hilang dari jawaban yang dipilih sebagai diterima (dari Phil Ross) ....
itu TIDAK bekerja di Chrome, dan solusinya adalah benar-benar konyol !!
Baik induk maupun elemen tempat Anda ingin mengontrol pemecah halaman harus dideklarasikan sebagai:
lihat biola ini: http://jsfiddle.net/petersphilo/QCvA5/5/show/
Ini benar untuk:
Namun, mengontrol pembobolan halaman di Safari tidak berfungsi (setidaknya di 5.1.7)
saya harap ini membantu!!!
PS: Pertanyaan di bawah ini menunjukkan fakta bahwa Chrome versi terbaru tidak lagi menghormati ini, bahkan dengan posisi: relatif; menipu. Namun, mereka tampaknya menghormati:
lihat biola ini: http://jsfiddle.net/petersphilo/QCvA5/23/show
jadi saya rasa kita harus menambahkan itu sekarang ...
Semoga ini membantu!
sumber
page-break-inside
. Ada bantuan?<h7 class="page-breaker" style="display: block;position: relative;page-break-before:always">Grade <?php echo $grade;?></h7>
Saya hanya ingin mencatat di sini bahwa Chrome juga mengabaikan pengaturan page-break- * css di div yang telah mengambang.
Saya menduga ada alasan kuat untuk ini di suatu tempat di spesifikasi css, tetapi saya pikir itu mungkin membantu seseorang suatu hari nanti ;-)
Hanya catatan lain: IE7 tidak dapat menerima pengaturan hentian halaman tanpa ketinggian eksplisit pada elemen blok sebelumnya:
http://social.msdn.microsoft.com/forums/en-US/iewebdevelopment/thread/fe523ec6-2f01-41df-a31d-9ba93f21787b/
sumber
Saya memiliki masalah yang mirip dengan ini tetapi saya akhirnya menemukan solusinya. Saya memiliki overflow-x: hidden; diterapkan ke tag <html> jadi apa pun yang saya lakukan di bawah ini di DOM, itu tidak akan pernah mengizinkan jeda halaman. Dengan kembali ke overflow-x: visible; itu bekerja dengan baik.
Semoga ini membantu seseorang di luar sana.
sumber
* { overflow-x: visible }
.Saya sendiri mengalami masalah ini - pemutusan halaman saya berfungsi di setiap browser kecuali Chrome - dan dapat mengisolasinya ke elemen perusak halaman yang berada di dalam sel tabel. (Template lama yang diwariskan di CMS.)
Rupanya Chrome tidak menghormati properti page-break-before atau page-break-after di dalam sel tabel, jadi versi contoh Phil yang dimodifikasi ini menempatkan judul kedua dan ketiga pada halaman yang sama:
Penerapan Chrome (meragukan) diizinkan dengan spesifikasi CSS - Anda dapat melihat lebih lanjut di sini: http://www.google.com/support/forum/p/Chrome/thread?tid=32f9d9629d6f6789&hl=id
sumber
Waspadalah terhadap CSS:
display:inline-block
saat mencetak.Tak satu pun properti CCS untuk membuka halaman berikutnya akan berfungsi untuk saya di Chrome dan Firefox jika tabel saya berada di dalam div dengan gaya
display:inline-block
Misalnya, berikut ini tidak berfungsi:
Tetapi pekerjaan berikut:
sumber
display: flex
Saya menghadapi masalah ini di chrome sebelumnya dan penyebabnya adalah karena div memiliki min-height yang disetel ke nilai. Solusinya adalah menyetel ulang min-height saat mencetak sebagai berikut:
sumber
Pembaruan 2016:
Nah, saya mendapat masalah ini, ketika saya punya
di div saya.
Setelah saya buat
semuanya menjadi baik dan sempurna
sumber
Jika Anda menggunakan Chrome dengan Bootstrap Css, kelas yang mengontrol tata letak grid misalnya col-xs-12 dll menggunakan "float: left" yang, seperti yang ditunjukkan orang lain, merusak pemutusan halaman. Hapus ini dari halaman Anda untuk dicetak. Itu berhasil untuk saya. (Di versi Chrome = 49.0.2623.87)
sumber
Punya masalah itu. Begitu lama berlalu ... Tanpa sisi-bidang halaman itu rusak normal, tetapi ketika bidang muncul, halaman dan "ruang jeda halaman" akan skala. Jadi, dengan bidang normal, di dalam dokumen, itu ditampilkan salah. Saya memperbaikinya dengan set
dan gunakan
Gunakan di baris pertama.
sumber
Sejauh yang saya tahu, satu-satunya cara untuk mendapatkan jeda halaman yang benar dalam tabel dengan Google Chrome adalah memberikannya ke elemen tampilan
<tr>
properti : inline-table (atau display: inline-block tetapi lebih cocok dalam kasus lain yang bukan tabel ). Juga harus digunakan properti "page-break-after: always; page-break-inside: hindari;" seperti yang ditulis oleh @Phil Rosssumber
Itu bekerja untuk saya ketika saya menggunakan bantalan seperti:
sumber