概要

inset-blockプロパティは、CSSにおいて要素のブロック方向(通常は上下方向)の位置を制御するためのプロパティです。このプロパティは、従来のtopbottomを統合し、ブロック方向の余白を簡単に設定できるため、コードの記述がスッキリします。書字方向に応じて動作するため、縦書きや横書きレイアウトの両方で柔軟に使用できます。

構文

inset-block: <長さ> | auto | min-content | max-content;

パラメータ

  • <長さ>
    単位を指定した具体的な長さ(px、em、rem、%など)で、ブロック方向の位置を指定します。
  • auto
    デフォルトの自動設定で、要素の位置をコンテナに応じて決定します。
  • min-content
    コンテンツの最小サイズに基づいて位置を設定します。
  • max-content
    コンテンツが収容できる最大サイズに基づいて位置を設定します。

説明

inset-blockは、要素の上下の位置を一括で設定できる便利なプロパティです。書字方向に応じたレイアウトの調整が可能で、例えば、縦書きのレイアウトでは左右の位置を指定するように動作します。これにより、レスポンシブデザインや多言語対応のウェブサイトで柔軟にレイアウト調整ができます。

使用例

以下は、inset-blockを使用した基本的な例です。

.box {
    position: absolute;
    inset-block: 20px; /* 上下に20pxの余白を設定 */
}

この設定により、.boxクラスの要素は上下に20pxの位置に配置されます。

個別の値を設定する例

.container {
    position: relative;
}
.item {
    position: absolute;
    inset-block: 10px 30px; /* 上: 10px, 下: 30px */
}

この例では、inset-blockを使って上と下に異なる値を設定しています。

書字方向に依存する例

.vertical-text {
    writing-mode: vertical-rl;
    position: absolute;
    inset-block: 15px; /* 縦書きレイアウトでは左右の余白として機能 */
}

縦書きレイアウトでは、inset-blockは左右方向の位置指定として動作します。

注意点

  1. ポジショニングの指定
    inset-blockは、position: relative;absolute;fixed;sticky;で指定されている場合にのみ有効です。ポジショニングが指定されていないと効果がありません。
  2. 書字方向の影響
    書字方向(横書き、縦書き)によってブロック方向が異なるため、レイアウトに合わせた適切な設定が必要です。
  3. ブラウザの互換性
    モダンブラウザでは広くサポートされていますが、古いブラウザでは動作しない場合があります。必要に応じてtopbottomと併用することを検討してください。

まとめ

inset-blockプロパティは、CSSにおける要素のブロック方向の位置を簡潔に制御するための強力なツールです。書字方向に依存せずに柔軟に位置を設定できるため、レスポンシブデザインや多言語対応のレイアウトにおいて非常に有用です。使用する際は、ポジショニングや書字方向の影響を考慮し、適切な値を設定するようにしましょう。