2011-12-21 3 views
3

印刷用に私のWebページをフォーマットしています。その際、このCSSスタイルを使って改ページを追加しています。私の最初のテスト(XPSドキュメントライターを使用して印刷する)でIE9とFirefox(3.6)のページ区切り動作の違いを修正しました。

@media print 
{ 
    .page-break { display:block; page-break-before:always; } 
    .print-hidden { display:none; } 
} 

、私はIE9から印刷するときに改ページが表示され、Firefoxでそうではないことに気付きました。

サンプル・ページの出力は次のようになります。どうやらW3Schoolsのページに

<table> 
    <tr class="print-hidden"><th colspan=3>Balance</th></tr> 
    <tr><td>10</td><td>x</td><td>(St) Legs Together: Head Turn</td></tr> 
    <tr><td>5</td><td>x</td><td>(St) One Leg: </td></tr> 
    <tr></tr> 
    <tr class="print-hidden"><th colspan=3>UE Strengthening</th></tr> 
    <tr><td>100</td><td>x</td><td>(Su) Biceps</td></tr> 
    <tr class="page-break"></tr> 
    <tr><td>50</td><td>x</td><td>(Su) Tricpes</td></tr> 
    <tr></tr> 
</table> 

それは

注言うpage-break-beforeのために:できるだけ何回かのようにページ破りのプロパティを使用し、テーブル内のページ区切りプロパティ、フローティング要素、 と境界線を持つブロック要素を避けます。

だから、私は私の質問(複数可)になります推測:

  1. FireFoxのための回避策はありますか?
  2. もしそうでなければ、どうやってページブレークを使うことができるか(あるいは本当にページを壊すか)、自分のhtmlを構造化しなければならないでしょうか?
+1

上記のW3SchoolはW3Cとして参照されていますが、W3SchoolはW3Cに関連付けられていません。 – Rob

答えて

0

私は(IE9とFF 3.6でテストされた)これで終わりです。期待どおりに動作します。

<ul> 
    <li><reps>10</reps> x <exercisename>(St) Legs Together: Head Turn</exercisename></li> 
    <li><reps>5</reps> x <exercisename>(St) One Leg: </exercisename></li> 
    <li><reps>100</reps> x <exercisename>(Su) Biceps</exercisename></li> 
    <li class="page-break"><reps>50</reps> x <exercisename>(Su) Tricpes</exercisename></li> 
</ul> 
3

問題は、page-break-beforeクラスがtr要素にある可能性があります。これに変更してみてください:

<table> 
    <tr class="print-hidden"><th colspan=3>Balance</th></tr> 
    <tr><td>10</td><td>x</td><td>(St) Legs Together: Head Turn</td></tr> 
    <tr><td>5</td><td>x</td><td>(St) One Leg: </td></tr> 
    <tr></tr> 
    <tr class="print-hidden"><th colspan=3>UE Strengthening</th></tr> 
    <tr><td>100</td><td>x</td><td>(Su) Biceps</td></tr> 
</table> 
<div class="page-break"></div> 
<table> 
    <tr><td>50</td><td>x</td><td>(Su) Tricpes</td></tr> 
    <tr></tr> 
</table> 

のdivは、この種のもののために、より信頼性があります。

+0

これは空白の最初のページを残し、2番目のページの4つのアイテムすべてをIEとFFの両方で表示します。 –

+0

ああ、ブラウザはページ間でテーブルを分割するのが好きではないかもしれない。その場合は、表を終了し、divを追加してから、表を再開してください。私はそれを示すために答えによって更新します。 –

+0

+1私が取った方向を私を開始する –

関連する問題