はじめに
HTML&CSS入門講座の第五弾として、【CSS】 displayプロパティの使い方、block、inline、inline-block、noneついて紹介します。
この記事を読むと次の疑問について知ることができます。
●CSSのdisplayプロパティーの種類はどのようなものがあるの?
・dsplay:blockとは?
・dsplay:inlineとは?
・display: inline-blockとは?
・display: noneとは?
CSSのdisplayプロパティとは?
CSSのdisplayとは、HTMLの要素などをどのように表示するか(表示方法)を設定するプロパティです。
ここで、displayを解説するために、要素の構成がどのようになっているかを下図に載せます。
上図の要素をどのように配置して表示するのか、ボーダーエリアや余白(パディングエリア、マージンエリア)をどのようにするかなどの表示方法を設定するのがdisplayプロパティになります。
例えば、disply:noneとすれば、要素が全て非表示となりますし、display:contents(ここでは省略)とすれば、要素の中身のみが表示され、他は表示されなくなる設定となります。
CSSのdisplayプロパティーの種類
CSSのdisplayの種類は、色々ありますがここでは主要なプロパティを表に載せておきます。
主要なdisplayの種類 | 意 味 |
block | 要素をブロック化する |
inline | 要素をインライン化する |
inline-block | inlineとblockの中間的な働きをする。(blockとinlineの良い所取りをする。) |
none | 要素を非表示にする。 |
flex | blockレベルで、柔軟なブロックを作成する。 |
contents | 要素の中身のみを残し、他の周囲の余白、ボーダーエイリアなどをなくす。 |
table |
表形式の要素を形成する。 |
dsplay:blockとは?
- 代表的なblockプロパティを持つ初期値のHTML要素として、
div、h1〜h6、p、ul,ol,li、dl,dt,dd、table、form、hr、pre、blockquote
などがあります。 - HTMLの要素(ブロック)ごとに改行が入り、ブロックが縦に並ぶ。
- ブロックの幅と高さの設定が可能
- 上下左右の余白であるmargin、paddingを自由に設定が可能
- text-align、vertical-alignの設定が不可
ここで、ブロック(hタグ)を3つ作り、それがどのようになるかを見てみましょう。
<h1 class="block1"> 一番大きい見出しです。</h1>
<h2 class="block2"> 二番目に大きい見出しです。</h2>
<h3 class="block3"> 三番目に大きい見出しです。</h3>
.block1 {background: red;}
.block2 {background: orange;}
.block3 {background: green;}
<h1 class="block1"> 一番大きい見出しです。</h1>
<h2 class="block2"> 二番目に大きい見出しです。</h2>
<h3 class="block3"> 三番目に大きい見出しです。</h3>
.block1 {background: red; width: 200px; height: 200px;}
.block2 {background: orange;}
.block3 {background: green;}
次に、余白を設定してみましょう。
<h1 class="block1"> 一番大きい見出しです。</h1>
<h2 class="block2"> 二番目に大きい見出しです。</h2>
<h3 class="block3"> 三番目に大きい見出しです。</h3>
.block1 {background: red; padding: 20px; margin: 20px;}
.block2 {background: orange;}
.block3 {background: green;}
dsplay:inlineとは?
- 代表的なinlineプロパティを持つ初期値のHTML要素として、
a、span、b、img、label、input、select、textarea
などがあります。 - HTMLの要素(ブロック)が横に並ぶ。
- ブロックの幅と高さの設定が不可(文字の長さや大きさで決まる)
- 左右の余白であるmargin、paddingを設定が可能であるが、上下のmarginは設定できず、上下のpaddingを設定すると前後の行と重なってしまう場合があります。
- text-align、vertical-alignの設定が可能
ここで、ulの箇条書きタグを作り、その背景に黄色に指定した場合、どのようになるかを見てみましょう。
<div class="textalign">
<ul>
<li>項目1</li>
<li>項目2</li>
<li>項目3</li>
</ul>
</div>
li {display: inline; background: yellow;
この横並びとなった箇条書きに赤の実線(2px)で囲い、margin、paddingを10pxに設定し、箇条書きを中央寄せしたCSSとその結果を次に載せます。
<div class="inline-block">
<ul>
<li>項目1</li>
<li>項目2</li>
<li>項目3</li>
</ul>
</div>
.textalign {
text-align: center;
}
li {
display: inline;
background: yellow;
border: 2px solid red;
padding: 10px;
margin: 10px;
}
結果は次の通り。
display: inline-blockとは?
- HTMLの要素(ブロック)が横に並ぶ。
- ブロックの幅と高さの設定が可能
- 上下左右の余白であるmargin、paddingを自由に設定が可能
- text-align、vertical-alignの設定が可能
ここで、前述のinline指定した要素に対して、幅(width)100xpx、 padding、 marginなどの余白10px、垂直方向の配置vertical-align:middle、背景background:gray、 font-weight:bold(太字)、文字色color:white(白)に設定した場合のHTMLとCSS、その表示結果を以下に載せます。
<div class="inline-block">
<ul>
<li>項目1</li>
<li>項目2</li>
<li>項目3</li>
</ul>
</div>
.inline-block {text-align: center;}
.inline-block ul li {
display: inline-block;/*inline-blockに設定*/
width: 150px;/*幅を100pxに指定*/
padding: 10px 0;/*余白も10pxに指定*/
margin: 10px 0;/*余白10pxに指定*/
vertical-align: middle;/*縦の表示位置を中心*/
background: gray;/*背景を灰色*/
border: 3px solid navy;/*濃い青色の線で囲う*/
font-weight: bold;/*文字を太字*/
color: white; ;/*文字色を白色*/
}
結果は次の通り。
display: noneとは?
<h1 class="block1"> 一番大きい見出しです。</h1>
<h2 class="block2"> 二番目に大きい見出しです。</h2>
<h3 class="block3"> 三番目に大きい見出しです。</h3>
<div class="textalign">
<ul>
<li>項目1</li>
<li>項目2</li>
<li>項目3</li>
</ul>
</div>
<div class="inline-block">
<ul>
<li>項目1</li>
<li>項目2</li>
<li>項目3</li>
</ul>
</div>
/* display blockの説明 */ /*.block1 {background: red; width: 200px; height: 200px;}*/ .block1 {background: red; padding: 20px; margin: 20px;} .block2 {display: none; background: orange;} .block3 {background: green;} /*li {background: yellow;}*/ .textalign {display: none; text-align: center;} li {display: inline; background: yellow; border: 2px solid red; padding: 10px; margin: 10px;} .inline-block {text-align: center;} .inline-block ul li { display: inline-block;/*inline-blockに設定*/ width: 150px;/*幅を100pxに指定*/ padding: 10px 0;/*余白も10pxに指定*/ margin: 10px 0;/*余白10pxに指定*/ vertical-align: middle;/*縦の表示位置を中心*/ background: gray;/*背景を水色*/ border: 3px solid navy;/*濃い青色の線で囲う*/ font-weight: bold;/*文字を太字*/ color: white; ;/*文字色を白色*/ }
おわりに
如何だったでしょうか?
CSSのdisplayプロパティとはどのようなもの?、CSSのdisplayプロパティーの種類はどのようなものがあるの?、dsplay:blockとは?、dsplay:inlineとは?、display: inline-blockとは?、display: noneとは?などについて解説してきました。
この記事があなたにとって少しでもお役に立てればこれほど嬉しいことはありません。
以上です。
コメント