首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >纯CSS解决方案-当选中单选按钮时,我希望标记的元素可以是可见的,也可以是隐藏的。

纯CSS解决方案-当选中单选按钮时,我希望标记的元素可以是可见的,也可以是隐藏的。
EN

Stack Overflow用户
提问于 2021-01-26 17:25:33
回答 1查看 51关注 0票数 0

我有四个单选按钮来切换:

  1. MINES

  1. 矿山,包括硅

  1. 矿山,包括磷酸盐

包括金矿在内的

全硅磷化金

这些地雷是地图上的圆形元素:

代码语言:javascript
运行
复制
<a href="#mine1" id="mine1" style="top: 74.72%; left: 25.89%; width: 1vw; height: 1vw;" class="sili phosp"></a>
<a href="#mine2" id="mine2" style="top: 45.25%; left: 45.21%; width: 1vw; height: 1vw;" class="phosp"></a>
<a href="#mine3" id="mine3" style="top: 54.22%; left: 25.89%; width: 1vw; height: 1vw;" class="gold"></a>
<a href="#mine4" id="mine4" style="top: 41.75%; left: 75.34%; width: 1vw; height: 1vw;" class="phosp gold"></a>
<a href="#mine5" id="mine5" style="top: 78.72%; left: 25.49%; width: 1vw; height: 1vw;" class="sili phosp gold"></a>
<a href="#mine6" id="mine6" style="top: 47.42%; left: 88.65%; width: 1vw; height: 1vw;" class="phosp"></a>
<a href="#mine7" id="mine7" style="top: 21.85%; left: 10.42%; width: 1vw; height: 1vw;" class="phosp"></a>
<a href="#mine8" id="mine8" style="top: 14.21%; left: 32.85%; width: 1vw; height: 1vw;" class="sili gold"></a>
<a href="#mine9" id="mine9" style="top: 65.64%; left: 31.21%; width: 1vw; height: 1vw;" class="sili"></a>

例如,当选中“硅矿”按钮时,我希望那些带有硅的地雷是可见的,而那些没有这个属性的地雷要隐藏起来。

如何将地雷显示设置为可见/隐藏,根据哪个单选按钮被选中?

EN

回答 1

Stack Overflow用户

发布于 2021-01-26 20:15:15

您需要一个结构,在那里可以使用筛选选择器,父选择器在纯CSS中是不会雪崩的。因此,您需要从标签中提取输入,并使用for属性将每个标签与其相关的输入链接起来(没有它可以工作,但单击标签将无法使用)。

可以与:checked pseud类和筛选器~一起使用的结构示例

代码语言:javascript
运行
复制
/* Demo : toggle display from an id attribute to later sibblings of a specific class */a {
  border: solid;
  display: none;
}

a:before {/* show them by their class names */
  display: inline-block;
  content: attr(class);
  padding:0.15em 0.5em;
}

#map {margin:1em;padding:1em;border:solid;}
#sili:checked ~ #map .sili,
#phos:checked ~ #map .phosp,
#gold:checked ~ #map .gold,
#allmines:checked ~ #map a {
  display: inline;
}
代码语言:javascript
运行
复制
<input type="radio" name="mineRadio" id="allmines" checked> <label for='allmines'> All
</label>

<input type="radio" name="mineRadio" id="sili"><label for='sili'> Silicium
</label>

<input type="radio" name="mineRadio" id="phos"> <label for='phos'> Phosphate
</label>

<input type="radio" name="mineRadio" id="gold"> <label for='gold'> Gold
</label> The mines are circle-shaped elements on top of a map:
<div id="map">
<a href="#mine1" id="mine1" style="top: 74.72%; left: 25.89%; width: 1vw; height: 1vw;" class="sili phosp"></a>
<a href="#mine2" id="mine2" style="top: 45.25%; left: 45.21%; width: 1vw; height: 1vw;" class="phosp"></a>
<a href="#mine3" id="mine3" style="top: 54.22%; left: 25.89%; width: 1vw; height: 1vw;" class="gold"></a>
<a href="#mine4" id="mine4" style="top: 41.75%; left: 75.34%; width: 1vw; height: 1vw;" class="phosp gold"></a>
<a href="#mine5" id="mine5" style="top: 78.72%; left: 25.49%; width: 1vw; height: 1vw;" class="sili phosp gold"></a>
<a href="#mine6" id="mine6" style="top: 47.42%; left: 88.65%; width: 1vw; height: 1vw;" class="phosp"></a>
<a href="#mine7" id="mine7" style="top: 21.85%; left: 10.42%; width: 1vw; height: 1vw;" class="phosp"></a>
<a href="#mine8" id="mine8" style="top: 14.21%; left: 32.85%; width: 1vw; height: 1vw;" class="sili gold"></a>
<a href="#mine9" id="mine9" style="top: 65.64%; left: 31.21%; width: 1vw; height: 1vw;" class="sili"></a>
</div>

关于双输入/标签的信息:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label

HTML元素表示用户界面中某项的标题。

for属性

对于与<label>元素相同的文档中可标记的与表单相关的元素的<label>。文档中具有与for属性值匹配的id的第一个元素是该label元素的标记控件(如果它是一个可标记元素)。如果它不是可标记的,那么for属性就没有效果。如果还有其他元素也与id值相匹配,则在文档的后面不考虑这些元素。注意:只要属性指向包含的控件元素,<label>元素就可以同时具有for属性和包含的控件元素。

关于筛选选择器的信息:https://css-tricks.com/child-and-sibling-selectors/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65906158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档