我有一个使用target的URL,例如:www.hello.com/#targeturl
我想用它来隐藏一个元素,同时显示另一个被隐藏的元素。有没有办法做到这一点?
我尝试这样做的方式是使用下面的显示两个“显示:无”元素
<div id="targeturl" class="classy">
<div id="targeturl" class="classier">
然后使用CSS:
#targeturl.classy:target {
display: block!important;
}
#targeturl.classier:target {
display: block!important;
}
但这当然不起作用,有没有办法让这种情况发生?
2条答案
按热度按时间jvlzgdj91#
你可以在没有JS的情况下使用the
<label>
–<input type="checkbox">
trick:请注意,这将滚动到复选框,而不是两个
<div>
。为它设置一个不同的id
(或使用display: none
/visibility: hidden
隐藏它)将有效地完全消除这种行为。d8tt03nd2#
:target
解决方案正如评论中所说,ID应该是唯一的,但我们仍然可以使用唯一的ID来显示/隐藏CSS元素。
只要ID被附加在一个元素中,该元素至少是你想要隐藏的元素中最低的共同祖先和最老的(classy,classiest,classiest),我们可以使用CSS兄弟组合符(~)并这样做:
如果你不介意改变HTML结构,最好将ID附加到你想要隐藏的元素的父元素上: