2016-06-24 1 views
1

Ich muss das erste Element in anderen Elementen anzielen, aber irgendwie funktioniert es nicht.Ziel: first-child oder: nth-of-type (1)

Ich möchte nur die erste h2 in der Sidebar Ziel.

Wie kann ich das tun?

Ich habe mit first-child und nth-of-type versucht, aber es funktioniert nicht.

#sidebar h2:first-child { 
 
    color: blue; 
 
}
<div id="sidebar"> 
 
    <div class="right"> 
 
    <div class="container-right"> 
 
     <div class="freetext"> 
 
     <h2>Heading - target me only</h2> 
 
     <p>Text</p> 
 
     </div> 
 
     <div class="freetext"> 
 
     <h2>Heading</h2> 
 
     <p>Text</p> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

Siehe fiddle hier.

+0

_ „und ich möchte nur die erste h2 in dieser Sidebar Ziel. Wie kann ich das tun? "- Du kannst nicht; zumindest nicht basierend auf _that_ alone. nth-foo usw. basieren alle auf der DOM-Position eines Elements _within parent_. – CBroe

Antwort

1

Sie müssen auf first-child des übergeordneten Elements div von h2 zielen.

#sidebar > div > div > div:first-child > h2 { 
    color: blue; 
} 

Oder:

#sidebar div.freetext:first-child > h2 { 
    color: blue; 
} 

<div id="sidebar"> 
    <div class="right"> 
     <div class="container-right"> 
      <div class="freetext"> 
       <h2>heading - target me</h2> 
       <p>Text</p> 
      </div> 
      <div class="freetext"> 
       <h2>Heading</h2> 
       <p>Text</p> 
      </div> 
     </div> 
    </div> 
</div> 

jsFiddle here

+1

Ja, ok, das funktioniert. Vielen Dank. – Meek

2

dies wird die Arbeit machen.

#sidebar .freetext:first-child h2 { 
 
    color: blue; 
 
}
<div id="sidebar"> 
 
    <div class="right"> 
 
     <div class="container-right"> 
 
      <div class="freetext"> 
 
       <h2>Heading - target me only</h2> 
 
       <p>Text</p> 
 
      </div> 
 
      <div class="freetext"> 
 
       <h2>Heading</h2> 
 
       <p>Text</p> 
 
      </div> 
 
     </div> 
 
    </div> 
 
</div>

Verwandte Themen