目次を飛ばして本文へ パン屑リストへ
関連プロパティ

改頁をする場所

先ず、改頁出来る場所は、大きく2ヶ所、

  • 非フロートブロックボックスの間にあるマージン部分、
  • ブロックボックス内の行ボックス同士の間

です。

前者の場合、最も優先されるのは、'page-break-inside'です。これの値にavoidを指定すると、その子孫要素に至るまで、すべての箇所で改頁は禁止されます。そうで無い場合、'page-break-before'又は'page-break-after'が'always'か'left'か'right'の場合、そこで必ず改頁します。その要素の'page-break-before'と前の要素の'page-break-after'が異なる場合、どう処理するかはUA依存です。仕様書だと結果的にalwaysと同じに処理するのが最も良いとされています。

後者の場合、以下のようにするのが最も良いとされています。

例えば、'orphans'の値が'4'、'widows'の値が'2'で、ページの最下段に20行分の余裕があるとします。

  • ページ末尾の段落が20行以下なら、段落全体をそのぺージに収めます。
  • ページ末尾の段落が21行か22行なら、'widows'の制約に違反しないように、次のページにはちょうど2行侵入します。
  • ページ末尾の段落が23行以上なら、そのページに20行入れて、次のページに残りの行を収めます。

次に、'orphans'の値が'10'、'widows'の値が'20'で、ページの最下段に8行分の余裕があるとします。

  • ページ末尾の段落が8行以下なら、段落全体をそのぺージに収めます。
  • ページ末尾に来るはずの段落が9行以上なら、'orphans'の制約に違反しないように、その段落はブロックごと次のページへ移します。

ほかにも、以下のような事が最も良いとされています

  • 改頁回数は出来るだけ少なくします。
  • 強制改頁で終わらないすべてのページは、出来るだけ同じ程度の高さを持つようにします。
  • ボーダーがあるブロックの途中で改頁するのは避けます。
  • 表の途中で改頁するのは避けます。
  • フロート要素の途中で改頁するのは避けます。

page top
最終更新日:2018年07月18日
Copyright © 2002-2018 ばあど All Rights Reserved.