CSSのdisplay:blockとは?使い方と実行例で学ぶブロックレベル表示の基本
display:blockとは?
CSSのdisplayプロパティにblockを指定すると、要素は親要素で利用可能な幅いっぱいに広がって表示され、前後に強制的な改行が挿入されます。そのため、display:blockが適用された要素は、<div>や<p>などのブロックレベル要素と同じように振る舞います。
display:blockの主な特徴は以下の通りです。
- 要素の幅が親要素の利用可能な領域全体に広がる
- 要素の前後で必ず改行され、他のインライン要素と同じ行に並ばない
- width・height・margin・paddingなどを自由に指定できる
構文
CSSでdisplay:blockを使用する場合の基本的な書き方は以下の通りです。
Selector {
display: block;
}
サンプルコード①:動的に生成した要素へblockを適用する
次の例では、「Check」ボタンをクリックするとJavaScriptによって<em>要素が2つ動的に生成され、CSSで指定したdisplay:blockにより、それぞれが独立した行として表示されます。
<!DOCTYPE html>
<html>
<head>
<title>CSS Display Block</title>
<style>
form {
width:70%;
margin: 0 auto;
text-align: center;
}
* {
padding: 2px;
margin:5px;
}
input[type="button"] {
border-radius: 10px;
}
em{
background-color: #C303C3;
color: #fff;
display:block;
}
</style>
</head>
<body>
<form>
<fieldset>
<legend>CSS-Display-Block</legend>
<label for="textSelect">Formatter: </label>
<input id="textSelect" type="text" placeholder="John Doe">
<input type="button" onclick="convertItalic()" value="Check">
<div id="divDisplay"></div>
</fieldset>
</form>
<script>
var divDisplay = document.getElementById("divDisplay");
var textSelect = document.getElementById("textSelect");
function convertItalic() {
for(i=0; i<2; i++){
var italicObject = document.createElement("EM");
var italicText = document.createTextNode(textSelect.value);
italicObject.appendChild(italicText);
divDisplay.appendChild(italicObject);
}
}
</script>
</body>
</html>
実行結果
このコードを実行すると、以下のような画面が表示されます。
「Check」ボタンをクリックする前:

「Check」ボタンをクリックした後:

通常、<em>要素はインライン要素ですが、display:blockを指定することで、テキスト入力欄に入力した内容が紫の背景を持つ独立した行として縦に並んで表示されているのが確認できます。
サンプルコード②:他のdisplay値との比較
続いて、flex・none・inline-block・gridなど、さまざまなdisplayの値を組み合わせた例を見てみましょう。指定する値によって、要素の並び方や表示・非表示がどのように変化するかを確認できます。
<!DOCTYPE html>
<html>
<head>
<style>
#flex {
display: flex;
}
#none {
display: none;
}
.inline-block {
display: inline-block;
background-color: mintcream;
}
.grid {
display: grid;
background-color: cornflowerblue;
}
div {
margin: 30px;
padding: 5px;
height: 10px;
line-height: 5px;
text-align: center;
background-color: lightblue;
border: 2px solid black;
}
div > div {
background-color: lightpink;
border: 2px solid green;
}
div > div > div {
background-color: sandybrown;
border: 2px solid darkred;
}
</style>
</head>
<body>
<div><span id="flex">heyyy</span>
<div><span id="none">heyyy</span>
<div>
<span class="inline-block">heyyy</span>
<span class="inline-block">heyyy</span>
<div>
<span class="grid">heyyy demo</span>
<span class="grid">heyyy demo</span>
</div>
</div>
</div>
</div>
</body>
</html>
実行結果
このコードを実行すると、以下のように表示されます。

この例では、display:noneを指定した要素は画面上から完全に消え、inline-blockを指定した要素は横並びになり、gridを指定した要素はグリッドレイアウトとして配置されます。このように、displayの値を変えるだけで要素の振る舞いが大きく変わることが分かります。
まとめ
display:blockは、要素をブロックレベルとして扱いたい場合に欠かせない基本の値です。「親要素の幅いっぱいに広がる」「前後で改行される」という特性を理解しておくと、レイアウト調整やインライン要素のスタイリングに非常に役立ちます。flexやgridなど他のdisplay値との違いもあわせて押さえておきましょう。
-
CSSで全幅のブロックボタンを作成・スタイリングする方法
ブロックボタン(全幅ボタン)とは、親要素や画面の幅いっぱいに横方向へ広がるボタンのことです。ナビゲーションやフォーム、モバイル向けUIなどでよく使われるデザインパターンです。CSSでは display: block; と width: 100% を組み合わせるだけで、簡単に実装できます。ブロックボタンの作り方ポイントは次の2つのプロパティです。display: block; … ボタンをインライン要素からブロックレベル要素に変更し、前後の要素と独立した行に配置します。width: 100%; … 親要素の幅いっぱいまでボタンを引き伸ばします。さらに padding や font-size を調
-
CSSでホバー時に要素を表示する方法【サンプルコード付き】
CSSでマウスホバー時に非表示の要素を表示するには、:hover 疑似クラスと隣接兄弟セレクタ(+)を組み合わせるのが一般的です。以下に具体的なコード例を示します。 コード例 <!DOCTYPE html> <html> <head> <style> body{ margin:20px; padding:20px; font-family: 'Segoe UI', Tahoma,