「display」は、要素の表示形式を指定します。
ブロックレベル要素をインラインで表示、または、インライン要素をブロックレベルで表示など、要素に対応した表示形式以外の形式での表示が可能です。
CSS Ver. | 適用要素 | 継承 |
---|---|---|
2.1 | 全要素 | しない |
構文 | |
---|---|
display : none | inline | block | list-item | inline-block | run-in | compact | table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | inline-table | ruby | ruby-base | ruby-text | ruby-base-group | ruby-text-group | flex | inline-flex ; |
|
プロパティ/設定値 | 意味 |
display : none; | 要素を表示しない。(サンプル) |
display : inline; | インライン要素として表示。 |
display : block; | ブロック要素として表示。 |
display : list-item; | リストアイテムとして表示。 |
display : inline-block; | インライン要素のように改行は行わず、ブロック要素のように高さ、横幅を指定可能。 |
display : run-in; | 後続の状況に応じて、インライン要素またはブロック要素として表示。(詳細) |
display : compact; | 後続の状況に応じて、インライン要素またはブロック要素として表示。(詳細) |
display : table; | <table>のように表示。(サンプル) |
display : table-row-group; | <tbody>のように表示。 |
display : table-header-group; | <thead>のように表示。 |
display : table-footer-group; | <tfoot>のように表示。 |
display : table-row; | <tr>のように表示。 |
display : table-column-group; | <colgroup>のように表示。 |
display : table-column; | <col>のように表示。 |
display : table-cell; | <th>,<td>のように表示。 |
display : table-caption; | <caption>のように表示。 |
display : inline-table; | インラインのテーブル。(サンプル) |
display : ruby; | <ruby>のように表示。(サンプル) |
display : ruby-base; | <rb>のように表示。 |
display : ruby-text; | <rt>のように表示。 |
display : ruby-base-conainer; | ルビボディのコンテナ(Ruby Body Container)のように表示。 |
display : ruby-text-conainer; | <rtc>のように表示。 |
display : flex; | フレックスコンテナ要素として表示。 |
display : inline-flex; | インラインのフレックスコンテナ要素として表示。 |
デフォルト:「タグ毎のスタイル初期値」を参照 |
<style type="text/css">
.css-none {display : none;}
.css-inline {display : inline;}
.css-block {display : block;}
.css-listitem {
display : list-item;
list-style-type: decimal;
list-style-position: inside;
}
.css-inlineblock {
display : inline-block;
width : 30%;
height : 30px;
background : skyblue;
border : 1px solid blue;
margin-top:10px
}
</style>
<!-- html -->
<b>◆display:none;</b><br>
<img src="neko_w100.jpg" alt="" class="css-none">
<p><img>にdisplay:none; を指定のため、画像が表示されない。</p>
<b>◆display:inline;</b>
<img src="neko_w100.jpg" alt="" style="margin-top:10px">
<p class="css-inline"><p>にdisplay:inline; 指定のため、改行なしで横に表示される。</p>
<b>◆display:block;</b>
<p><span class="css-block"><span>にdisplay:block;</span> 指定のため、改行して表示される。</p>
<b>◆display:list-item;</b>
<div>
<div class="css-listitem"><div>にdisplay:list-itemを指定。</div>
<div class="css-listitem"><div>にlist-style-type: decimal;を指定。</div>
<div class="css-listitem"><div>にlist-style-position: inside;を指定。</div>
<div class="css-listitem">上記指定で、リストマーク(1.~4.)が表示された。</div>
</div>
<b>◆display:inline-block;</b>
<div>
<div class="css-inlineblock">[div1]<br><div>に</div>
<div class="css-inlineblock">[div2]<br>display:inline-block</div>
<div class="css-inlineblock">[div3]<br>を指定。</div>
</div>
<img>にdisplay:none; を指定のため、画像が表示されない。
<p>にdisplay:inline; 指定のため、改行なしで横に表示される。
<span>にdisplay:block; 指定のため、改行して表示される。
◆display:list-item;
<style type="text/css">
.css-runin {display : runin;}
.css-runin::after{content : ":";}
.css-compact {display : compact;}
.css-compact::after{content : ":";}
</style>
<!-- html -->
<dt class="css-runin">①【<dt>の見出し】</dt>
<dd><dt>にdisplay:run-in;を指定し、</dd>
<dd>後続の要素<dd>が回り込みも絶対配置でもないため、</dd>
<dd><dt>は、インライン要素として表示。</dd>
</dl>
<dl>
<dt class="css-runin">②【<dt>の見出し】</dt>
<dd style="float:left;"><dt>にdisplay:run-in;を指定し、</dd>
<dd style="float:left;">後続の要素<dd>に回り込み指定のため、</dd>
<dd style="float:left;"><dt>は、ブロック要素として表示。</dd>
</dl>
<b>◆display:compact;</b>
<dl>
<dt class="css-compact">①【<dt>の見出し】</dt>
<dd style="margin-left:150px"><dt>にdisplay:compact;を指定し、</dd>
<dd style="margin-left:150px">後続の要素<dd>が回り込みも絶対配置もなく、</dd>
<dd style="margin-left:150px">左マージンに収まるので、<dt>は、左マージンに表示。</dd>
</dl>
<dl>
<dt class="css-compact">②【<dt>の見出し】</dt>
<dd style="margin-left:100px"><dt>にdisplay:compact;を指定し、</dd>
<dd style="margin-left:100px">後続の要素<dd>が回り込みも絶対配置もないが、</dd>
<dd style="margin-left:100px">左マージンに収まらないので、<dt>は、ブロック要素として表示。</dd>
</dl>
※ほとんどのブラウザが未対応のようです。現時点(2017/03)で、IE11は動作確認できました。
未対応の場合、①②ともブロック要素で表示されます。
※ほとんどのブラウザが未対応のようです。未対応の場合、①②ともブロック要素で表示されます。
【W3Cのdisplay仕様書】
http://www.w3.org/TR/css3-box/
<style type="text/css">
.css-table {
display : table;
height : 150px;
width: 90%;
text-align:center;
}
.css-caption {
display : table-caption;
height : 30px;
padding-top:10px;
}
.css-colgroup {display : table-column-group;}
.css-col {display : table-column;}
.css-thead {
display : table-header-group;
background : skyblue;
}
.css-tbody {display : table-row-group;}
.css-tr {display : table-row;}
.css-td {
display : table-cell;
border:1px solid blue;
vertical-align:middle;
}
.css-tfoot {
display : table-footer-group;
background : skyblue;
}
</style>
<!-- html -->
<b>◆display:table; 関連</b><br>
<div class="css-table">
<div class="css-caption">表題</div>
<div class="css-colgroup" style="width: 100px">
<div class="css-col"</div>
<div class="css-col"</div>
<div class="css-col"</div>
</div>
<div class="css-thead">
<div class="css-tr">
<div class="css-td">ヘッダー1</div>
<div class="css-td">ヘッダー2</div>
<div class="css-td">ヘッダー3</div>
</div>
</div>
<div class="css-tbody">
<div class="css-tr">
<div class="css-td">セルA1</div>
<div class="css-td">セルA2</div>
<div class="css-td">セルA3</div>
<</div>
<div class="css-tr">
<div class="css-td">セルB1</div>
<div class="css-td">セルB2</div>
<div class="css-td">セルB3</div>
<</div>
</div>
<div class="css-tfoot">
<div class="css-tr">
<div class="css-td">フッター1</div>
<div class="css-td">フッター2</div>
<div class="css-td">フッター3</div>
</div>
</div>
</div>
<style type="text/css">
.css-inlinet {
display : inline-table;
border-collapse: collapse;
text-align:center;
}
.css-inlinet td {border:1px solid blue;}
.css-inlinet thead,tfoot {background : skyblue;}
</style>
<!-- html -->
<b>◆display:inline-table;</b><br>
<table class="css-inlinet">
<caption style="height : 30px;padding-top:10px;">表題 Ⅰ</caption>
<thead>
<tr><td>ヘッダー1</td><td>ヘッダー2</td></tr>
</thead>
<tbody>
<tr><td>セルA1</td><td>セルA2</td></tr>
<tr><td>セルB1</td><td>セルB2</td></tr>
</tbody>
<tfoot>
<tr><td>フッター1</td><td>フッター2</td></tr>
</tfoot>
</table>
<table class="css-inlinet">
<caption style="height : 30px;padding-top:10px;">表題 Ⅱ</caption>
<thead>
<tr><td>header1</td><td>header2</td></tr>
</thead>
<tbody>
<tr><td>cellA1</td><td>cellA2</td></tr>
<tr><td>cellB1</td><td>cellB2</td></tr>
</tbody>
<tfoot>
<tr><td>footer1</td><td>footer2</td></tr>
</tfoot>
</table>
ヘッダー1 | ヘッダー2 |
セルA1 | セルA2 |
セルB1 | セルB2 |
フッター1 | フッター2 |
header1 | header2 |
cellA1 | cellA2 |
cellB1 | cellB2 |
footer1 | footer2 |
<style type="text/css">
.css-ruby {display : ruby;}
.css-rb {display : ruby-base;}
.css-rt {
display : ruby-text;
color:red;
}
.css-rbc {display : ruby-base-container;}
.css-rtc {display : ruby-text-container;}
</style>
<!-- html -->
<b>◆display:ruby; 関連</b>
<span class="css-ruby">
<span class="css-rbc">
<span class="css-rb">東</span><span class="css-rb">京</span>
</span>
<span class="css-rtc">
<span class="css-rt">トウ</span><span class="css-rt">キョウ</span>
</span>
<span class="css-rtc" lang="en">
<span class="css-rt">tokyo</span>
</span>
</span>
のルビをカナと
<span class="css-ruby">
<span class="css-rb">英語</span><span class="css-rt">えいご</span>
</span>で
<span class="css-ruby">振<span class="css-rt">ふ</span>るサンプルです。</span>
関連するCSS(STYLE) | |
---|---|
bottom | 基点の下辺からの距離 |
caption-side | テーブルのキャプションの表示位置 |
clear | 回り込みの解除 |
float | 配置と回り込み |
overflow | オーバーフローしたコンテンツの表示 |
overflow-x | 横方向にオーバーしたコンテンツの表示 |
overflow-y | 縦方向にオーバーしたコンテンツの表示 |
position | 配置方法 |
vertical-align | 縦(垂直)方向の文字位置 |
z-index | ボックスの重なり順 |
left | 基点の左辺からの距離 |
right | 基点の右辺からの距離 |
top | 基点の上辺からの距離 |