10

プリティプリントのhtmlページを作成しようとしています。トップレベルのコンストラクトの間に改ページを強制する必要があるため、各コンストラクトのトップレベル要素に CSS クラスを追加し、そのクラスの CSS で page-break-before:always を設定しました。例えば:

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

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

私の問題は、最初の最上位要素の前に空白のページが表示されることです。page-break-before:always が何をすべきかを考えると、これは完全に理にかなっています。しかし、私はそれをしたくありません。

したがって、1 つのオプションは、最初の要素に「トップレベル」クラスを含めないか、page-break-before:always を設定しない新しい「firsttoplevel」クラスを提供し、それを最初のトップレベル要素に設定することです。 、その他すべてに「トップレベル」を使用します。簡単にできましたが、関心の分離に違反しているようです。

CSSでこれを行う方法があるかどうか疑問に思っていましたか?「prettyprint」の最初の「トップレベル」の子にのみ適用されるルールを設定するには?

どんなアイデアでも大歓迎です。

4

3 に答える 3

4
:first-child

動作する可能性がありますが、IE6 に問題があることは確かです。次を参照してください: http://www.quirksmode.org/css/firstchild.html

編集: IE6 では機能しません。新しいバージョンの IE では、機能させるために doctype を使用する必要があります。

于 2010-08-02T19:53:18.353 に答える