我有这个清单
<nav>
<ul>
<li>list el</li>
<li>list el</li>
<li>list el
<ul>
<li>inside</li>
<li>inside2</li>
</ul>
</li>
</ul>
</nav>
<section>
<img src="#">
<h1>Some Title</h1>
</section
我正在使用:专注于在点击时显示下拉列表,而不使用JS。现在一切都还可以。但是我想在下拉列表处于活动状态时改变整个部分的颜色(通过:焦点)。 有什么方法可以完全用css做到这一点吗?我试图使用尽可能少的JS(绝对没有jQuery)
答案 0 :(得分:0)
是的,你可以使用Radio Hack,没有丝毫的JS 。基本上,使用标签作为您的重点&#34;元件。此标签应使其for
属性引用input type="radio"
,该#myradio:checked ~ #mysection{ }
层次结构位于您希望受影响的元素之上。然后只需使用以下css选择器{{1}}。
答案 1 :(得分:0)
如果您愿意使用:focus
更改为使用:target
,那么您可以。
从您的问题中不清楚如何实现您的下拉行为,但这是一个简单的示例,应该说明如何处理它。 (只有第三个项目有下拉列表,但所有三个链接都应该更改背景颜色)。
:target
的行为与:focus
略有不同,所以您需要注意的事项是:
li ul {display: none;}
#dd1:target { background: gold; }
#dd2:target { background: green; }
#dd3:target { background: red; }
#dd3:target .dd3 {display: block;}
&#13;
<div id="dd1">
<div id="dd2">
<div id="dd3">
<nav>
<ul>
<li><a href="#dd1">list el</a></li>
<li><a href="#dd2">list el</a></li>
<li><a href="#dd3">list el</a>
<ul class="dd3">
<li>inside</li>
<li>inside2</li>
</ul>
</li>
</ul>
</nav>
</div>
</div>
</div>
&#13;