CSSのdisplay:none徹底解説!要素を非表示にする方法と実用サンプル
CSS display:noneとは?
CSSのdisplay: none;は、指定した要素を画面上から完全に非表示にするためのプロパティ値です。Web開発では、特定の要素を一時的に隠したい場合や、JavaScriptと組み合わせて動的にコンテンツの表示・非表示を切り替えたい場面などで広く活用されています。
displayプロパティがnoneに設定された要素には、ボックス(レンダリング領域)が一切生成されません。そのため、子要素にblockやinline-blockなど他の値が設定されていたとしても、親要素ごとまとめて非表示になる点に注意が必要です。
また、似たような効果を持つvisibility: hidden;との違いも重要です。visibility: hidden;は要素が占めるスペースを残したまま見た目だけを消しますが、display: none;はスペース自体も完全に取り除くため、レイアウトに余白が残りません。
基本構文
CSSでdisplay: none;を使用する際の基本的な構文は以下の通りです。
Selector {
display: none;
}
実装例1:ボタンクリックで要素を非表示にする
まずは、ボタンをクリックすると「primary」クラスを持つ要素が非表示になるサンプルを見てみましょう。
<!DOCTYPE html>
<html>
<head>
<title>CSS Display None</title>
<style>
form {
width:70%;
margin: 0 auto;
text-align: center;
}
* {
padding: 2px;
margin:5px;
box-sizing: border-box;
}
input[type="button"] {
border-radius: 10px;
}
.child{
display: inline-block;
height: 40px;
width: 40px;
color: white;
border: 4px solid black;
}
.child:nth-of-type(1){
background-color: #FF8A00;
}
.child:nth-of-type(2){
background-color: #F44336;
}
.child:nth-of-type(3){
background-color: #C303C3;
}
.child:nth-of-type(4){
background-color: #4CAF50;
}
.child:nth-of-type(5){
background-color: #03A9F4;
}
.child:nth-of-type(6){
background-color: #FEDC11;
}
</style>
</head>
<body>
<form>
<fieldset>
<legend>CSS-Display-None</legend>
<div id="container">
<div class="child"></div><div class="child primary"></div><div class="child"></div><div class="child"></div><div class="child primary"></div><div class="child primary"></div>
</div><br>
<input type="button" value="Hide Primary Colors" onclick="displayNone()">
</fieldset>
</form>
<script>
var primaryColor = document.getElementsByClassName('primary');
function displayNone(){
for(var i=0; i<3; i++)
primaryColor[i].style.display = 'none';
}
</script>
</body>
</html>
このコードでは、JavaScriptのgetElementsByClassName()メソッドで「primary」クラスの要素を取得し、ボタンのクリックイベント発生時に各要素のstyle.displayを'none'へ変更することで、該当する色のブロックを非表示にしています。
実行結果
このコードを実行すると、以下のような出力が得られます。
ボタンをクリックする前の状態:

「Hide Primary Colors」ボタンをクリックした後の状態:

実装例2: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: orange;
}
div {
margin: 50px;
padding: 10px;
height: 10px;
line-height: 5px;
text-align: center;
background-color: red;
border: 2px solid blue;
}
div > div {
background-color: yellow;
border: 2px solid green;
}
div > div > div {
background-color: sandybrown;
border: 4px solid darkred;
}
</style>
</head>
<body>
<div><span id="flex">AAAAAA</span>
<div><span id="none">BBBBBB</span>
<div>
<span class="inline-block">CCCCC</span>
<span class="inline-block">DDDDD</span>
<div>
<span class="grid">EEEE FFFF</span>
<span class="grid">GGGG HHHH</span>
</div>
</div>
</div>
</div>
</body>
</html>
この例では、「BBBBBB」のテキストを含む要素にid="none"が付与されており、display: none;が適用されるため画面上には表示されません。一方、flex、inline-block、gridが適用された要素はそれぞれ異なるレイアウトで描画されます。
実行結果
このコードを実行すると、以下のような出力が得られます。

まとめ
display: none;は要素をDOM上に保持しながら視覚的にもレイアウト的にも完全に非表示にできる便利な手法です。ボタン操作による表示切り替えやレスポンシブデザインでの要素制御など、実務でも頻繁に使われるので、ぜひ使いこなせるようにしておきましょう。
-
CSSを使って画像スプライト(Image Sprite)からアイコンを表示する方法
画像スプライト(Image Sprite)とは 画像スプライトとは、複数の小さな画像を1枚の大きな画像ファイルにまとめたものです。最大のメリットは、HTTPリクエストの回数を減らせることにあります。ブラウザがサーバーへ送るリクエスト数が減るほど、サイトの読み込み時間が短縮され、ページの表示速度が向上します。 CSSでスプライト画像からアイコンを表示する仕組み CSSでは、background-positionプロパティを調整することで、1枚のスプライト画像の中から目的のアイコン部分だけを切り出して表示できます。基本的な流れは以下の通りです。 backgroundプロパティでスプライト画像
-
CSSのdata-*属性(カスタムデータ属性)の使い方を実例付きで解説
HTMLのdata-*属性(カスタムデータ属性)を使うと、要素に独自の追加情報を持たせることができます。この記事では、CSSやJavaScriptと組み合わせてdata-*属性を活用する方法を、具体的なコード例とともにわかりやすく解説します。 data-*属性とは? data-*属性は、「data-」で始まる任意の名前を付けられるHTMLの標準属性です。例えば data-food-type=beverages のように記述することで、表示には影響を与えずに要素へメタ情報を埋め込めます。JavaScriptからは getAttribute() や dataset プロパティで、CSSからは属性セ