:checked [duplicate]により、チェックボックスの親から要素に影響を与えます
Aug 22 2020
:checked css pseudo-classを使用して、チェックボックスの親から要素を非表示にします。どうすればそれができますか?私の問題の例があります:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div>
<input type="checkbox" name="checkbox" id="checkbox">
</div>
<div>
<span>Element to hide</span>
</div>
</body>
</html>
ありがとう!
回答
ihodonald Aug 22 2020 at 00:17
CSSだけを使用してそのようなDOMをトラバースすることはできません。JavaScriptが必要です。JavaScriptDOMトラバーサルよりも優れたCSSDOMトラバーサル?
SASSを使用して下向きにトラバースすることはできますが、スタック上で上向きにトラバースすることはできません。
document.getElementById("checkbox").onchange = (e) => {
let checked = e.target.checked;
if (checked) {
document.getElementById("element-to-hide").style.display = "none";
} else {
document.getElementById("element-to-hide").style.display = "block";
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div>
<input type="checkbox" name="checkbox" id="checkbox" >
</div>
<div>
<span id="element-to-hide">Element to hide</span>
</div>
</body>
</html>