【发布时间】:2016-03-24 21:46:47
【问题描述】:
我有使用:target 选择器的链接。单击时,相应的段落会突出显示。问题是:一旦点击,就无法清除选择。 我希望在我再次单击所选项目时取消选中它。
例如:如果链接 1 被选中并且我再次点击它,那么它就会被取消选中。
body {
background: #fefefe;
}
:target {
background-color: #ccff66;
}
<a href="#link1">Link 1</a>
<a href="#link2">Link 2</a>
<a href="#link3">Link 3</a>
<a href="#link4">Link 4</a>
<p id="link1">This is a text A</p>
<p id="link2">This is a text B</p>
<p id="link3">This is a text C</p>
<p id="link4">This is a text D</p>
注意事项
我在使用单选/复选框的变通方法中取得了成功,但我想知道是否可以使用
:target实现此行为。它不是重复的:在帖子中非常清楚,这里的目标是取消选中第二次点击的项目,而不是点击第三个“橡皮擦”项目(在当前场景中甚至不存在)。
【问题讨论】:
-
javascript 是一种选择吗,因为它是实现这一目标的最常用方法。
-
如果您有大量内容,
:target将使页面跳转,只是为了检查您是否意识到这一点。 -
@Goose Javascript 是一个选项。当然,首选总是更简单的解决方案,顺序为 pureCSS > javascript > jQuery。 @Pangloss 我知道我首先在这里的短 sn-p 和 css-tricks 网站上注意到了这种行为;无论如何感谢您的警告。
-
我也建议将其标记为 javascript,感觉这是唯一的方法。
-
标签已更新,感谢您的建议;
标签: javascript html css css-selectors target