2010-04-24 3 views
9

Warum Absatz unter diesem Stil nicht p:first-childWarum der erste Absatz nicht diesen Stil p: First-Kind?

#content p:first-child {color:#4C4C4C; 
font-size:1.2em; 
font-weight:bold; 
line-height:1.8; 
margin-bottom:0.5em;} 


<div id="content"> 
<h1>Welcome</h1> 
    <p>first paragraph</p> 
    <p>second paragraph</p> 
    <p>third paragraph</p> 
</div> 

Wie Absatz von CSS wählen?

+0

Ursache IE mag Pseudoelemente nicht – Luis

Antwort

19

Während die bisherigen Antworten haben das Problem bereits definiert (das die p nicht das erste Kind der Eltern ist div), hier ist eine Lösung für Ihr Problem, die ersten p zum Ziel, die ein h1 folgt, ist in Ihrem Browser abhängig :

h1 + p { /* styles any paragraph that immediately follows a h1 element */ } 
+0

Sehr guter Punkt. Wenn er Glück hat, wird das für ihn auf der ganzen Linie funktionieren. +1 –

+0

Nun, das schien die beste pure-css-Methode; obwohl offensichtlich eine Klasse von ". first" (oder was auch immer) auf den ersten Absatz anzuwenden, ist mehr Cross-Browser-kompatibel. Kompatibilität scheint in Ordnung (für fast alle außer IE6, mit einigen Problemen für IE7 und IE8 * als * IE7): http://quirksmode.org/css/contents.html –

3

Der Selektor entspricht einem beliebigen p-Element, das das erste untergeordnete Objekt des übergeordneten Elements ist.

In diesem Fall ist das p das zweite Kind seines Elternteils.

Werfen Sie einen Blick auf: http://www.w3schools.com/CSS/css_pseudo_classes.asp

0

das P-Gehalt ist nicht ihr erstes Kind - von dem, was ich einen Tag wie oder wäre das erste Kind des eigentliche Inhalt nicht gesehen habe.

23

Sie suchen nach dem :first-of-type psuedo Selektor! Also, würden Sie dies tun, den ersten Absatz zu bekommen:

#content p:first-of-type 
0

kann immer nur eine Klasse zu jedem Absatz zuweisen - vollen Beweis.

p.indent{ 
text-indent:50px; 
    } 
Verwandte Themen