【问题标题】:Hiding label of radiobutton after clicking and never show it again (html/css only)单击后隐藏单选按钮的标签,不再显示(仅限html/css)
【发布时间】:2015-11-04 13:57:20
【问题描述】:

我希望在选择某个复选框 (#red) 时显示单选按钮 (#green) 的标签。好的,这不是什么大问题。但我还想要的是,点击标签后,应该检查#green,标签应该消失......并且永远不会回来,即使不再检查#green。

我想到了以下条件:标签仅在选中#red 并且具有 :focus 时才可见。但不幸的是,在点击应用到#green 之前,#red 的 :focus 丢失了,因此从不检查#green。

代码如下:

input + label {
  position: absolute;
  top: 100px;
  width: 100px;
  height: 100px;
}

#red + label {
  background-color: #FF0000;
  left: 100px;
}

#green + label {
  display: none;
  background-color: #00FF00;
  left: 200px;
}

#blue + label {
  display: none;
  background-color: #0000FF;
  left: 300px;
}

#blue:checked + label {
  display: block;
}

#red:checked + label {
  display: none;
}

#red:checked:focus ~ #green + label	{
  display: block;
}
<input id="red" type="checkbox">
<label for="red" tabindex="3"></label>

<input id="green" type="radio" name="radios">
<label for="green" tabindex="1"></label>

<input id="blue" type="radio" name="radios" checked>
<label for="blue" tabindex="2"></label>

所以,点击红色方块后,应该会出现一个绿色方块。点击绿色方块后,绿色方块和蓝色方块应该会消失。

希望有人能帮忙!

【问题讨论】:

  • 您想在点击后隐藏“红/绿”检查器吗?

标签: html css checkbox focus


【解决方案1】:

这很有趣,但可能 js 可以让它更快。

Codepen for you

我已经添加了主要部分:

#red:checked ~ #green + a:target { display: none; }

它看起来像你想要的,主要的 hack 与 a 元素和目标。

【讨论】:

  • 你好!谢谢你的回复,但这不是我想要的。单击后,我想隐藏绿色框。并且 Í 想“永远”隐藏它。这意味着:即使不再选中相应的单选按钮,绿色标签也应该保持隐藏状态。
  • 嗯,是的,我也想过目标黑客,但问题仍然存在,当我单击绿色框周围的锚时,没有选择 #green 单选按钮...
  • 每个文档你不能做你想做的事,因为你只想使用 CSS 你必须使用 target 的解决方法,这样的方法会引导你到 2 个嵌套的可点击元素,它们只会触发一个其中,为了防止这种情况(或允许)jquery,例如有特殊的方法。您也可以尝试focus 方式,但与以前的方式一样,它不是解决方案。
猜你喜欢
  • 2018-11-27
  • 2012-06-24
  • 2023-03-09
  • 2014-08-06
  • 1970-01-01
  • 1970-01-01
  • 2021-06-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多