Я пытаюсь создать страницу 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"?
Любые идеи ценились бы.
:first-child
может работать, но почти уверен, что есть проблемы с IE6, см: http://www.quirksmode.org/css/firstchild.html
edit: не работает в IE6, а для более новых версий IE doctype должен быть использован, чтобы он работал.