只有两个孩子,CSS才会选择第一个孩子

use*_*789 5 css css-selectors

有没有办法在有第二个孩子的情况下选择第一个孩子?我想隐藏第一个<p></p>标签,只有第二个标签.有没有办法用CSS做到这一点?

我的代码是这样的

<div>
    <p></p>
    <p>something</p>
</div>
Run Code Online (Sandbox Code Playgroud)

Bol*_*ock 12

你只能通过合并做到这一点:first-child:nth-last-child(),这意味着在纯CSS你不会得到任何比IE9以后更好的支持:

p:first-child:nth-last-child(2) {
    display: none;
}
Run Code Online (Sandbox Code Playgroud)

如果你想在第一个p兄弟姐妹的时候隐藏第一个(也就是说,无论是否共有2个,3个,4个孩子),请改用:

p:first-child:not(:only-child) {
    display: none;
}
Run Code Online (Sandbox Code Playgroud)