使用多个伪类/元素无效的元素的CSS路径

时间:2016-11-21 14:34:33

标签: html css css-selectors pseudo-element pseudo-class

我想知道是否可以通过堆叠伪类来定位元素。

我试过了:

#advertise .row:first-of-type .one-third:nth-of-type(2) .contentwrap {
  font-size:16px;
}

但只有当我们使用[#one或#two]行的ID代替.row:first-of-type / .row:last-of-type

时它才有效

这是因为我不能使用多个伪目标来定位元素,或者我只是在做一些愚蠢而没有意识到的事情?

这是HTML:

<div id="advertise">
    <h1 class="maintitle"></h1>
    <h2 class="maintitle-sub"></h2>

    <div class="contentwrap">
        <p></p>
    </div>

    <div class="row" id="one">
        <div class="one-third first shadow">
            <h1 class="header"></h1>
            <div class="contentwrap">                
                <p></p>
            </div>
        </div>
        <div class="one-third shadow">
            <h1 class="header"></h1>
            <div class="contentwrap">
                <p></p>
            </div>
        </div>
        <div class="one-third shadow">
            <h1 class="header"></h1>
            <div class="contentwrap">
                <p></p>
            </div>
        </div>
    </div>

    <div class="row" id="two">
        <div class="one-third first shadow">
            <h1 class="header"></h1>
            <div class="contentwrap">                
                <p></p>
            </div>
         </div>
         <div class="one-third shadow">
            <h1 class="header"></h1>
            <div class="contentwrap">
                <p></p>
            </div>
        </div>
        <div class="one-third shadow">
            <h1 class="header"></h1>
            <div class="contentwrap">
                <p></p>
            </div>
        </div>
    </div>
</div>

1 个答案:

答案 0 :(得分:4)

:first-of-type选择器选择特定类型元素的第一个实例(例如<div>)。在这里,您的第一个.row元素是第二个 <div>元素,因此您的:first-of-type选择器不会选择它。

相反,您可以使用:

#advertise .row:nth-of-type(2) .one-third:nth-of-type(2) .contentwrap {
  font-size:16px;
}

但由于它已经有id属性(该元素应该是唯一的),你可以坚持:

#advertise #one .one-third:nth-of-type(2) .contentwrap {
  font-size:16px;
}