CSS ボックスサイジングモジュール Level 3

W3C 作業草案,

この文書の詳細
このバージョン:
https://www.w3.org/TR/2026/WD-css-sizing-3-20260904/
最新の公開バージョン:
https://www.w3.org/TR/css-sizing-3/
編集者草案:
https://drafts.csswg.org/css-sizing-3/
以前のバージョン:
履歴:
https://www.w3.org/standards/history/css-sizing-3/
フィードバック:
CSSWG 問題リポジトリ
CSSWG GitHub
仕様内のインライン表示
編集者:
Tab Atkins (Google)
Elika J. Etemad / fantasai (Apple)
この仕様の編集を提案:
GitHub エディター
テストスイート:
https://wpt.fyi/results/css/css-sizing/

概要

このモジュールは、コンテンツに基づく「内在」サイズ およびコンテキストに基づく「外在」サイズを表すキーワードによって CSS のサイズ指定プロパティを拡張し、CSS でコンテンツに適合するボックスや 特定のレイアウトコンテキストに適合するボックスをより簡単に記述できるようにします。

CSS は、構造化文書 (HTML や XML など)の画面、紙面などへのレンダリングを記述するための言語です。

この文書のステータス

この節では、公開時点におけるこの文書のステータスについて説明します。 現在の W3C 公開文書の一覧 およびこの技術報告書の最新リビジョンは、 W3C 標準および草案の索引で確認できます。

この文書は、 CSS ワーキンググループによって 勧告 トラックを使用した作業草案として公開されました。 作業草案としての公開は、 W3C およびそのメンバーによる承認を意味するものではありません。

これは草案文書であり、 いつでも更新、置換 または他の文書によって廃止される可能性があります。 この文書を進行中の作業以外のものとして引用することは不適切です。

フィードバックは、 GitHub で issue を登録すること(推奨)により送信してください。 タイトルには仕様コード “css-sizing” を、次のように含めてください: “[css-sizing] …コメントの要約…”。 すべての issue およびコメントはアーカイブされます。 または、フィードバックを(アーカイブ済みの)公開メーリングリスト www-style@w3.org に送信することもできます。

この文書は、 2025年8月18日付 W3C プロセス 文書によって管理されます。

この文書は、 W3C 特許ポリシーの下で活動するグループによって作成されました。 W3C は、 グループの成果物に関連して行われた 特許開示の公開一覧を管理しています。 そのページには、特許を開示するための手順も記載されています。 個人が、その個人の考えでは 必須クレームを含む特許について実際に知っている場合、 W3C 特許 ポリシーの第6節に従ってその情報を開示しなければなりません。

以下の機能はリスクありとされており、CR 期間中に削除される可能性があります:

「リスクあり」は W3C プロセスにおける専門用語であり、その機能が削除または 遅延する危険にあることを必ずしも意味しません。これは、WG が、その機能を適時に相互運用可能な形で 実装することが困難になる可能性があると考えていることを意味し、そのように指定することで、必要な場合には WG が 勧告案段階へ移行する際に、まずその機能を含まない新しい候補勧告を公開することなく、その機能を削除できます。

1. はじめに

この節は規範的ではありません。

CSS レイアウトには、さまざまなレイアウト計算で使用される自動サイズ指定に関する複数の異なる概念があります。 この節では、より正確な用語をいくつか定義し、 この仕様のレイアウト動作と他のモジュールで使用される計算との関連付けを容易にするとともに、 width および height プロパティ用の新しいキーワードをいくつか定義して、 これらのサイズ計算から得られる寸法を要素に割り当てられるようにします。

テスト

一般的なサイズ指定のテスト


この仕様には 図解が必要です! issue を参照してください。

1.1. モジュール間の相互作用

このモジュールは、[CSS2] の第10章および [CSS3COL] で定義されている width、height、min-width、min-height、max-width、max-height、および column-width の機能を拡張します。

このモジュールにおける box-sizing プロパティの定義は、[CSS-UI-3] の定義に優先します。

1.2. 値の定義

この仕様は、[CSS2] の CSS プロパティ定義規約に従い、 [CSS-VALUES-3] の 値定義構文を使用します。 この仕様で定義されていない値型は CSS Values & Units [CSS-VALUES-3] で定義されています。 他の CSS モジュールとの組み合わせにより、これらの値型の定義が拡張される場合があります。

各定義に列挙されているプロパティ固有の値に加えて、 この仕様で定義されるすべてのプロパティは、 プロパティ値として CSS 全域キーワードも受け入れます。 可読性のため、それらは明示的に繰り返していません。

2. 用語

座標軸および寸法に関する主要な用語の一部は、 CSS Writing Modes 3 § 6 抽象ボックス用語で定義されています。

サイズ
1次元または2次元の測定値: ブロックサイズおよび/または インラインサイズ。 あるいは 幅および/または 高さ。
左から右、上から下に進む横書きの英語では、
				          水平方向の幅とインラインサイズは同義であり、
				          垂直方向の高さとブロックサイズは同義です。上から下、右から左に進む縦書きの日本語では、
				           水平方向の幅とブロックサイズは同義であり、
				           垂直方向の高さとインラインサイズは同義です。
幅または 高さのどちらが インラインサイズまたは ブロックサイズに対応するかは、 書字モードに依存します。
内側サイズ
ボックスの コンテンツボックスの サイズ。
内側サイズ
外側サイズ
ボックスの マージンボックスの サイズ。
外側サイズ
確定サイズ
レイアウトを実行せずに決定できるサイズ。 すなわち、<length>、 テキストの測定値(行折り返しを考慮しない)、 初期包含ブロックのサイズ、 または <percentage> もしくはその他の式 (たとえば非置換ブロックの「stretch-fit」サイズ指定 [CSS2]) であり、確定サイズのみに対して解決されるもの。

さらに、絶対配置要素の包含ブロックのサイズは、その要素に関して常に 確定です。

不確定サイズ
確定ではないサイズ。 不確定な利用可能空間は、本質的に 無限です。

注: 内在サイズ指定キーワード(max-content など)は不確定です。 サイズ包含や子が存在しないことなどにより、 子をレイアウトせずに決定できる場合でも同様です。

利用可能 空間
ボックスがレイアウトされる空間を表すサイズであり、 そのボックスが参加する整形コンテキストの規則によって決定されます。 ボックスに利用可能な空間は通常、 その包含ブロックの測定値(それが確定である場合)、 または無限サイズ(不確定である場合)のいずれかです。 利用可能空間は、代わりに min-content 制約または max-content 制約 のいずれかであることもでき、その空間内に配置されるボックスにその制約の下でのレイアウトを強制します。
テスト
stretch fit
指定されたサイズへのstretch fitは、 そのサイズから、指定された次元におけるボックスの算出済みマージン (相殺せず、auto をゼロとして扱う)、境界、およびパディングを差し引いたものです (外側サイズが完全に適合するようにします)。 また、ゼロを下限とします (内側サイズが負にならないようにするためです)。

注: これは CSS2.1§10.3.3 において、 通常フロー内の非置換ブロックの auto 幅を計算するために使用される式です。

フォールバックサイズ
一部のサイズ指定アルゴリズムは、無限サイズでは適切に機能しません。 そのような場合、代わりにフォールバックサイズが 使用されます。 特に指定がない限り、 これは初期包含ブロックのサイズです。

2.1. 自動ボックスサイズ

CSS には、自動的に決定されるサイズが4種類あります (コンテキストに応じて auto サイズ指定規則から得られるサイズ):

stretch-fit サイズ
stretch-fit インライン サイズ
stretch-fit ブロック サイズ
指定された軸において、ボックスの外側サイズが 利用可能空間を満たす場合に、 ボックスが取るサイズ。 言い換えると、利用可能空間が 確定である場合、その空間への stretch fitです。 利用可能空間が不確定である場合は未定義です。

注: インライン 軸では、これは CSS2.1§10.3.5 において「利用可能幅」と呼ばれ、 CSS2.1§10.3.3 の規則によって計算されます。

注: このサイズを含む計算では、 利用可能空間が 不確定になり得る場合、 その場合のフォールバック動作を指定する必要があります。

max-content サイズ
無限の利用可能空間が与えられた場合に、指定された軸でボックスが取る「理想的な」 サイズ。 通常これは、コンテンツを収めたままその軸でボックスが取ることのできる最小の サイズであり、 すなわち、オーバーフローを回避しつつ未使用空間を最小化します。
max-content インラインサイズ

インライン軸におけるボックスの「理想的な」サイズ。 通常は、ボックス内のソフト折り返し機会を一切使用しない場合に、 コンテンツを収めることができる最も狭いインラインサイズです。 (§ 5 内在サイズの決定を参照。)

注: これは CSS2.1§10.3.5 では「優先幅」と呼ばれ、 CSS2.1§17.5.2.2 では「最大セル幅」と呼ばれます。

max-content ブロックサイズ

ブロック軸におけるボックスの「理想的な」サイズ。 通常は、レイアウト後のコンテンツのブロック サイズです。

理想的なmax-content サイズがmin-content サイズより小さくなる場合 (たとえば負のマージンを使用したことによる場合)、 実効的なmax-content サイズはmin-content サイズを下限とします。

min-content サイズ
名目的には、より大きなサイズを選択することで回避できる オーバーフローを生じさせない範囲で、ボックスが取ることのできる最小の サイズです。 形式的には、min-content 制約の下でサイズ指定されたときのボックスのサイズです。 § 5 内在サイズの決定を参照してください。
min-content インラインサイズ

インライン軸における min-content サイズ。 通常、ボックス内のすべてのソフト折り返し機会を使用した場合に、 コンテンツを収められるインライン サイズです。

注: これは CSS2.1§10.3.5 では「優先最小幅」、 CSS2.1§17.5.2.2 では「最小コンテンツ幅」と呼ばれます。

min-content ブロックサイズ

ブロック軸における min-content サイズ。 ブロックコンテナー、テーブル、およびインライン ボックスでは、 これはmax-content ブロックサイズと等価です。

fit-content サイズ
fit-content インライン サイズ
fit-content ブロック サイズ
指定された軸の利用可能空間が 確定である場合、 次と等しくなります: clamp(min-content サイズ, stretch-fit サイズ, max-content サイズ) (すなわち max(min-content サイズ, min(max-content サイズ, stretch-fit サイズ)))。 min-content 制約の下でサイズ指定する場合は、 min-content サイズと等しくなります。 それ以外の場合は、その軸におけるmax-content サイズと等しくなります。

注: これは CSS2.1§10.3.5 および CSS Multi-column Layout § 3.4 では「shrink-to-fit」幅と呼ばれます。

内在サイズ
max-content サイズまたはmin-content サイズ、 すなわち、主としてコンテンツのサイズから生じるサイズです。 (この用語の一部の用法では、これら2つのサイズのいずれかから主として導出されるサイズも指す場合があります。)

置換要素は、その内在サイズを、 自然寸法から導出することがよくあります。

次の例では、内側の <div> の幅に fit-content サイズ指定を適用し、 さまざまなサイズの包含ブロック内に配置します:
<!DOCTYPE html>
<style>div > div { width: fit-content; }</style>
<div style="width: 2ch;">
  <div>abc def ehg</div>
</div>
<div style="width: 9ch;">
  <div>abc def ehg</div>
</div>
<div style="width: 16ch;">
  <div>abc def ehg</div>
</div>
上記の例を示す図:
					“abc” と同じ幅の赤いボックス、
					“abc def” より少し幅広い別のボックス、
					そして文字列全体を1行にした場合と同じ幅の3つ目のボックス。

ここで width の代わりに min-width または max-width プロパティを使用すると、 これらと同じサイズがそれぞれ最小幅または最大幅として適用され、 優先幅を制約して 使用幅を決定します。 § 3 ボックスサイズの指定および § 3.2 サイズ指定 値: <length-percentage>、auto | none、stretch、min-content、max-content、および fit-content 値を参照してください。

2.2. 内在サイズ寄与

max-content 寄与
ボックスがその包含ブロックのmax-content サイズに寄与するサイズ。
min-content 寄与
ボックスがその包含ブロックのmin-content サイズに寄与するサイズ。
内在サイズ 寄与
max-content 寄与、min-content 寄与、 または同様に計算されるコンテンツベースのサイズ寄与。

内在サイズ寄与は、ボックスの外側サイズに基づきます。 この目的では auto マージンはゼロとして扱われます。

理想的なmax-content 寄与がmin-content 寄与より小さくなる場合 (たとえば負のマージンを使用したことによる場合)、 実効的なmax-content 寄与は min-content 寄与を下限とします。

2.3. 内在サイズ制約

max-content 制約
ボックスの包含ブロックによって課されるサイズ指定制約であり、 ボックスにmax-content 寄与を生成させます。
min-content 制約
ボックスの包含ブロックによって課されるサイズ指定制約であり、 ボックスにmin-content 寄与を生成させます。
優先アスペクト 比
ボックスに固有の幅:高さの比率であり、 さまざまなサイズ指定アルゴリズムに対し、 他のサイズ指定入力を尊重しながら可能な限りそのアスペクト比と一致するサイズを生成するよう バイアスをかけます。 特に指定がない限り、 ボックスの優先アスペクト比は、存在する場合にはその 自然アスペクト比であり、 そのコンテンツボックスに適用されます。 ほとんどのボックスには優先アスペクト比がありません。
テスト

3. ボックスサイズの指定

3.1. サイズ指定プロパティ

この節では、適用されるボックスの優先、最小、および最大サイズを指定する サイズ指定プロパティを定義します。 取り得る値は次の節、 § 3.2 サイズ指定値: <length-percentage>、auto | none、stretch、min-content、 max-content、および fit-content 値で定義されます。

フロー相対バリアント(inline-size、block-size など)は、 要素自身の書字モードを使用して対応付けられ、 物理対応物(width、height など)とは、 [CSS-LOGICAL-1] で定義されているように相互作用します。 CSS Writing Modes 3 § 6 抽象ボックス用語も参照してください。

CSS では、最小サイズと最大サイズの両方が 使用サイズを制約しますが、 最小サイズ制約が常に最も強い制約です。 さらに、内側サイズは常に ゼロを下限とします。

3.1.1. 優先サイズプロパティ: width、height、inline-size、およびblock-size プロパティ

名前: width, height, inline-size, block-size
値: auto | <box-size>
初期値: auto
適用対象: 非置換インラインを除くすべての要素
継承: しない
パーセント値: 包含ブロックの幅/高さに対する相対値
算出値: 指定どおり。ただし <length-percentage> 値は算出される
正規順序: 文法に従う
アニメーション型: 算出値の型による。fit-content() 内へ再帰する
論理プロパティ グループ: size
テスト

width および height(物理)、 および inline-size と block-size(フロー相対)は、 ボックスの 優先 幅 および 高さ(物理)、 または インラインサイズ および ブロックサイズ(フロー相対)を それぞれ指定するサイズ指定プロパティです。

3.1.2. 最小サイズプロパティ: min-width、min-height、min-inline-size、およびmin-block-size プロパティ

名前: min-width, min-height, min-inline-size, min-block-size
値: auto | <box-size>
初期値: auto
適用対象: width または height を受け入れるすべての要素
継承: しない
パーセント値: 包含ブロックの幅/高さに対する相対値
算出値: 指定どおり。ただし <length-percentage> 値は算出される
正規順序: 文法に従う
アニメーション型: 算出値による。fit-content() 内へ再帰する
論理プロパティ グループ: min-size
テスト

min-width および min-height(物理)、 および min-inline-size と min-block-size(フロー相対)は、 ボックスの 最小幅(「min width」) および 最小高さ(「min height」)、 または 最小インラインサイズ(「min inline size」) および 最小ブロックサイズ(「min block size」)を それぞれ指定するサイズ指定プロパティです。

注: auto という初期値は新しいものです。 [CSS2] では初期値は ゼロでした。

3.1.3. 最大サイズプロパティ: max-width、max-height、max-inline-size、およびmax-block-size プロパティ

名前: max-width, max-height, max-inline-size, max-block-size
値: none | <box-size>
初期値: none
適用対象: width または height を受け入れるすべての要素
継承: しない
パーセント値: 包含ブロックの幅/高さに対する相対値
算出値: 指定どおり。ただし <length-percentage> 値は算出される
正規順序: 文法に従う
アニメーション型: 算出値による。fit-content() 内へ再帰する
論理プロパティ グループ: max-size
テスト

max-width および max-height(物理)、 および max-inline-size と max-block-size(フロー相対)は、 ボックスの 最大幅(「max width」) および 最大高さ(「max height」)、 または 最大インラインサイズ(「max inline size) および 最大ブロックサイズ(「max block size)を それぞれ指定するサイズ指定プロパティです。

3.2. サイズ指定値: <length-percentage>、auto | none、stretch、min-content、max-content、およびfit-content 値

次の値はサイズ指定プロパティで使用されます。 auto と none 以外の値は、 <box-size> 生成規則の下にまとめられます:

<box-size> = <length-percentage> | stretch | min-content | max-content | fit-content

注: Level 2 における <box-size> に相当するものは、 単に <length-percentage> のみです。

<length-percentage [0,∞]>
<length> および/または <percentage> を使用してボックスのサイズを指定します。 box-sizing プロパティは、 コンテンツボックスと境界ボックスのどちらを 測定するかを示します。

パーセント値は、必要に応じてボックスの包含ブロックの幅/高さに対して解決されます。 特定の軸において、 包含ブロックのサイズがボックスのサイズに依存する場合は、 パーセント値の解決方法に関する特別な規則について、関連するレイアウトモジュールを参照してください。

負の値は無効です。

テスト
auto
width/height では、自動 サイズ (自動ブロックサイズ/自動インラインサイズ)を指定します。 その計算方法については、関連するレイアウトモジュールを参照してください。

min-width/min-height では、 自動最小サイズを指定します。 ただし、関連するレイアウトモジュールで別途定義されていない限り、 使用値 0 に解決されます。 後方互換性のため、 このキーワードの解決値は、 aspect-ratio が auto の場合、 すべての [CSS2] 表示型のボックス (ブロックおよびインラインボックス、 インラインブロック、 ならびにすべてのテーブル表示型)についてゼロです。 また、ボックスが生成されない場合もゼロに解決されます。

none
ボックスのサイズに制限を設けません。
stretch
stretch-fit サイズ指定を適用し、 ボックスのマージンボックスのサイズを その包含ブロックのサイズに一致させようとします。 § 4.2 Stretch-fit サイズ指定: 包含ブロックを満たすを参照してください。
テスト
min-content
関連する軸のmin-content サイズを使用します。 ボックスのブロックサイズでは、 特に指定がない限り、 これはその自動サイズと等価です。
テスト
max-content
関連する軸のmax-content サイズを 使用します。 ボックスのブロックサイズでは、 特に指定がない限り、 これはその自動サイズと等価です。
fit-content
関連する軸のfit-content サイズを使用します。 すなわち、 min(max-content, max(min-content, stretch)) です。
テスト
テスト

すべての場合において、 使用値は負でない内側サイズを維持するよう、ゼロを下限とします。

注: stretch、min-content、max-content、およびfit-content 値は Level 3 で新しく追加されました。

注: flex-basis プロパティも、その値が <'width'> を参照して定義されているため、 これらの新しいキーワードを取得します。

3.2.1. 「auto として動作する」

width/height の算出値が auto である場合と、 auto が指定されたかのように動作すると定義されている場合 (たとえば、ブロックのパーセント高さが 不確定サイズに対して解決される場合。 CSS2§10.5 を参照)の両方を表す共通用語として、 これらの両方の場合に、プロパティはauto として動作する といいます。

注: 従来の仕様のレイアウト動作を定義する文章、 とりわけ [CSS2] では、 条件として width/height の算出値が auto であることを 明示的に参照している場合があります。 これらの一部は、auto として動作することを意味すると解釈し、 更新のため CSSWG に報告する必要があります。

テスト

この節を、 新しい用語 自動サイズへの参照に置き換える。

3.2.2. 浮動体の包含または除外

この節は非規範的です。

ブロックボックスの境界は通常、浮動体を通過させますが、 作成者が自身の(子孫)浮動体を包含する必要がある場合や、 外部の浮動体を除外する必要がある場合があります。 ブロックレイアウトでは、 display: flow-root を指定すると、 ボックスはこの動作を持つ整形コンテキストのルートになります。

注: Flex、Grid、または Table レイアウトに参加するボックスは、 自動的にこの動作を持ちます。

3.3. サイズ指定用のボックス辺: box-sizing プロパティ

名前: box-sizing
値: content-box | border-box
初期値: content-box
適用対象: width または height を受け入れるすべての要素
継承: しない
パーセント値: 該当なし
算出値: 指定されたキーワード
正規順序: 文法に従う
アニメーション型: 離散
テスト

box-sizing プロパティは、 固定サイズ(<length> や <percentage> など)が コンテンツボックスに割り当てられるか、境界ボックスに割り当てられるかを定義します。 これは、flex-basis を含む、すべての サイズ指定プロパティの解釈に影響します。

各値の意味は次のとおりです:

content-box
サイズ指定 プロパティで <length-percentage> として指定されたサイズは、 マージン/境界/パディングを除いたボックスの内側サイズを表します。 これらはコンテンツボックスに適用されます。 ボックスのパディングおよび境界は、 指定されたwidth および height の 外側にレイアウトされ描画されます。

注: これは CSS2.1 で指定された width および height の動作であり、 したがって既定値です。

テスト
border-box
サイズ指定プロパティ内の任意の <length-percentage> 値は、 境界ボックスに適用され、 したがって視覚的に見えるボックスのサイズを表します。 ボックスのパディングおよび境界(ただし マージンは除く)は、 実質的に使用width および height の内側にレイアウトされ描画され、 コンテンツボックスは残りの空間を満たすようサイズ指定されます。 より具体的には、 コンテンツボックスの幅および高さは、 対応する軸の境界およびパディングを、指定された <length-percentage> から差し引いて計算し、 結果をゼロを下限とします (ボックスの内側サイズは負になれないためです)。

サイズ指定プロパティの使用値も、 たとえば getComputedStyle() を通じて公開される場合、 境界ボックスを指します。

テスト

box-sizing の影響を受ける値には、 生の <length-percentage> 値と、 fit-content() [css-sizing-4] などの 関数記法内で使用される値の両方が含まれます。 対照的に、 auto や min-content などの 非数量的な値は、別途指定されない限り、 box-sizing プロパティの影響を受けません。

たとえば、次のプロパティは ボックスのコンテンツボックスのサイズを 100px に設定し、 境界ボックスのサイズは 120px と計算されます:
.box {
  box-sizing:   content-box; /* 既定値 */
  width:        100px;
  padding-left: 10px;
  border-left:  10px solid;
}

一方、border-box に変更すると、 境界ボックスは 100px に設定され、 コンテンツボックスのサイズは 80px と計算されます:

.box {
  box-sizing:   border-box;
  width:        100px;
  padding-left: 10px;
  border-left:  10px solid;
}

内側サイズは ゼロ未満にはできないため、 padding + border が 指定された境界ボックスサイズより大きい場合、 ボックスは最終的に指定より大きくなります。 この場合、コンテンツボックスのサイズは 0px を下限とするため、 境界ボックスに width: 100px が指定されていても、 境界ボックスのサイズは最終的に 120px になります:

.box {
  box-sizing:   border-box;
  width:        100px;
  padding-left: 60px;
  border-left:  60px solid;
  /* padding + border = 120px */
}
この例では box-sizing を使用して、固定サイズの境界を持つ2つの div を div コンテナー内で水平方向に均等に分割します。 これを使用しない場合は追加のマークアップが必要になります。

CSS の例:

div.container {
  width:38em;
  border:1em solid black;
}

div.split {
  box-sizing:border-box;
  width:50%;
  border:1em silver ridge;
  float:left;
}

HTML フラグメントの例:

<div class="container">
<div class="split">This div occupies the left half.</div>
<div class="split">This div occupies the right half.</div>
</div>

CSS と HTML の例の実演:

この div は 左半分を占めるはずです。
この div は 右半分を占めるはずです。
上の2つの div は横並びで表示され、それぞれが(境界を含めて)コンテナーのコンテンツ幅の50%を 占めるはずです。代わりに上下に積み重なって表示される場合、ブラウザーは box-sizing をサポートしていません。

注: 一部の HTML 要素、 たとえば button などは、既定で border-box の動作になります。 この動作を持つ要素の詳細については HTML を参照してください。

従来の CSS 仕様では、 幅、高さ、 最小(min)幅、 最小(min)高さ、 最大(max)幅、および 最大(max)高さ という用語は、特に示されない限り一般に ボックスの 内側サイズ (コンテンツボックスサイズ)を指します。

視覚整形モデルの詳細の節におけるこれらの用語を 明確に区別する方法については、 CSS User Interface 3 § 3.1 ボックスモデルの変更: box-sizing プロパティを参照してください。これは[CSS2] に関するものです。

曖昧さを避けるため、 仕様作成者は、幅や高さなどの用語を追加の限定なしに曖昧に使用することを避け、 それぞれの場合に応じて、 内側サイズ、 外側サイズ、 境界ボックスのサイズ、 サイズ指定プロパティの算出値などを 明示的に参照し、リンクするべきです。

3.4. 新しいカラムサイズ指定値: stretch、min-content、max-content、およびfit-content 値

名前: column-width
新しい値: <box-size>
算出値: 指定どおり。ただし <length-percentage> 値は算出される
アニメーション型: 算出値の型による

column-width の値として使用される場合、 新しいキーワードは最適なカラム幅を指定します:

stretch
最適なカラム幅を、マルチカラムコンテナーのstretch-fit インラインサイズとして指定します。
min-content
最適なカラム幅を、マルチカラムコンテナーのコンテンツのmin-content インラインサイズとして指定します。
max-content
最適なカラム幅を、マルチカラムコンテナーのコンテンツのmax-content インラインサイズとして指定します。
fit-content
最適なカラム幅を min(max-content インラインサイズ, max(min-content インラインサイズ, stretch-fit インラインサイズ)) として指定します。

注: カラム幅はカラムごとに変化することはありません。 カラム幅がマルチカラムコンテナーのコンテンツから決定される場合 (上記のキーワードの場合)、 そのすべてのコンテンツが考慮され、 計算された幅がすべてのカラムで共有されます。

4. 外在サイズの決定

外在サイズ指定は、 コンテンツを考慮せず、要素のコンテキストに基づいてサイズを決定します。

4.1. パーセントによるサイズ指定

パーセント値は、ボックスの包含 ブロックを基準にボックスのサイズを指定します。

たとえば、次のマークアップでは:
<article style="height: 60em">
  <figure style="height: 50%;">
    <img style="height: 50%;">
  </figure>
</article>

包含ブロックのサイズが そのコンテンツのサイズに依存する場合のパーセント値の解決方法については、 § 5.2.1 パーセント指定されたボックスの内在寄与を参照してください。

テスト

4.2. Stretch-fit サイズ指定: 包含ブロックを満たす

Stretch-fit サイズ指定は、 min-height/min-width/max-height/max-width による制約を尊重しつつ、 ボックスの主ボックスの外側サイズが 包含ブロックを可能な限り満たすために必要な長さに、 ボックスの使用サイズを設定しようとします。

パーセントサイズが確定値に解決できる軸で使用される場合

auto マージンをゼロとして扱い、 マージンボックスが包含ブロックを正確に満たすようサイズ指定します。 (これにより内側 サイズが負になる場合は、 代わりにマージンボックスを、 内側サイズがゼロになるようサイズ指定します。)

フロー内のブロックレベルボックスで、 独立整形コンテキストを形成するものについては、 包含ブロックのインラインサイズの代わりに、 行ボックスに利用可能な空間 (すなわち浮動体を除く)を使用します。

フロー内のブロックレベルボックスについて、 ブロック 軸のサイズを解決する際: パーセント値が基準とする祖先要素に ブロック始端の境界またはパディングがなく、 かつ独立整形コンテキストでない場合、 このサイズを計算する目的では、要素のブロック始端マージンをゼロとして扱います。 ブロック終端 マージンについても同様に扱います。

注: これはマージンが親のマージンと 相殺される効果を模擬します。 実際にマージンを抑制するわけではないため、 何らかの理由で要素が実際には親とマージン相殺できない場合、 stretch-fit サイズは、親に完全に収まるには実際には大きすぎる可能性があります。

それ以外

優先サイズプロパティでは、 auto として動作します。 最小サイズ プロパティでは、 0 として動作します。 最大サイズ プロパティでは、 none として動作します。

たとえば、2つのブロックボックスを表す 次の HTML があるとします:
<div class="parent">
  <div class="child">text</div>
</div>

次の場合、 子ボックスの外側高さは 親ボックスの高さ(200px)と正確に一致しますが、 その内側高さは、 マージンを考慮するため 20px 小さくなります。

.parent { height: 200px; border: solid; }
.child { height: stretch; margin: 10px; }

一方、この場合は子のマージンが親と相殺されると仮定できるため、 内側ボックスは高さ 200px となり、 親を正確に満たします。

.outer { height: 200px; margin: 0; }
.inner { height: stretch; margin: 10px; }

(上側のマージンは実際に相殺されますが、 下側のマージンは相殺されません。 なぜなら、ボックスの下側マージンは、auto ではない高さを持つ親の 下側マージンとは隣接していないためです。 CSS 2 § 8.3.1 マージンの相殺を参照してください。 幸い、オーバーフローする下側マージンには視覚的な効果がありません。)

同様に、width: stretch はボックスにコンテナーを満たさせ、 10px のマージンにより、"some more text" の幅より 20px 狭くなります:
<div class="parent">
  <div class="child">text</div>
</div>
some more text
.parent { float: left; margin: 0; }
.child { width: stretch; margin: 10px; }
一方、 この例ではコンテナーの高さは不確定であり、 そのため子のパーセント高さはauto として動作します。 したがって height: stretch も同様にauto として動作します。
.parent { height: auto; margin: 0; }
.child { height: stretch; margin: 10px; }
テスト

注: stretch-fit サイズは通常、 stretch 自己整列と等価ですが、 常にそうとは限りません。 たとえば、複数行のフレックスレイアウトでは、 stretch-fit サイズは包含ブロックに対して直接解決され、 そのサイズを行の交差サイズに寄与します。 一方、stretch は、 最終的に行の交差サイズに対して解決される前に、 fit-content サイズを寄与します。

5. 内在サイズの決定

内在サイズ指定は、 コンテキストを考慮せず、要素のコンテンツに基づいてサイズを決定します。

テスト

5.1. 内在サイズ

各軸におけるボックスのmin-content サイズは、 その軸で auto 優先サイズが与えられ (かつその軸に最小または最大サイズがなく)、 その包含ブロックがその軸でゼロサイズである浮動体であった場合に取るサイズです。 (言い換えると、「shrink-to-fit」でサイズ指定された場合に取る最小サイズです。)

各軸におけるボックスのmax-content サイズは、 その軸で auto 優先サイズが与えられ (かつその軸に最小または最大サイズがなく)、 その包含ブロックがその軸で無限サイズである浮動体であった場合に取るサイズです。 (言い換えると、「shrink-to-fit」でサイズ指定された場合に取る最大サイズです。)

min-content サイズとmax-content サイズをまとめて 内在サイズと呼びます。

注: ボックスに優先アスペクト比がある場合、 反対側の次元のサイズ制約が転送され、 検討対象の次元におけるauto サイズに影響する場合があります。 CSS2§10 を参照してください。

この仕様は、浮動体のサイズを決定する方法を定義しません。 [CSS2] を参照してください。 ただし、置換要素で自然サイズを持たないものの 内在サイズは、 以下で定義します:

非退化の優先アスペクト比を持つ場合:
min-content サイズには ゼロを使用します。

max-content サイズには:

  • 利用可能空間が インライン軸で確定している場合、 インラインサイズにはそのサイズへのstretch fitを使用し、 アスペクト比を使用してブロックサイズを計算します。

  • それ以外で、 ボックスの min-width または min-height の算出値として <length> がある場合、 そのサイズを使用し、アスペクト比を使用してもう一方の次元を計算します。 両方の次元に <length> の最小値がある場合、 全体としてより大きいサイズになる方を選択します。

    注: この場合は以前、 ボックスの最小サイズではなく、300x150 の既定サイズから計算されていました。 この方がより良い動作であり、 Web 互換である可能性が高いと考えられていますが、 問題がある場合は CSSWG にフィードバックを送ってください。

    テスト
  • それ以外の場合、 初期包含ブロックの対応する次元と一致する インラインサイズを 使用し、 アスペクト比を使用してもう一方の次元を計算します。

優先アスペクト比を持たない場合:
min-content サイズと max-content サイズの両方について:
  • その次元におけるボックスの最小サイズ (min-width/min-height)の算出値として <length> がある場合、 そのサイズを使用します。

    注: この作成者が制御可能な動作は、 最小サイズプロパティの 新しい auto 値によって可能になっています。 これはより良い動作と考えられていますが、 Web 互換であるかどうかはまだ明確ではないため、 問題がある場合は CSSWG にフィードバックを送ってください。

  • それ以外の場合、 必要に応じて幅には 300px、 および/または高さには 150px を使用します。

    注: これはアスペクト比を意味するものではありません。

ブロックレベルまたはインラインレベルの置換要素で、 height または width がauto として動作するものは、 実質的にmax-content サイズを使用すると定義されているため (CSS2§10.3.2)、 この仕様では上記の規則を、 height と width の両方が auto として動作する置換要素という未定義の場合に適用します。

注: この仕様は 浮動体のサイズを決定する方法を定義しません。 詳細については、[CSS2]、 その表示型に関連する CSS 仕様、 および/または既存の実装を参照してください。 将来の仕様ではこれを詳細に定義し、 現状の CSS2 の「定義」を置き換える予定です。


HTML の <input type=text> や <textarea> 要素などの テキスト入力コントロールの auto サイズは通常固定サイズですが、 そのような要素のコンテンツを使用して、 非置換ブロックコンテナーの場合と同様に、 コンテンツベースの内在サイズを決定できます。 したがって、サイズ指定プロパティの min-content および max-content キーワードは、 値をボックス内に含まれるテキストとしてレンダリングするフォームコントロールについて、 コンテンツベースのサイズを表し、 通常の非置換要素と同様に、表示されているコンテンツに適合するよう そのようなコントロールをサイズ指定できるようにします。

この場合のコンテンツは入力コントロールの値として定義されます (textarea の場合は 生の値、 input の場合は 値)。 これは、より人間が読みやすい、および/またはローカライズされた表示形式に変換される場合があり、 その後、入力コントロールの子テキスト シーケンスとして扱われます。 ソフト折り返し機会は、 入力コントロールが実際に折り返しを許可する場所でのみ許可されます (CSS プロパティまたはその他の UA 内部制約のいずれに基づくかを問いません)。 入力コントロールに、値表示領域に重ねて表示するよう指定されたプレースホルダーテキストがある場合、 そのテキストも、現在プレースホルダーテキストが表示されているかどうかにかかわらず、 コンテンツベースのサイズを計算する目的で測定されます。 (したがって、入力コントロールのコンテンツベースの内在サイズは、 プレースホルダーテキストに適合するサイズと値に適合するサイズのうち大きい方です。)

UA は、キャレットのために十分な空間を確保し、 その他の点でもフォームコントロールの使いやすさを維持するため、 フォームコントロールの min-content および max-content サイズに 最小値 (単一のゼロ幅文字を含めるために必要なサイズや、 タッチターゲットとして使用可能な最小サイズなど)を課してもよいです。

注: これは、 iframe やその他のコンテンツを含む置換要素にも拡張される可能性があります (議論を参照)。 ただし、テキスト入力は主要なユースケースであり、 文書内部にあるため、 追加の複雑さが最も少なくなります。

テスト

5.2. 内在寄与

各軸におけるボックスのmin-content 寄与/max-content 寄与は、 そのボックスのみを含む仮想のauto サイズの浮動体の コンテンツボックスのサイズであり、 その仮想浮動体の包含ブロックがゼロサイズ/無限サイズである場合のものです。

注: この仕様は、これらのサイズを決定する方法を 厳密には定義していません。 詳細については、[CSS2]、 その表示型に関連する CSS 仕様、 パーセント値を処理する規則(以下)、 および/または既存の実装を参照してください。

テスト

この目的では、stretch 自己整列および stretch-fit サイズ指定は、 外在的に解決できる場合、 解決可能なパーセント値と同様に確定とみなされます。

5.2.1. パーセント指定されたボックスの内在寄与

パーセントでサイズ指定されたボックスの包含 ブロックのサイズが、 そのボックス自身の内在サイズ寄与に依存し、 循環依存が生じる場合があります。 そのようなボックスの内在サイズ寄与を計算するとき (コンテンツベースの自動最小サイズに関する計算を含む)、 内在サイズ寄与と同じ軸のサイズに対して解決される パーセント値(循環パーセントサイズ)は、 特別に解決されます:

  1. ボックスが非置換の場合、 最大サイズ プロパティまたは優先サイズプロパティ (width/max-width/height/max-height)のうち、 パーセント値を含む式 (10% や calc(10px + 0%) など)として指定され、 循環しているものの値全体は、 ボックスの内在サイズ寄与を計算する目的に限り、 そのプロパティの初期値として扱われます。 たとえば、width: calc(20px + 50%) を持つボックスでは、 その max-content 寄与は、width が auto であるかのように計算されます。 (ただし、ボックス自体を実際にサイズ指定する際には、 パーセント値は通常どおり使用されます。以下を参照してください。)
  2. 同様に、ボックスが置換である場合、 パーセント値を含む式として指定され、 循環している 最大サイズ プロパティまたは優先サイズプロパティの値全体は、 ボックスのmax-content 寄与を計算する目的に限り、 そのプロパティの初期値として扱われます。
  3. ボックスが置換である場合、 最大サイズ プロパティまたは優先サイズプロパティ (width/max-width/height/max-height)の値にある 循環 パーセント値は、 対応する軸のmin-content 寄与を計算するとき、 ゼロに対して解決されます。 (これが適用される HTML 要素の一覧については、 § 5.2.2 圧縮可能な置換要素を参照してください。) ボックスに優先アスペクト比もある場合、 このmin-content 寄与は、 反対側の軸の任意の<length-percentage> 最小サイズを 優先アスペクト比を通じて転送した値を下限とします。 このとき、そのようなパーセント値はゼロに対して解決します。

    転送する前に、転送されるパーセント値をゼロではなく包含ブロックに対して解決するべきでしょうか? 議論を参照してください。

    UA はさらに、UI 上の考慮事項に基づいて min-content 寄与に下限を設定してもよいです。 たとえば、特定の UI 要素が表示されたままになることを保証する場合 (例: select のドロップダウン矢印)です。

    注: min-content 寄与は、常にそうであるように、 自身の軸の最小 サイズも下限とします。

    この規則は、 コンテンツベースの自動最小サイズ またはそれに対応するサイズ寄与を計算する場合にも適用され、 確定した「指定サイズ提案」を生成します。

    テスト
    たとえば、 width: calc(50% + 50px) が割り当てられた input は、水平マージン/境界/パディングに加えて、 50px のmin-content 寄与を持ちます。
  4. 最小サイズ プロパティ、 およびマージンとパディング (およびガター)では、 内在サイズ寄与を決定する際、 循環パーセント値はゼロに対して解決されます。
テスト
循環パーセント値の内在サイズ寄与規則(上記)の概要
要素型 置換 非置換
寄与型 min-content max-content min-content max-content
最小サイズ & マージン/パディング ゼロᵈ ゼロᵈ ゼロᵈ ゼロᵈ
最大 & 優先 サイズ ゼロᶜ 初期値ᵇ 初期値ᵃ 初期値ᵃ

次に、特に指定がない限り、 包含ブロックのコンテンツの使用サイズおよび位置を計算するとき:

注: これらの規則は、 CSS2§10.2、 CSS2§8.3、 および CSS2§8.4 において 以前は未定義だったこの循環ケースの動作を指定します。 また、CSS2§10.5 の動作は、 CSS2 では説明されていないレイアウトモード (フレックスレイアウトなど)については、 それぞれの仕様によって置き換えられていることにも注意してください。

たとえば、次のマークアップでは:
<article style="width: min-content">
  <aside style="width: 50%;">
  LOOOOOOOOOOOOOOOOOOOONG
  </aside>
</article>

外側の <article> の幅を計算するとき、 内側の <aside> は width: auto として動作するため、 <article> は長い単語の幅に自身を設定します。 ただし、<article> の幅は「実際の」レイアウトに依存しなかったため、 <aside> を解決する目的では確定として扱われ、 その幅は <article> の半分に解決されます。

この例では、
<article style="height:auto">
  <aside style="height: 50%;">
    <div class=block style="height: 150px;"></div>
  </aside>
  <section style="height: 30px;"></section>
</article>

ブロックレベル要素上のパーセントブロックサイズ (この場合はheight)は、 コンテンツによってサイズ指定される包含ブロック内では解決しないと定義されているため、 <aside> 上のパーセント高さは無視されます。 すなわち、auto が指定された場合とまったく同じように動作します。

min-height が内在的な場合でも、確定したheight に対して パーセント値を引き続き解決できるようにするかは未解決の問題です。 (CSS2 には「コンテンツに依存する高さ」について一般的な記述があります。 これは技術的にはそのケースに該当しますが、 CSS2 には min-height 用の コンテンツ依存キーワードがありませんでした。 これは新しいため、異なる動作にすることも可能だと考えています。)

次の例は、サイズがコンテンツに依存する包含ブロックに対して ブロック軸のパーセント値がどのように解決されるかを示します。

<article style="height:100px; min-height: min-content;">
  <aside style="height: 50%;">
    <div style="height: 150px;"></div>
  </aside>
  <section style="height: 30px;"></section>
</article>

<article> の初期高さは、指定どおり 100px です。 そのため、<aside> がパーセント値を解決すると、 高さは 50px になります。 ただし、height の代わりに min-height を代入して、 min-height を計算する必要があります。 これにより <aside> 上のパーセント値がauto として動作するため、 <aside> は最終的に高さ 150px になります。 したがって、コンテンツの合計高さは 180px になります。 これは指定された 100px の高さより大きいため、 <article> は高さ 180px に調整されます。

次に、パーセント値は元々(100px の)高さに対して解決可能だったため、 今度は 180px の高さに対して解決され、 <aside> は最終的に高さ 90px になります。

<article style="height:auto; min-height: min-content;">
  <aside style="height: 50%;">
    <div class=block style="height: 150px;"></div>
  </aside>
  <section style="height: 30px;"></section>
</article>

この場合、包含ブロックの高さが auto (したがってコンテンツのサイズに依存する)ため、 <aside> 上のパーセント値は通常は解決されません。 代わりにauto として 動作し、 <aside> の高さは 150px、 <article> の初期高さは 180px になります。 min-height はこれを変更しません。 height: min-content; は height: auto; と同様に動作し、 同じサイズになります。

<article style="height:100px; min-height: min-content;">
  <aside style="height: 200%;">
    <div style="height: 150px;"></div>
  </aside>
  <section style="height: 30px;"></section>
</article>

これは最初のコードブロックの変形であり、 同様の過程をたどります。 <aside> は最初、高さ 200px (包含ブロックの 100px の高さの 200%)に算出されようとします。 min-height の影響を計算すると、 パーセント値はauto として 動作し、 高さ 150px になります。 そして、包含ブロックの合計min-content 高さは 180px になります。 これは 100px より大きいため、 <article> は 180px にクランプされ、 パーセント値はこの新しい高さに対して解決され、 <aside> は最終的に高さ 360px となって <article> からオーバーフローします。

5.2.2. 圧縮可能な置換要素

HTML§14.4 [HTML] に列挙されている 置換要素に加えて、 次の HTML 要素も、上記のパーセント指定された置換要素の 規則の目的では置換 要素とみなされ、 width/height または max-width/max-height が 循環パーセントサイズで表される場合、そのmin-content 寄与を 圧縮できます:

これを max-width/height に適用することの Web 互換性および実装進捗を Issue 6348 で追跡しています。[Issue #6348]

変更点

最近の変更点

2021年12月17日付作業 草案以降の変更点:

2020年12月18日付作業 草案以降の変更点:

2020年12月18日付作業 草案以降の変更点:

2019年5月22日付作業 草案以降の主な変更点:

2018年3月4日付作業 草案以降の主な変更点:

2017年2月7日付 作業草案以降の主な変更点:

CSS Level 2 以降の追加事項

各種の自動およびコンテンツベースのサイズ指定アルゴリズムに 大幅に詳細を追加したことに加えて、 [CSS2] 以降、 次の新機能が追加されました:

謝辞

このモジュールへの貢献について、 L. David Baron、 Aaron Gustafson、 Daniel Holbert、 および Mats Palmgren に特に感謝します。

プライバシーに関する考慮事項

自動レイアウトをサポートするため、 CSS はコンテンツに適合するようボックスをサイズ指定します。 これを、ボックスのサイズをスクリプトに返すことができる各種の [DOM] および [CSSOM] API と組み合わせることで、 コンテンツに関する情報が露出する可能性があります。 ただし、この情報は、ボックスのサイズを介して間接的に取得するよりも、 コンテンツについて DOM を調べることで、より直接かつ容易に取得できます。 コンテンツを調べることができないコンテナー (クロスオリジンの iframe など)も、外側のページにサイズ情報を公開しません。 ただし、画像などの置換要素が 自然サイズおよび/またはアスペクト比を公開する範囲は除きます。

セキュリティに関する考慮事項

この仕様について、新たなセキュリティ上の考慮事項は報告されていません。

適合性

文書の表記規則

適合性要件は、 記述的な表明と RFC 2119 の用語を組み合わせて表現されます。この文書の規範的な部分にあるキーワード “MUST”、 “MUST NOT”、 “REQUIRED”、 “SHALL”、 “SHALL NOT”、 “SHOULD”、 “SHOULD NOT”、 “RECOMMENDED”、 “MAY”、および “OPTIONAL” は、RFC 2119 に記載されているとおりに解釈するものとします。 ただし、可読性のため、この仕様ではこれらの語はすべて大文字では 表記されません。

明示的に非規範的と示された節、例、および注を除き、この仕様のすべてのテキストは規範的です。 [RFC2119]

この仕様の例は、「たとえば」という語で導入されるか、 次のように class="example" によって規範的テキストから区別されます:

これは参考例の一例です。

参考注記は「注」という語で始まり、 次のように class="note" によって規範的テキストから区別されます:

注、これは参考注記です。

勧告事項は、特に注意を引くようにスタイル設定された規範的な節であり、 次のように <strong class="advisement"> によって他の規範的テキストから区別されます: UA はアクセシブルな代替手段を提供しなければなりません。

テスト

この仕様の内容に関連するテストは、 このような「テスト」ブロックに記載される場合があります。 このようなブロックはいずれも非規範的です。


適合性クラス

この仕様への適合性は、 3つの適合性クラスについて定義されます:

スタイルシート
CSS スタイルシート。
レンダラー
スタイルシートの意味を解釈し、 それを使用する文書をレンダリングする UA。
オーサリングツール
スタイルシートを書き出す UA。

このモジュールで定義されている構文を使用するすべての記述が、 一般的な CSS 文法およびこのモジュールで定義される各機能の個別の文法に従って有効である場合、 スタイルシートはこの仕様に適合します。

レンダラーは、適切な仕様で定義されるとおりにスタイルシートを解釈することに加えて、 この仕様で定義されるすべての機能を正しく構文解析し、 それに応じて文書をレンダリングすることでサポートする場合、 この仕様に適合します。ただし、デバイスの制約により UA が文書を正しくレンダリングできないことによって、 UA が不適合になることはありません。(たとえば、UA は モノクロモニター上で色をレンダリングする必要はありません。)

オーサリングツールは、 一般的な CSS 文法およびこのモジュール内の各機能の個別の文法に従って構文的に正しい スタイルシートを書き出し、 このモジュールで説明されるスタイルシートのその他すべての適合性要件を満たす場合、 この仕様に適合します。

部分的な実装

作成者が前方互換な構文解析規則を利用して フォールバック値を割り当てられるようにするため、CSS レンダラーは、 使用可能なレベルのサポートを持たないすべての at-rule、プロパティ、プロパティ値、キーワード、 およびその他の構文構造を無効として扱い(かつ必要に応じて 無視)なければなりません。特に、ユーザーエージェントは、 1つの複数値プロパティ宣言内で、サポートされていないコンポーネント値だけを選択的に 無視し、サポートされている値を有効にしてはなりません。 いずれかの値が無効とみなされる場合 (サポートされていない値は無効とみなされなければならないため)、 CSS では宣言全体を無視する必要があります。

不安定な機能および独自機能の実装

将来の安定した CSS 機能との衝突を避けるため、 CSSWG は、CSS の不安定な機能および独自拡張の実装について、 ベストプラクティスに従うことを推奨します。

非実験的な実装

仕様が候補勧告段階に達すると、 非実験的な実装が可能になり、実装者は、 仕様に従って正しく実装されていることを実証できる任意の CR レベルの機能について、 接頭辞なしの実装をリリースすることが推奨されます。

実装間で CSS の相互運用性を確立し維持するため、 CSS ワーキンググループは、非実験的な CSS レンダラーが CSS 機能の接頭辞なし実装をリリースする前に、 実装報告書(および必要な場合、その実装報告書で使用した テストケース)を W3C に提出することを求めています。 W3C に提出されたテストケースは、CSS ワーキンググループによるレビューおよび修正の対象となります。

テストケースおよび実装報告書の提出に関する詳細情報は、 CSS ワーキンググループの Web サイト https://www.w3.org/Style/CSS/Test/ で確認できます。 質問は public-css-testsuite@w3.org メーリングリストに送ってください。

索引

この仕様で定義される 用語

参照によって定義される 用語

参考文献

規範的参考文献

[CSS-ALIGN-3]
Elika Etemad; Tab Atkins Jr.. CSS ボックス整列モジュール Level 3. 2026年1月30日. WD. URL: https://www.w3.org/TR/css-align-3/
[CSS-BORDERS-4]
Elika Etemad; et al. CSS 境界およびボックス装飾 モジュール Level 4. 2025年12月16日. WD. URL: https://www.w3.org/TR/css-borders-4/
[CSS-BOX-4]
Elika Etemad. CSS ボックスモデルモジュール Level 4. 2024年8月4日. WD. URL: https://www.w3.org/TR/css-box-4/
[CSS-CASCADE-5]
Elika Etemad; Miriam Suzanne; Tab Atkins Jr.. CSS カスケーディングおよび継承 Level 5. 2022年1月13日. CR. URL: https://www.w3.org/TR/css-cascade-5/
[CSS-CONTAIN-2]
Tab Atkins Jr.; Florian Rivoal; Vladimir Levin. CSS 包含モジュール Level 2. 2022年9月17日. WD. URL: https://www.w3.org/TR/css-contain-2/
[CSS-DISPLAY-3]
Tab Atkins Jr.; Elika Etemad. CSS Display モジュール Level 3. 2026年6月5日. CRD. URL: https://www.w3.org/TR/css-display-3/
[CSS-DISPLAY-4]
Elika Etemad; Tab Atkins Jr.. CSS Display モジュール Level 4. 2025年11月6日. WD. URL: https://www.w3.org/TR/css-display-4/
[CSS-FLEXBOX-1]
Elika Etemad; Tab Atkins Jr.; Rossen Atanassov. CSS フレキシブルボックスレイアウトモジュール Level 1. 2025年10月14日. CRD. URL: https://www.w3.org/TR/css-flexbox-1/
[CSS-GAPS-1]
Kevin Babbitt. CSS Gaps モジュール Level 1. 2026年6月24日. WD. URL: https://www.w3.org/TR/css-gaps-1/
[CSS-IMAGES-3]
Tab Atkins Jr.; Elika Etemad; Lea Verou. CSS Images モジュール Level 3. 2023年12月18日. CRD. URL: https://www.w3.org/TR/css-images-3/
[CSS-INLINE-3]
Elika Etemad. CSS インラインレイアウトモジュール Level 3. 2024年12月18日. WD. URL: https://www.w3.org/TR/css-inline-3/
[CSS-MULTICOL-2]
Florian Rivoal; Rachel Andrew. CSS マルチカラムレイアウト モジュール Level 2. 2024年12月19日. FPWD. URL: https://www.w3.org/TR/css-multicol-2/
[CSS-SIZING-4]
Tab Atkins Jr.; Elika Etemad; Jen Simmons. CSS ボックス サイジングモジュール Level 4. 2021年5月20日. WD. URL: https://www.w3.org/TR/css-sizing-4/
[CSS-TEXT-4]
Elika Etemad; et al. CSS テキストモジュール Level 4. 2026年8月14日. WD. URL: https://www.w3.org/TR/css-text-4/
[CSS-UI-3]
Tantek Çelik; Florian Rivoal. CSS 基本ユーザーインターフェイス モジュール Level 3 (CSS3 UI). 2026年4月7日. REC. URL: https://www.w3.org/TR/css-ui-3/
[CSS-VALUES-3]
Tab Atkins Jr.; Elika Etemad. CSS 値と単位 モジュール Level 3. 2024年3月22日. CRD. URL: https://www.w3.org/TR/css-values-3/
[CSS-VALUES-4]
Tab Atkins Jr.; Elika Etemad. CSS 値と単位 モジュール Level 4. 2024年3月12日. WD. URL: https://www.w3.org/TR/css-values-4/
[CSS-WRITING-MODES-3]
Elika Etemad; Koji Ishii. CSS 書字モード Level 3. 2019年12月10日. REC. URL: https://www.w3.org/TR/css-writing-modes-3/
[CSS-WRITING-MODES-4]
Elika Etemad; Koji Ishii. CSS 書字モード Level 4. 2019年7月30日. CR. URL: https://www.w3.org/TR/css-writing-modes-4/
[CSS2]
Bert Bos; et al. カスケーディングスタイルシート Level 2 Revision 1 (CSS 2.1) 仕様. 2011年6月7日. REC. URL: https://www.w3.org/TR/CSS2/
[CSS3COL]
Florian Rivoal; Rachel Andrew. CSS マルチカラムレイアウト モジュール Level 1. 2024年5月16日. CR. URL: https://www.w3.org/TR/css-multicol-1/
[CSSOM]
Daniel Glazman; Emilio Cobos Álvarez. CSS オブジェクトモデル (CSSOM). 2021年8月26日. WD. URL: https://www.w3.org/TR/cssom-1/
[HTML]
Anne van Kesteren; et al. HTML 標準. 現行標準. URL: https://html.spec.whatwg.org/multipage/
[RFC2119]
S. Bradner. RFC で要件レベルを示すために使用する キーワード. 1997年3月. 現行のベストプラクティス. URL: https://datatracker.ietf.org/doc/html/rfc2119

非規範的参考文献

[CSS-GRID-2]
Tab Atkins Jr.; et al. CSS グリッドレイアウトモジュール Level 2. 2025年3月26日. CRD. URL: https://www.w3.org/TR/css-grid-2/
[CSS-LOGICAL-1]
Elika Etemad; Rossen Atanassov. CSS 論理プロパティ および値モジュール Level 1. 2025年12月4日. WD. URL: https://www.w3.org/TR/css-logical-1/
[DOM]
Anne van Kesteren. DOM 標準. 現行標準. URL: https://dom.spec.whatwg.org/

プロパティ索引

名前 値 初期値 適用対象 継承 % アニメーション型 正規順序 算出値 論理プロパティグループ
block-size auto | <box-size> auto 非置換インラインを除くすべての要素 しない 包含ブロックの幅/高さに対する相対値 算出値の型による。fit-content() 内へ再帰する 文法に従う 指定どおり。ただし <length-percentage> 値は算出される size
box-sizing content-box | border-box content-box width または height を受け入れるすべての要素 しない 該当なし 離散 文法に従う 指定されたキーワード
height auto | <box-size> auto 非置換インラインを除くすべての要素 しない 包含ブロックの幅/高さに対する相対値 算出値の型による。fit-content() 内へ再帰する 文法に従う 指定どおり。ただし <length-percentage> 値は算出される size
inline-size auto | <box-size> auto 非置換インラインを除くすべての要素 しない 包含ブロックの幅/高さに対する相対値 算出値の型による。fit-content() 内へ再帰する 文法に従う 指定どおり。ただし <length-percentage> 値は算出される size
max-block-size none | <box-size> none width または height を受け入れるすべての要素 しない 包含ブロックの幅/高さに対する相対値 算出値による。fit-content() 内へ再帰する 文法に従う 指定どおり。ただし <length-percentage> 値は算出される max-size
max-height none | <box-size> none width または height を受け入れるすべての要素 しない 包含ブロックの幅/高さに対する相対値 算出値による。fit-content() 内へ再帰する 文法に従う 指定どおり。ただし <length-percentage> 値は算出される max-size
max-inline-size none | <box-size> none width または height を受け入れるすべての要素 しない 包含ブロックの幅/高さに対する相対値 算出値による。fit-content() 内へ再帰する 文法に従う 指定どおり。ただし <length-percentage> 値は算出される max-size
max-width none | <box-size> none width または height を受け入れるすべての要素 しない 包含ブロックの幅/高さに対する相対値 算出値による。fit-content() 内へ再帰する 文法に従う 指定どおり。ただし <length-percentage> 値は算出される max-size
min-block-size auto | <box-size> auto width または height を受け入れるすべての要素 しない 包含ブロックの幅/高さに対する相対値 算出値による。fit-content() 内へ再帰する 文法に従う 指定どおり。ただし <length-percentage> 値は算出される min-size
min-height auto | <box-size> auto width または height を受け入れるすべての要素 しない 包含ブロックの幅/高さに対する相対値 算出値による。fit-content() 内へ再帰する 文法に従う 指定どおり。ただし <length-percentage> 値は算出される min-size
min-inline-size auto | <box-size> auto width または height を受け入れるすべての要素 しない 包含ブロックの幅/高さに対する相対値 算出値による。fit-content() 内へ再帰する 文法に従う 指定どおり。ただし <length-percentage> 値は算出される min-size
min-width auto | <box-size> auto width または height を受け入れるすべての要素 しない 包含ブロックの幅/高さに対する相対値 算出値による。fit-content() 内へ再帰する 文法に従う 指定どおり。ただし <length-percentage> 値は算出される min-size
width auto | <box-size> auto 非置換インラインを除くすべての要素 しない 包含ブロックの幅/高さに対する相対値 算出値の型による。fit-content() 内へ再帰する 文法に従う 指定どおり。ただし <length-percentage> 値は算出される size

Issue 索引

この仕様には図解が必要です! issue を参照してください。 ↵
この節を新しい用語 自動サイズへの参照に置き換える。 ↵
転送する前に、転送されるパーセント値をゼロではなく包含ブロックに対して解決するべきでしょうか? 議論を参照してください。 ↵
min-height が内在的な場合でも、確定した height に対してパーセント値を引き続き解決できるようにするかは未解決の問題です。 (CSS2 には「コンテンツに依存する高さ」について一般的な記述があり、 これは技術的にはそのケースに該当しますが、 CSS2 には min-height 用のコンテンツ依存キーワードがありませんでした。 これは新しいため、異なる動作にすることも可能だと考えています。) ↵
これを max-width/height に適用することの Web 互換性および実装進捗を Issue 6348 で追跡しています。 [Issue #6348] ↵