Bonjour à tous,

je souhaite simplement imprimer une page html via la fonction JS window.print();
Sous le navigateur Chrome l'affichage est correct, chaque "partie" se trouve sur une page :
https://ibb.co/m0Lq5Gb

Mais sous Firefox, il arrive qu'une partie soit entre deux pages (ce qui n'est pas voulu) :
https://ibb.co/26bbYSQ

Voici le CSS


.break-text {
  height: 100%!important;
  word-wrap: break-word;
}

/* Printable part */

body {
  margin: 0;
  padding: 0;
  background-color: white;
  font: 10pt "Arial";
}

h1 {
  padding: .25cm;
  margin: .5cm 0;
  color: white;
  font-size: 14pt;
  font-weight: bolder;
  text-align: center;
  background-color: #00b8d4;
  border-radius: 5px;
  text-transform: uppercase;
}

h2 {
  padding: 0;
  margin: 1cm 0 .5cm 0;
  color: #333;
  font-size: 12pt;
  font-weight: bolder;
  border-bottom: 1px solid #ccc;
}

hr {
  border: 1px solid #ccc;
  margin: 25px 0;
}

* {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
}

.page {
  width: 21cm;
  min-height: 25.7cm;
  padding: .5cm 1cm;
  margin: 1cm auto;
  border: 1px #d3d3d3 solid;
  border-radius: 5px;
  background: white;
  box-shadow: 0 0 1px rgba(0, 0, 0, 0.1);
}

.page-content {
  padding: 0 .5cm;
  /* Force background elements to be printable */
  -webkit-print-color-adjust: exact;

  ul > li {
    list-style-type: circle !important;
  }

}

.crk-chips {

  position: relative;
  margin: 0 auto;
  text-align: center;
  color: white;
  font-family: monospace;
  font-size: 1.2em;

  img {
    width:105px;
    height:40px;
  }

  .crk-chips-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }

}

@page {
  size: A4;
  margin: 1cm 0;
}

@media print {

  .page {
    margin: 0;
    /*padding: 0 .25cm;*/
    border: initial;
    border-radius: initial;
    width: initial;
    min-height: initial;
    box-shadow: initial;
    background: initial;
    page-break-after: always;
  }

  .page-break {
    clear: both;
    page-break-after: always;
    min-height: 1px;
  }

  div[aria-live], .corner-ribbon {
    display: none;
  }

}

Voic l'HTML

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="utf-8">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
    <title>XXXX</title>

    <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Copse&display=swap">

    <link rel="stylesheet" href="/build/print_promo_codes.css">
</head>

<body>

<header>
</header>

<main>

    <main class="page" style="display: grid;">
        <section class="page-content">
            <h1>Votre coupon</h1>

            <br>

            <div class="row">
                <div class="col s12 center-align">
                    <img src="https://xx.xx.xx/xx/924_381147e1a05e99be028a0d06dcf94fd43c9ec8f2.png" width="50"
                         alt="Logo">
                </div>
            </div>

            <div class="row">
                <div class="col s12">
                    <div class="card card-track hoverable" style="max-width:60%;margin: auto">
                        <div class="card-image">
                            <img src="/img/_partials/defaultTrackCover.jpg"
                                 style="object-fit: cover;"
                                 alt="cover track">

                            <p class="card-title truncate">Renseignez un titre</p>
                        </div>

                        <div class="card-content">
                            <p>Renseignez une description</p>

                            <hr />

                            <p class="guest-name center-align">
                                <strong>
                                    Guest-OLYYK9

                                </strong>
                            </p>

                            <hr />

                            <div class="row center-align">
                                <div class="col s6">
                                    <div class="crk-chips">
                                        <img src="/img/desktop/guide/print_chips.png" alt="" />
                                        <div class="crk-chips-text">OLYYK9</div>
                                    </div>
                                    https://xx.xx.xx/OLYYK9
                                </div>
                                <div class="col s6">
                                    <div id="qrcode-OLYYK9" style="display: inline-block;"></div>
                                    <script type="text/javascript">
                                        makeQRCode("qrcode-OLYYK9", "https://xx.xx.xx/OLYYK9");
                                    </script>
                                </div>
                            </div>

                            <div class="row">
                                <div class="col s12">
                                    <p>Validité :
                                        <strong><span>19/06/2021 12:00</span></strong>
                                    </p>
                                </div>
                            </div>

                        </div>
                    </div>

                </div>
            </div>

            <div class="row">
                <div class="col s12">
                    <h2>Comment utiliser ce coupon ?</h2>

                    <ul>
                        <li>Rendez-vous sur le lieu de votre aventure</li>
                        <li>Scannez le QR code ou saisissez l'adresse web dans votre navigateur mobile</li>
                        <li>S'il vous est demandé d'activer votre GPS, cliquez sur "Autoriser"</li>
                        <li>Ca y est ! Vous êtes prêts à démarrer !</li>
                    </ul>

                    <p><strong>Conseil :</strong> Pensez à recharger complètement votre smartphone avant de débuter votre aventure.</p>

                </div>
            </div>
            <div class="page-break"></div>
            <h1>Votre coupon</h1>

            <br>

            <div class="row">
                <div class="col s12 center-align">
                    <img src="https://xx.xx.xx/xx/924_381147e1a05e99be028a0d06dcf94fd43c9ec8f2.png" width="50"
                         alt="Logo">
                </div>
            </div>

            <div class="row">
                <div class="col s12">
                    <div class="card card-track hoverable" style="max-width:60%;margin: auto">
                        <div class="card-image">
                            <img src="/img/_partials/defaultTrackCover.jpg"
                                 style="object-fit: cover;"
                                 alt="cover track">

                            <p class="card-title truncate">Renseignez un titre</p>
                        </div>

                        <div class="card-content">
                            <p>Renseignez une description</p>

                            <hr />

                            <p class="guest-name center-align">
                                <strong>
                                    Guest-451BZB
                                </strong>
                            </p>

                            <hr />

                            <div class="row center-align">
                                <div class="col s6">
                                    <div class="crk-chips">
                                        <img src="/img/desktop/guide/print_chips.png" alt="" />
                                        <div class="crk-chips-text">451BZB</div>
                                    </div>
                                    https://xx.xx.xx/451BZB
                                </div>
                                <div class="col s6">
                                    <div id="qrcode-451BZB" style="display: inline-block;"></div>
                                    <script type="text/javascript">
                                        makeQRCode("qrcode-451BZB", "https://xx.xx.xx/451BZB");
                                    </script>
                                </div>
                            </div>

                            <div class="row">
                                <div class="col s12">
                                    <p>Validité :
                                        <strong><span>19/06/2021 12:00</span></strong>
                                    </p>
                                </div>
                            </div>

                        </div>
                    </div>

                </div>
            </div>

            <div class="row">
                <div class="col s12">
                    <h2>Comment utiliser ce coupon ?</h2>

                    <ul>
                        <li>Rendez-vous sur le lieu de votre aventure</li>
                        <li>Scannez le QR code ou saisissez l'adresse web dans votre navigateur mobile</li>
                        <li>S'il vous est demandé d'activer votre GPS, cliquez sur "Autoriser"</li>
                        <li>Ca y est ! Vous êtes prêts à démarrer !</li>
                    </ul>

                    <p><strong>Conseil :</strong> Pensez à recharger complètement votre smartphone avant de débuter votre aventure.</p>

                </div>
            </div>
            <div class="page-break"></div>
            <h1>Votre coupon</h1>

            <br>

            <div class="row">
                <div class="col s12 center-align">
                    <img src="https://xx.xx.xx/xx/924_381147e1a05e99be028a0d06dcf94fd43c9ec8f2.png" width="50"
                         alt="Logo">
                </div>
            </div>

            <div class="row">
                <div class="col s12">
                    <div class="card card-track hoverable" style="max-width:60%;margin: auto">
                        <div class="card-image">
                            <img src="/img/_partials/defaultTrackCover.jpg"
                                 style="object-fit: cover;"
                                 alt="cover track">

                            <p class="card-title truncate">Renseignez un titre</p>
                        </div>

                        <div class="card-content">
                            <p>Renseignez une description</p>

                            <hr />

                            <p class="guest-name center-align">
                                <strong>
                                    xxxx
                                    xxx
                                </strong>
                            </p>

                            <hr />

                            <div class="row center-align">
                                <div class="col s6">
                                    <div class="crk-chips">
                                        <img src="/img/desktop/guide/print_chips.png" alt="" />
                                        <div class="crk-chips-text">SJ04H0</div>
                                    </div>
                                    https://xx.xx.xx/SJ04H0
                                </div>
                                <div class="col s6">
                                    <div id="qrcode-SJ04H0" style="display: inline-block;"></div>
                                    <script type="text/javascript">
                                        makeQRCode("qrcode-SJ04H0", "https://x.xxxx.xxx/SJ04H0");
                                    </script>
                                </div>
                            </div>

                            <div class="row">
                                <div class="col s12">
                                    <p>Validité :
                                        <strong><span>18/06/2021 12:00</span></strong>
                                        <span>au</span>
                                        <strong><span>19/06/2021 12:00</span></strong>
                                    </p>
                                </div>
                            </div>

                        </div>
                    </div>

                </div>
            </div>

            <div class="row">
                <div class="col s12">
                    <h2>Comment utiliser ce coupon ?</h2>

                    <ul>
                        <li>Rendez-vous sur le lieu de votre aventure</li>
                        <li>Scannez le QR code ou saisissez l'adresse web dans votre navigateur mobile</li>
                        <li>S'il vous est demandé d'activer votre GPS, cliquez sur "Autoriser"</li>
                        <li>Ca y est ! Vous êtes prêts à démarrer !</li>
                    </ul>

                    <p><strong>Conseil :</strong> Pensez à recharger complètement votre smartphone avant de débuter votre aventure.</p>

                </div>
            </div>
            <div class="page-break"></div>

        </section>
    </main>
</main>

<script>
    $(document).ready(function() {

        window.print();
    });
</script>

</body>

</html>

La classe css .page-break est utilisée après chaque nouvelle partie dans le foreach.

Quelqu'un a t-il déjà eu se problème et aurait une piste pour le résoudre ?

Je vous remercie d'avance.

Aucune réponse