如何选择放在h1元素后面的第4个元素

时间:2018-05-10 17:59:12

标签: html css css-selectors

我需要选择放在h1元素之后的第4个div元素,我认为我的方式不是专业的方式,css中有指定的选择器吗?请注意,我必须在不向div添加id或class属性的情况下执行此操作。

h1+div+div+div+div{
background-color:red; 
}

<h1>css</h1>

<div>just some text here,</div><hr>
<div>just some text here,</div><hr>
<div>just some text here,</div><hr>
<div>just some text here,</div><hr>
<div>just some text here,</div><hr>

2 个答案:

答案 0 :(得分:6)

您可以使用 nth-of-type subsequent sibling combinator 选择它,以便在div之后选择第4个h1像这样:

h1~div:nth-of-type(4) {
    background-color:red;
}

css中的~被称为后续兄弟组合,它允许您选择第一种和第二种元素类型共享父级而第一种元素位于第二种元素之前的第二种元素类型文档中的元素类型。

jsFiddle: https://jsfiddle.net/AndrewL64/crq43gs5/

如果您确定hr之间没有任何divs标记或其他元素,则可以使用nth-child代替但必须使用5,而不是4,因为〜也计算h1标签。它看起来像这样:

h1~div:nth-child(5) {
    background-color:red;
}

jsFiddle: https://jsfiddle.net/AndrewL64/crq43gs5/1/

答案 1 :(得分:0)

专业方式:

向该div添加一个类,并按类

进行选择
 .forthDiv{
       background-color:red; 
 }

 <div class="forthDiv">sometext</div>

非专业,有时需要的方式:

 div:nth-of-type(4){
 background-color:red; 
 }