1.要素の外部表示種別
主要なボックス(箱)が
流れの設計に
どのように関与するかを
CSSのdisplayプロパティは、
示します。
CSSの display
ブラウザーの互換性が不十分ですが、CSSの Level 3 仕様書では display
CSSの floatnone
以外の場合に、displayblock
を指定するに当たる状態に変更されます。
〇〇レベル |
参加する |
インライン |
インライン |
---|---|
ブロック |
ブロック |
内部テーブル |
表(テーブル)モデル (テーブル |
ルビ |
ルビモデル (ルビ |
フレックス |
フレックス |
display: none | ボックスや |
2.インラインレベルボックス
インラインレベルボックスは、
インラインフォーマット
コンテキストに
参加するボックスです。
CSSの displayinline
, inline-block
, inline-table
, inline-flex
, inline-grid
, ruby
flow
である、inline
であり内容が非置換のボックスをインライン
この「参加する」は、包含
displayinline
です。inline
という事です。inline
2つ目の値に flow
を指定するに当たります。
単一 | 外部表示 | 内部表示 | マーカー | コンテナ |
inline | inline | flow | - | (インライン |
---|---|---|---|---|
inline-block | inline | flow-root | - | ブロック |
inline-table | inline | table | - | テーブル |
inline-flex | inline | flex | - | フレックス |
inline-grid | inline | grid | - | グリッド |
ruby | inline | ruby | - | ルビ |
inline list-item | inline | flow | list-item | (インライン |
インラインレベルボックスと混在するテキストは、書式の定義を簡単にする為に匿名のインラインレベルボックスを生成します。
レベルボックス
レベルボックス
レベルボックス
ブロックレベルボックスと混在するインラインレベルボックスは、書式の定義を簡単にする為に連続するインラインレベルボックスをまとめて匿名のブロックレベルボックスを生成します。
インライン
尚、この処理を簡素にする為に、インラインレベルとブロックレベルが混在する場合は、そのインラインレベルのボックスを連続する纏まりで匿名のブロックボックスで囲みます。
他にも、インラインレベルのボックスがないブロックコンテナにテキストがある場合に、このテキストを覆う匿名のインラインボックスが生成されます。
<body>
<span>さんぷる</span>
さんぷる </body>
body
コンテキスト
コンテキスト
レベル
ボックス
インライン
レベル
ボックス
3.ブロックレベルボックス
ブロックレベルボックスは、
ブロックフォーマット
コンテキストに
参加するボックスです。
CSSの displayblock
, list-item
, table
, flex
, grid
displayblock
を指定するに当たります。
単一 | 外部表示 | 内部表示 | マーカー | コンテナ |
block | block | flow | - | ブロック |
---|---|---|---|---|
table | block | table | - | テーブル |
flex | block | flex | - | フレックス |
grid | block | grid | - | グリッド |
block ruby | block | ruby | - | 匿名のブロック, ルビ |
list-item | block | flow | list-item | ブロック (マーカー) |
コンテキスト
レベルボックス
レベルボックス
レベルボックス
ブロックレベルボックスと混在するインラインレベルボックスは、書式の定義を簡単にする為に連続するインラインレベルボックスをまとめて匿名のブロックレベルボックスを生成します。
親フォーマットコンテキストがブロック
<!DOCTYPE html>
<html lang=
"ja"> <head>
<meta charset=
"utf-8"> <title>サンプル</title>
</head>
<body>
コンテンツ
</body>
</html>
html
フォーマット
コンテキスト
ボックス
<button>
ボタン
</button>
button
フォーマット
コンテキスト
フォーマット
コンテキスト
4.内部テーブルボックス
内部テーブルボックスは、
テーブルフォーマット
コンテキストに
参加するボックスです。
CSSの displaytable-row-group
, table-header-group
, table-footer-group
, table-row
, table-cell
, table-column-group
, table-column
要素 | display | ボックス |
table | table | ブロック テーブル |
---|---|---|
caption | table-caption | テーブル キャプション |
tbody | table-row-group | 行グループ (内部テーブル) |
thead | table-header-group | 行グループ (内部テーブル) |
tfoot | table-footer-group | 行グループ (内部テーブル) |
tr | table-row | 行 (内部テーブル) |
th/td | table-cell | ブロック (内部テーブル) |
colgroup | table-column-group | - |
col | table-column | - |
※この図では参加を表しているだけで、配置は表現していません。
5.ルビレベルボックス
ルビレベル相当のボックスは、
ルビフォーマットコンテキストに
参加するボックスです。
CSSの displayruby-base
, ruby-text
, ruby-base-container
, ruby-text-container
要素 | display | ボックス |
ruby | ruby | ルビ (インライン |
---|---|---|
rb | ruby-base | ルビ (内部ルビ) |
rt | ruby-text | ルビ (内部ルビ) |
rbc | ruby-base-container | ルビ (内部ルビ) |
rtc | ruby-text-container | ルビ (内部ルビ) |
※この図では参加を表しているだけで、配置は表現していません。
6.display: none
CSSの displaynone
の時は、要素とその子孫は、ボックスやテキストの実行を生成しません。