CSS プロパティ box-direction

CSS プロパティ box-direction: 要素内部の配置方向を制御する

CSS プロパティ box-direction: 要素内部の配置方向を制御する

box-direction プロパティは、ブロックレベル要素内で子要素が配置される方向を指定します。水平方向または垂直方向のフローを制御するために使用され、特に多言語レイアウトや縦書きのテキストを扱う場合に役立ちます。

適用対象

すべてのブロックレベル要素

説明
normal デフォルト値。子要素は、ドキュメントのテキスト方向に従って配置されます。左から右へ記述する言語では、要素は左から右へ水平に配置されます。右から左へ記述する言語では、要素は右から左へ水平に配置されます。(後述のコード例を参照)
reverse 子要素は、normal の反対方向に配置されます。左から右へ記述する言語では、要素は右から左へ水平に配置されます。右から左へ記述する言語では、要素は左から右へ水平に配置されます。(後述のコード例を参照)
inherit 親要素から box-direction プロパティの値を継承します。(後述のコード例を参照)

使用例

デフォルトの動作 (box-direction: normal)

左から右へ記述する言語 (例: 英語) の場合:


<div class="container">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
</div>

右から左へ記述する言語 (例: アラビア語) の場合:


<div class="container" dir="rtl">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
</div>

上記2つのコード例では、box-directionnormal に設定されているため、要素はドキュメントのテキスト方向に従って配置されます。英語の例では左から右へ、アラビア語の例では右から左へ配置されます。

box-direction: reverse

box-directionreverse に設定すると、要素の配置方向が反転します。


<div class="container reverse">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
</div>

この例では、要素は右から左へ配置されます (英語の場合)。

box-direction: inherit

box-directioninherit に設定すると、親要素の box-direction の値が継承されます。


<div class="container" style="writing-mode: vertical-rl; box-direction: reverse;">
  <div class="item inherit">1</div>
  <div class="item inherit">2</div>
  <div class="item inherit">3</div>
</div>

この例では、子要素は親要素の box-direction: reverse を継承し、右から左へ配置されます。

注意点

  • box-direction プロパティは、writing-mode プロパティと組み合わせて使用することで、要素内部のコンテンツの配置方向を完全に制御できます。
  • このプロパティは、すべてのブラウザでサポートされているわけではありません。使用する前に、ブラウザの互換性を確認してください。

参考資料

  • <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/box-direction">MDN Web Docs: box-direction</a>
  • <a href="https://www.w3.org/TR/css-writing-modes-3/#logical-direction">W3C CSS Box Alignment Module Level 3</a>

よくある質問

  1. box-directiondirection の違いは何ですか?

    direction プロパティは、テキストの方向を制御します (例: 左から右、右から左)。一方、box-direction プロパティは、フレックスボックスではないブロックレベル要素内で、子要素が配置される方向を制御します。box-direction は、writing-mode プロパティと組み合わせて使用することで、より複雑なレイアウトを実現できます。

  2. box-direction はレスポンシブデザインにどのように役立ちますか?

    box-direction を使用することで、異なる画面サイズやデバイスの向きに応じて、要素の配置方向を動的に変更できます。例えば、モバイルデバイスでは縦に、デスクトップでは横に要素を配置するといったことが可能です。

  3. box-direction のブラウザサポートは?

    box-direction は、すべての主要なブラウザの最新バージョンでサポートされています。ただし、古いブラウザではサポートされていない場合があります。caniuse.com などのウェブサイトで、最新のブラウザサポート情報を確認してください。