CSS: page-break-before, всегда, кроме первого раза?

Я пытаюсь создать страницу HTML структурной распечатки программы. Я должен вызвать разрыв страницы между конструкциями верхнего уровня, таким образом, я добавил класс CSS к элементу верхнего уровня каждой конструкции и установил page-break-before:always в CSS для того класса. Например:

<body>
<div class="prettyprint">
    <div class='toplevel'>
        ...
    </div>
    <div class='toplevel'>
        ...
    </div>
</div>
</body>

.prettyprint .toplevel { page-break-before:always; }

Моя проблема, я получаю пустую страницу перед первым элементом верхнего уровня. Который имеет смысл, рассматривая то, что page-break-before:always, как предполагается, делает. Но я не хочу это.

Так, одна опция не состоит в том, чтобы включать класс "верхнего уровня" в первый элемент, или обеспечить новый "firsttoplevel" класс, который не устанавливает page-break-before:always, и установить его для первого элемента верхнего уровня и затем использовать "верхний уровень" для всего другие. Я мог сделать это, достаточно легко, но кажется, что это нарушает разделение проблем.

Таким образом, я задавался вопросом, был ли способ сделать это в CSS? Устанавливать правило, которое применялось бы только к первому ребенку "верхнего уровня" "prettyprint"?

Любые идеи ценились бы.

9
задан Aaron Hudon 18 February 2017 в 01:01
поделиться

1 ответ

:first-child

может работать, но почти уверен, что есть проблемы с IE6, см: http://www.quirksmode.org/css/firstchild.html

edit: не работает в IE6, а для более новых версий IE doctype должен быть использован, чтобы он работал.

4
ответ дан 4 December 2019 в 21:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: