【发布时间】:2017-01-22 18:12:42
【问题描述】:
我正在关注我的 css,因为我正在考虑用这个做一个下拉列表。但是,我遇到了“不聚焦”的问题:目前,如果您在 div.inside 之外单击,它将不聚焦,这正是我想要的。不过,我也想让它在你再次点击 li.collapse 时让它失去焦点,这样 li.collapse 就像一个开/关按钮。
我试过这个没有运气:
div.inside:active + li.collapse:focus { display: none;}
有没有人知道解决这个问题的另一种方法,或者甚至没有 JavaScript 也有可能?
这是代码和小提琴:
html:
<li class=collapse tabindex="1"><a> Click To See List </a> <div class="inside">
List 1....</div></li>
css:
li.collapse > a{background: #cdf; cursor: pointer; display: block;}
li.collapse:focus{ outline: none;}
li.collapse > div.inside{ display: none;}
li.collapse:focus div.inside{display: block; }
div.inside:focus{ display: none;}
div.inside{background: #cdf; }
div.inside:active + li.collapse:focus { display: none;}
【问题讨论】:
-
我相信你需要 JS 来做这个
-
相关注释: • 缺少
collapse周围的引号。 • 使用css 在元素周围添加填充通常被认为比使用&nbsps 更可取。 • 除非您需要区分div.collapse和somethingelse.collapse,否则最好只说.collapse(和.inside)(加快浏览器加载时间,并更容易覆盖样式)。 • 除非您需要区分.collapse > a和.collapse a,否则最好避免>(同样的原因)。 •+selects adjacent siblings -
focus的反义词是blurLink