我正在尝试在我的CSS中调整焦点,因为我想用下拉列表来实现它。然而,我遇到了一个问题:“取消焦点”:目前,如果您单击div.inside之外的区域,它将取消焦点,这正是我想要的。但是,我还希望当您再次单击li.collapse时,它也会取消焦点,就像li.collapse是一个开/关按钮。
我尝试了以下方法,但没有成功:
div.inside:active + li.collapse:focus { display: none;}
有人知道另一种方法吗?或者没有使用JavaScript甚至是可能的吗?
下面是代码和fiddle链接:
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;}
collapse
周围缺少引号。 • 使用CSS在元素周围添加填充通常被认为比使用 
更可取。 • 除非您需要区分div.collapse
和somethingelse.collapse
,否则最好(加快浏览器加载时间,并使覆盖样式更容易)只说.collapse
(和.inside
)。 • 除非您需要区分.collapse > a
和.collapse a
,否则最好(同样的原因)避免使用>
。 •+
选择相邻兄弟。 - henryfocus
的相反词是blur
链接 - Max