CSS
 Computer >> コンピューター >  >> プログラミング >> CSS

CSSの@page疑似クラスを使って両面印刷のレイアウトを設定する方法

書籍や冊子などの両面ドキュメントを印刷する場合、左ページと右ページではページボックス(余白の設定)を変えるのが一般的です。たとえば、製本側(とじしろ)にあたる部分は余白を広めに取り、外側の余白を狭くすることで、見開きでも読みやすいレイアウトになります。

CSSでは、@page ルールに :left および :right の2つの疑似クラスを組み合わせることで、左右それぞれのページに異なるスタイルを適用できます。

記述例

以下のように、@page :left で左ページの余白を、@page :right で右ページの余白を個別に指定します。

<style>
   <!--
      @page :left {
         margin-left: 4cm;
         margin-right: 3cm;
      }
      @page :right {
         margin-left: 3cm;
         margin-right: 4cm;
      }
   -->
</style>

ポイント解説

  • @page :left … 左ページ(奇数ページ・偶数ページの扱いはブラウザや印刷設定に依存します)に適用されるスタイルです。この例では製本側の左余白を 4cm に広げています。
  • @page :right … 右ページに適用されるスタイルです。こちらも同様に、製本側の右余白を 4cm に設定しています。

このように左右で余白を反転させることで、両面印刷した際にどちらのページでも製本側に十分な余白が確保され、穴あけや製本の際に文字が隠れることを防げます。なお、@page ルールの対応状況はブラウザによって異なるため、実際に印刷する前にプレビューで仕上がりを確認することをおすすめします。

  1. CSSのflex-direction: row-reverseでフレックスアイテムを右から左に横並びにする方法

    フレックスアイテムを右から左に配置する方法CSSでフレックスアイテムを右から左へ水平方向に並べるには、flex-directionプロパティにrow-reverseという値を指定します。通常のrowはアイテムを左から右へ並べますが、row-reverseを使うと並び順が反転し、右から左へ配置されます。アラビア語やヘブライ語など右から左に読む言語のレイアウトにも役立ちます。サンプルコード以下のコードは、row-reverseの値を使ってフレックスアイテムを右から左に並べる実装例です。ブラウザで実行して動作を確認してみてください。<!DOCTYPE html> <html>

  2. CSSのfloatプロパティで要素をフロート(回り込み)させる方法

    CSSのfloatプロパティとはCSSのfloatプロパティは、ボックスやコンテンツを配置・整形するために使用されるプロパティです。開発者はfloatを活用することで、要素をコンテナの左側または右側に寄せて配置できます。floatプロパティには、以下のいずれかの値を指定できます。left − 要素がコンテナの左側に浮動しますright − 要素がコンテナの右側に浮動しますnone − 要素は浮動しません(デフォルト値)inherit − 親要素のfloat値を継承しますなお、floatを指定すると後続の要素が回り込むため、レイアウトによってはclearプロパティで回り込みを解除する必要がある点