Próbuję stworzyć ładną stronę HTML. Potrzebuję wymusić łamanie stron między konstruktami najwyższego poziomu, dlatego dodałem klasę CSS do elementu najwyższego poziomu każdej konstrukcji i ustawiłem break-before: zawsze w CSS dla tej klasy. Np .:CSS: page-break-before, zawsze, z wyjątkiem pierwszego razu?
<body>
<div class="prettyprint">
<div class='toplevel'>
...
</div>
<div class='toplevel'>
...
</div>
</div>
</body>
.prettyprint .toplevel { page-break-before:always; }
Mój problem polega na tym, że otrzymuję pustą stronę przed pierwszym elementem najwyższego poziomu. Co ma sens, biorąc pod uwagę to, co poprzedza łamanie stron: zawsze ma to robić. Ale ja tego nie chcę.
Jedną z opcji jest nie umieszczanie klasy "toplevel" w pierwszym elemencie lub dostarczanie nowej klasy "firsttoplevel", która nie ustawia page-break-before: always, i ustaw ją dla pierwszego element najwyższego poziomu, a następnie użyj "toplevel" dla wszystkich pozostałych. Mógłbym to zrobić, z łatwością, ale wygląda na to, że narusza to oddzielenie obaw.
Więc zastanawiałem się, czy był sposób, aby to zrobić w CSS? Aby ustawić regułę, która miałaby zastosowanie tylko do pierwszego dziecka "toplevel" "prettyprint"?
Wszelkie pomysły będą mile widziane.
+1 najlepszym sposobem mogę myśleć. Możesz użyć jQuery, aby dodać funkcjonalność dla IE6. –
IE łamie niektóre wydruki nawet w aktualnej wersji [przynajmniej dla mnie], nie dbałbym o IE6: P – naugtur
Jesteś smrt man. – Pat