2009-09-08 2 views
13

예 :CSS가있는 목록에서 n 번째 항목을 숨기는 방법이 있습니까?

<ul class="mybuttons"> 
    <li class="mybutton"></li> 
    <li class="mybutton"></li> 
    <li class="mybutton"></li> 
</ul> 

는 CSS를 사용하여 2 항목을 숨길 수 있습니까?

+0

감사이 질문에 너무 많은 가치를 추가. – GollyJer

+0

직위에 "Designer"라는 단어가 있으면 http://www.doctype.com에서 질문해야하기 때문에 중요합니다. 그렇지 않으면 질문이 여기에 있습니다. 나는 무작위로 묻지 않았다 – EBGreen

+0

어디에 내 직책을 맡기고 있니? – GollyJer

답변

27

nth-child 참으로 CSS의 방법입니다. 순수 CSS에서

이 구문은 단순히 너무이 경우

li.mybutton:nth-child(2){ 
    display:none; 
} 

nth-of-type(2) 작품이다.

편집 : CSS 응답이지만 CSS3이며 only in some browsers으로 구현되었습니다. IE와 FF3 이하는 기본적으로이 기능을 지원하지 않습니다. FF3.5, Konqueror에서 구현되었으며 Chrome, Safari 및 Opera에서 잘못 구현되었습니다. nth-of-type() 구현이 더 좋습니다.

구형 브라우저에서의 지원에는 javascript (jQuery 등으로 단순화)가 필요합니다. jQuery 선택기는 Selectors/nthChild 문서에 설명되어 있으며 위의 내용은 $("li.mybutton:nth-child(2)").hide()으로 수행 할 수 있습니다.

+2

완벽하게 일했습니다. 감사 빌. 기록을 위해 이것은 Jon Galloway가 말한 것처럼 CSS3 구현이며 '현대'브라우저에서만 지원됩니다. http://www.webdevout.net/browser-support-css#css3pseudoclasses – GollyJer

+1

사용자가 비 IE 브라우저의 최신 버전을 실행하도록 요구할 수 없다면 이것이 현재 실제 솔루션이라고 생각하지 않습니다. –

+0

@ 존, 그것은 그의 * 질문에 대한 진정한 해결책입니다. 그는 CSS를 요청하고 CSS로 태그를 추가 했으므로 CSS 응답을 받았습니다. 하지만 답변에 경고가 추가됩니다. –

8

n-th child pseudo selectors이 작업을 수행하지만 널리 지원되지는 않으며 잠시 동안 지원되지 않습니다. Javascript/jQuery가 필요하거나 숨기려는 항목에 대한 특수 클래스를 작성하거나 항목을 직접 숨길 수 있습니다. 여기

당신이 jQuery를 함께 할 것입니다 방법은 다음과 같습니다

$("ul.mybuttons li:nth-child(2)").hide(); 
+0

답장을 보내 주셔서 감사합니다. 명확성을 위해 ... JQuery는 매개 변수로 전달 된 CSS3 의사 선택기를 처리하는 내부 절차를 제공하므로이 솔루션을 다시 브라우저와 호환 가능합니까? 이 질문의 목적을 위해서만 CSS에 액세스 할 수 있지만 향후 프로젝트에 대한 이해를 확인할 가치가 있습니다. 다시 한번 감사드립니다. – GollyJer

+1

예, jQuery에는 CSS3 +를 처리하고 IE6과 역 호환되는 매우 고급 선택기 엔진이 있습니다. –

0
ul.mybuttons li:first-child { 
    display:none; 
} 
0

은 내가 먼저 를 설정합니다 클래스 = "hidden_li"HTML 파일로 두 번째 리.

예 :

<ul class="mybuttons"> 
<li class="mybutton"></li> 
<li class="mybutton" class="hidden_li"></li> 
<li class="mybutton"></li> 
</ul> 

은 그 때 나는 이런 식으로 스타일을합니다

.hidden_li{ 
    visibility : hidden; 
    height : 0px; 
    width : 0px; 
    margin : 0px; 
    padding : 0px; 
    overflow : hidden; 
} 
관련 문제