2010-04-24 6 views
9

왜 첫 번째 단락은 어떻게 CSS에서 첫 번째 단락을 선택하려면이 스타일 p:first-child첫 번째 단락이이 스타일을 사용하지 않는 이유 p : first-child?

#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> 

을 복용하지?

+0

원인 IE는 의사 요소를 좋아하지 않습니다. – Luis

답변

19

이전 응답이 이미 문제가합니다 (p 부모 div의 첫 번째 자식 아님), 사용자의 문제에 대한 해결책이야을 정의하고 있지만, 브라우저에 따라 h1 다음에 첫번째 p을 대상으로 :

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

아주 좋은 지적입니다. 운이 좋으면 그를 위해 일할 것입니다. +1 –

+0

글쎄, 이것은 최고의 순수한 CSS 방법 같았다; 분명히 첫 번째 단락에'.first' (또는 무엇이든)의 클래스를 적용하는 것이 브라우저 간 호환이 가능합니다. 호환성은 괜찮은 것 같습니다 (거의 모든 IE6을 제외하고, IE7과 IE8 *에 대한 몇 가지 문제가 있습니다 * IE7) : http://quirksmode.org/css/contents.html –

3

선택자는 부모의 첫 번째 하위 요소 인 모든 p 요소와 일치합니다.

이 경우 p는 부모의 두 번째 자식입니다. 내가 같은 태그를 본 적이 무엇이나 처음 아이가 아닌 실제 내용이 될 것입니다 - P의 함량이 최초의 아이가 아닌 http://www.w3schools.com/CSS/css_pseudo_classes.asp

23

당신은 :first-of-type 사이비 선택을 찾고있어! 그래서, 당신은 그 첫 번째 단락을 얻기 위해이 작업을 수행 할 것 :

#content p:first-of-type 
0

는 언제나 모든 첫 번째 단락에 클래스를 할당 할 수 - 완전한 증거를.

p.indent{ 
text-indent:50px; 
    } 
관련 문제