如果我在 DOM 中并排有 2 个元素,如下所示:
a.button
div.container
a.button
如果 div.container
有课程,我想定位div.container.fullscreen
我在想这样的事情:
div.container.fullscreen + a.button { display:none }
,但它不起作用。
有什么建议么?
如果我在 DOM 中并排有 2 个元素,如下所示:
a.button
div.container
a.button
如果 div.container
有课程,我想定位div.container.fullscreen
我在想这样的事情:
div.container.fullscreen + a.button { display:none }
,但它不起作用。
有什么建议么?
+
不起作用,因为它是下一个兄弟选择器。
您的选择器div.container.fullscreen + a.button
将针对a
if 那是 的下一个直接兄弟,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 实现您想要的。
E + F
语法仅匹配E
if befores F
。如果它们像您刚才描述的那样被订购,我认为您不能a
使用纯 CSS 设置样式。
您可以简单地更改 HTML 以将fullscreen
类放在 和 的父容器container
上button
。这样,您可以使用以下声明来设置样式:
.fullscreen > div.container {
/*
any fullscreen modifications to be done, what used to be in div.fullscreen
*/
}
.fullscreen > a.button {
display: none
}
缺少你真正的 html。<a>
有href
属性吗?是针对<div>
吗?
如果按钮完全展开后隐藏在 div 下,则不必隐藏,它被 div 本身隐藏。
表单元素可以帮助查看想法:http: //codepen.io/gcyrillus/pen/otFim