如果我在DOM中并排放置2个元素,如下所示:
a.button
div.container
我想定位a.button
,如果 div.container
有课程div.container.fullscreen
我在想这样的事情:
div.container.fullscreen + a.button { display:none }
,但它不起作用。
有什么建议吗?
答案 0 :(得分:6)
+
无效,因为它是下一个兄弟选择器。
您的选择器div.container.fullscreen + a.button
会定位a
,如果那是div
的下一个直接兄弟,例如
div.container.fullscreen
a.button // this is now targeted
div.container.fullscreen ~ a.button
将无效,因为它会选择之后的所有兄弟姐妹,而不是之前。
a.button // this isn't targeted.
div.container.fullscreen
a.button // this is now targeted
a.button // so is this
可悲的是,没有先前的兄弟选择器可以使用纯CSS来实现你想要的东西。
答案 1 :(得分:0)
E + F
语法仅在E
F
之前a
匹配。如果按照您刚才描述的方式对它们进行排序,我认为您不能使用纯CSS来设置fullscreen
的样式。
您可能只是更改HTML以将container
类放在button
和.fullscreen > div.container {
/*
any fullscreen modifications to be done, what used to be in div.fullscreen
*/
}
.fullscreen > a.button {
display: none
}
的父容器上。这样,您可以使用以下声明来设置样式:
{{1}}
答案 2 :(得分:0)
错过了真正的HTML。 <a>
有href
属性?它是针对<div>
吗?
按钮没有必要隐藏,如果它在div完全展开后隐藏在div下面,它被div本身隐藏。
表单元素可以帮助您了解实际操作中的想法: http://codepen.io/gcyrillus/pen/otFim