こんにちはフロントエンドエンジニアのまさにょんです!
今回は、HTMLタグの非表示方法と表示/非表示を切り替えるDOM操作について解説していきます。
結論から言うと、HTMLタグの非表示はhidden属性か「display: none;」のStyleの適用のどちらかで実装します。
また、表示/非表示の切り替えは、JavaScriptのDOM操作で実施します。
目次
hidden属性の使い方は、シンプルでHTMLタグに「hidden」属性を追加するだけです。
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Robotama-Hide🔥</title>
</head>
<body>
<h2>1. HTML-Tag に hidden を追加する</h2>
<h3 hidden>Ninjya-Robotama🔥</h3>
<p>HTMLタグに「 hidden 」属性を追加するだけで、画面上は非表示になります。</p>
</body>
</html>
HTMLタグを非表示にする方法2: 「display: none;」を適用する
CSS の Style として「 display: none; 」を設定してあげると、画面上は非表示になります。
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Robotama-Hide🔥</title>
<style>
h3.robotama-1 {
display: none;
}
</style>
</head>
<body>
<h2>2. display: none を使用する</h2>
<h3 class="robotama-1" >Display-None-Robotama🔥</h3>
<p>CSS の Style として「 display: none; 」を設定してあげると、画面上は非表示になります。</p>
</body>
</html>
hidden属性は「display: block;」や「display: inline-block;」などのStyleが適用されたときに無効化されるという弱点があります。
なので、hidden属性を使用するときは、それらのStyle適用に気をつける必要があります。
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Robotama-Hide🔥</title>
<style>
.appear-robotama {
display: block;
}
</style>
</head>
<body>
<h2>3. hidden-属性の注意点</h2>
<h4 class="appear-robotama" hidden >hidden-属性を追加したのに表示されているだと・・・</h4>
<p>
hidden-属性は、とても弱い存在です。
<br>
要素に強いセレクタを使用して none 以外の値(block, inline-blockなど)を定義すると、簡単に上書きされます。
</p>
</body>
</html>
HTMLElement の hidden プロパティは論理値で、この要素が非表示の場合は true で、それ以外の場合は false です。
「HTMLElement.hidden」の形でhidden属性の真偽値を取得できるので、それを元にDOM操作で表示/非表示の切り替えを実装することができます。
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Robotama-Hide🔥</title>
<script>
function HiddenSwitch (elem) {
console.log('HiddenSwitch-起動🔥');
// 1. id で要素を取得する
const element = document.getElementById(elem);
console.log({element});
// 2. HTMLElement の hidden プロパティは論理値で、この要素が非表示の場合は true で、それ以外の場合は false です。
const hiddenFlag = element.hidden;
console.log({hiddenFlag});
if (hiddenFlag) {
element.hidden = false;
} else {
element.hidden = true;
}
}
</script>
</head>
<body>
<h2>4. hidden-属性の「表示/非表示」-Switch-Sample</h2>
<h3 id="robotama" hidden >ロボ玉なのだ🔥</h3>
<button type="button" onclick="HiddenSwitch('robotama')">ロボ玉-表示/非表示</button>
</body>
</html>
display: none の「表示/非表示」切り替えDOM操作のSample-Code
「display: none;」を適用して非表示にしている場合もDOM操作で表示/非表示の切り替えができます。
getComputedStyle(HTMLElement) で Styleの適用状況を知ることができるので、
getComputedStyle(element).display で displayの適用状況を確認して、Switch操作をしています。
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Robotama-Hide🔥</title>
<style>
#gunma {
display: none;
}
</style>
<script>
function DisplayNoneSwitch (elem) {
console.log('DisplayNoneSwitch-起動🔥');
// 1. id で要素を取得する
const element = document.getElementById(elem);
console.log({element});
// 2. getComputedStyle() => Style の適用状況を知ることができる
const displayStyle = getComputedStyle(element).display;
console.log({displayStyle});
// 3. Style を Switch するための条件文
if (displayStyle == 'none') {
// 4. HTML-Tag の Style は「 HTMLElement.style.属性名 = '値' 」の形でupdateできる
element.style.display = 'block';
} else {
element.style.display = 'none';
}
}
</script>
</head>
<body>
<h2>5. display: none の「表示/非表示」-Switch-Sample</h2>
<h3 id="gunma" >神聖グンマー帝国、万歳🔥</h3>
<button type="button" onclick="DisplayNoneSwitch('gunma')">神聖グンマー帝国-表示/非表示</button>
</body>
</html>
今回のSample-Code-全文
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Robotama-Hide🔥</title>
<style>
h3.robotama-1 {
display: none;
}
.appear-robotama {
display: block;
}
#gunma {
display: none;
}
</style>
<script>
function HiddenSwitch (elem) {
console.log('HiddenSwitch-起動🔥');
// 1. id で要素を取得する
const element = document.getElementById(elem);
console.log({element});
// 2. HTMLElement の hidden プロパティは論理値で、この要素が非表示の場合は true で、それ以外の場合は false です。
const hiddenFlag = element.hidden;
console.log({hiddenFlag});
if (hiddenFlag) {
element.hidden = false;
} else {
element.hidden = true;
}
// [ 参考・引用 ]
// MDN: HTMLElement.hidden
// https://developer.mozilla.org/ja/docs/Web/API/HTMLElement/hidden
}
function DisplayNoneSwitch (elem) {
console.log('DisplayNoneSwitch-起動🔥');
// 1. id で要素を取得する
const element = document.getElementById(elem);
console.log({element});
// 2. getComputedStyle() => Style の適用状況を知ることができる
const displayStyle = getComputedStyle(element).display;
console.log({displayStyle});
// 3. Style を Switch するための条件文
if (displayStyle == 'none') {
// 4. HTML-Tag の Style は「 HTMLElement.style.属性名 = '値' 」の形でupdateできる
element.style.display = 'block';
} else {
element.style.display = 'none';
}
}
</script>
</head>
<body>
<h1>HTML-Tagを非表示にする方法</h1>
<h2>1. HTML-Tag に hidden を追加する</h2>
<h3 hidden>Ninjya-Robotama🔥</h3>
<p>HTMLタグに「 hidden 」属性を追加するだけで、画面上は非表示になります。</p>
<h2>2. display: none を使用する</h2>
<h3 class="robotama-1" >Display-None-Robotama🔥</h3>
<p>CSS の Style として「 display: none; 」を設定してあげると、画面上は非表示になります。</p>
<h2>3. hidden-属性の注意点</h2>
<h4 class="appear-robotama" hidden >hidden-属性を追加したのに表示されているだと・・・</h4>
<p>
hidden-属性は、とても弱い存在です。
<br>
要素に強いセレクタを使用して none 以外の値(block, inline-blockなど)を定義すると、簡単に上書きされます。
</p>
<h2>4. hidden-属性の「表示/非表示」-Switch-Sample</h2>
<h3 id="robotama" hidden >ロボ玉なのだ🔥</h3>
<button type="button" onclick="HiddenSwitch('robotama')">ロボ玉-表示/非表示</button>
<h2>5. display: none の「表示/非表示」-Switch-Sample</h2>
<h3 id="gunma" >神聖グンマー帝国、万歳🔥</h3>
<button type="button" onclick="DisplayNoneSwitch('gunma')">神聖グンマー帝国-表示/非表示</button>
</body>
</html>
JavaScript書籍 Ver. 中級-上級者向け
JavaScript書籍 Ver. 初級者向け
Twitterやってます!Follow Me!
神聖グンマー帝国の逆襲🔥
神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!