html - 使用 CSS 变量显示/隐藏仅包含 HTML、CSS 的图像
问题描述
在这里,我试图在单击按钮(使用 :focus)以显示/隐藏图像时更改 CSS 变量的值(可见性),而不使用 Javascript。
CSS
img {
width: 200px; height: 200px; margin-left: 40px; margin-top: 30px;
}
:root {
--c1-vsb: none; --c2-vsb: none;
}
a.c1-imgs {
visibility: var(--c1-vsb);
}
a.c2-imgs {
visibility: var(--c2-vsb);
}
#C1:focus {
background-color: red;
--c1-vsb: hidden;
}
#C2:focus {
background-color: red;
--c2-vsb: hidden;
}
HTML
<html>
</head>
<body>
<div id="left-panel">
<button class="lp-btn" id="C1">SEAL 1</button><br>
<button class="lp-btn" id="C2">SEAL 2</button><br>
</div>
<div id="right-panel">
<a class="c1-imgs"><img src="https://files.worldwildlife.org/wwfcmsprod/images/HERO_harbor_seal_on_ice/hero_full/87it51b9jx_Harbor_Seal_on_Ice_close_0357_6_11_07.jpg"></a>
<a class="c2-imgs"><img src="https://www-waddensea-worldheritage-org.cdn.gofasterstripes.download/sites/default/files/styles/inline_image_full_width/public/20-11-09_habour%20seals%20report_TTF_5200.JPG?itok=YZs9c_dH"></a>
</div>
</body>
</html>
但是由于某些原因,当我单击按钮将可见性设置为隐藏时,图像不会被隐藏起来。
以前,我尝试使用 css 伪类和 display:none, z-order... 隐藏图像,但卡住了。最后,我认为这应该是简单的出路。
你能提出一个解决我遇到的这个问题的方法吗?我不太确定这是否是正确的方法。谢谢!
解决方案
当您声明#C1:focus { --c1-vsb: hidden; }
时,新值--c1-vsb
仅适用于#C1
,而不适用于整个 HTML 文档。
正如MDN所述:“[...] 给定规则集的选择器定义了自定义属性可以使用的范围”。
推荐阅读
- json - Robot Framework - TypeError:解析Json时字符串索引必须是整数
- jira - 如何将 Jira Cloud 数据连接到 Web 应用程序
- unit-testing - “无效使用参数匹配器”,但我只使用匹配器
- javascript - 带有javascript的组合框下拉树?
- reactjs - 胜利 | 如何从最低的负 y 轴值显示 x 轴
- javascript - onClick 使用 jquery 显示当前 div
- javascript - 无法在 PWA (Firebase) 中获取自定义推送通知事件
- crystal-reports - 在运行时将 Crystal Reports 数据源从 MSACCESS 更改为 SQLSERVER
- java - 我在 firebase library 中找到了重复的类。如何排除?
- oracle - PL/SQL:ORACLE 中的感叹号