2012-12-12 6 views
1

ID가 "navigation"인 정렬되지 않은 목록과 몇 개의 하위 목록 항목 요소가 있습니다.: 모든 하위 요소를 대상으로하는 첫 번째 자식

첫 번째 항목을 :first-child으로 선택하려고하는데 다른 모든 목록 항목에이 CSS를 적용하고 있습니다. 그래서

ul#navigation li:first-child{ 
    background:#fff; 
} 

는 반복하는이 모든 목록 항목을 흰색 배경을주고있다. 난 그냥 첫 번째 요소를 선택하고 싶습니다. 무슨 일 이니?

+2

나를 위해 잘 작동합니다 : http://jsfiddle.net/HyKFJ/. HTML을 게시하십시오. – Blender

+0

나는 그렇게하려고했으나 각 목록 항목을 링크로 둘러싼 것을 깨달았다. 나는 전체 li이 링크가되기를 원하기 때문에이 방법을 유지하려고하지만,이 문제가 발생합니다. –

+1

@ MarkLyons'li'을 링크로 둘러 쌀 수 없습니다. 대신'display' 속성을'block'으로 설정하십시오. – Sampson

답변

4

의견에 따르면, 문제는 마크 업이 보이는 것입니다 : 모든 li이 모델 하에서 :first-child 얼마나

<ul id="navigation"> 
    <a href="http://google.com"> 
     <li>Google</li> 
    </a> 
</ul> 

참고. 목록 항목 내에 앵커를 중첩하는보다 적절한 구조를 제안하십시오. 당신은 장소에 그 구조적인 변화가 있으면

#navigation a { display: block } 

것은, 당신의 선택은 목표로한다 : 첨부 CSS와

<ul id="navigation"> 
    <li><a href="http://google.com">Google</a></li> 
</ul> 

: 당신이 앵커가 목록 항목을 입력 할 경우, 블록의 디스플레이를 설정 첫 번째 목록 항목 :

/* > to target only immediate list items */ 
#navigation > li:first-child { 
    background: red; 
} 
+0

이 작동하지만 링크에'display : block '을 추가해도 div의 전체 영역에서 효과적이지는 않습니다. –

+0

@ MarkLyons 목록 항목의 패딩/마진이 너의 미적을 방해하는 것 같다. http://jsfiddle.net에서 온라인으로 페이지를 만들거나 데모를 할 수 있습니까? – Sampson

+0

예, li에는 위쪽 및 아래쪽 패딩이 있습니다. 링크에 'width : 100 %'를 추가하고 패딩을 링크 스타일로 이동했습니다. 모두 좋다, 고마워! –

관련 문제