CSS如何在当前元素旁边定位元素?

时间:2013-06-26 12:23:01

标签: css css-selectors

如果我在DOM中并排放置2个元素,如下所示:

a.button
div.container

我想定位a.button ,如果 div.container有课程div.container.fullscreen

我在想这样的事情:

div.container.fullscreen + a.button { display:none },但它不起作用。

有什么建议吗?

3 个答案:

答案 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