2016-11-21 75 views
0

我想知道是否可以通过堆叠伪类来定位元素。使用多个伪类/元素不工作的元素的CSS路径

我尝试这样做:

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

,但只有当我们对工作行的ID [#one或#two]代替.row的:第一的型/ .row:最后型的

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

下面是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> 
+0

詹姆斯·唐纳利答案已经涵盖了你的问题,但要非常清楚 - 按照你尝试的方式“伪装”伪选择器工作得很好。 – TheThirdMan

+0

您的目标是针对特定的'div.contentwrap'还是全部? – zer00ne

+0

上面例子中提到的特定的一个 - 第一行中第二个三分之一的.contentwrap。 – Moose

回答

3

: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; 
} 
+0

Ohhhhh,我明白了。我的印象是,它会选择.row的第一个实例,而不是一个/ div的第一个实例! – Moose

+0

这个答案中的第一个建议很有用,但是对实际标记做了很多假设,这与基于类的样式应该如何工作是相反的。赞成反映有更好的方法,但为了完整起见,还包括它。 – TheThirdMan