2012-05-27 3 views
9

모든 것을 시도했지만 너무 복잡해져서 선택기를 사용하여 크롬을 처리 할 수 ​​있다고 생각합니다. 나는 확실히 프로그래머에게이클래스 a가 있지만 클래스 b가 아닌 CSS 선택자

선택 classa을 할 수있는 간단한 방법이야 있지만 경우에만 프로그래머없는 classbCSS3 pseudo classes으로

<div class="container"> 
    <div class="classa classb"></div> <!-- Dont Select --> 
    <div class="classa"></div> <!-- Select --> 
    <div class="classa"></div> <!-- Dont select last instance --> 
</div> 

답변

12

나는 당신이 알고있는, 그러나 :not() 선택 (예 here)

div.classa:not(.classb):not(:last-child) {}

를 사용하여 CSS3와 함께이 작업을 수행 할 수 있다고 생각하지 많은 브라우저는 이것을 지원 ..

+0

또한 마지막 자식이 아닌 경우 마지막'.classa'를 제외 할 수 없습니다. http://stackoverflow.com/questions/10230416/is-it-possible-using-current-browsers-to-use-pseudo-classes-to-detect-first-and/10230466#10230466 – BoltClock

+0

예 이것이 문제입니다.를 참조하십시오. 필자는 테스트를 받고있다. – Akshat

0

의 마지막 인스턴스 무시 :

.classa:not(:last-child):not(.classb) { 
    // some rules... 
} 
2
.classa:not(.classb):not(:last-child) { 
    /* rules */ 
} 

을 Firefox 12, Chrome 19, Safari 5 및 Opera 10에서 테스트되었습니다. 불행히도 IE에서는 작동하지 않습니다.

+0

IE를 업그레이드하지 않았기 때문에. – BoltClock

+0

IE 9에서 테스트했습니다. 작동하지 않습니다. 효과가 있다고하더라도 대부분의 사람들은 이전 버전을 사용합니다 ... – Simone

+0

표준 모드에서 테스트하고 있는지 확인하십시오. IE9는 표준 모드에서만이 선택기를 완벽하게 지원합니다. – BoltClock

1

시도 :

.classa:not(.classb):first-child { 
    background: red; 
} 

이 비록 IE 7 또는 8에서 작동하지 않습니다. 자바 스크립트가 더 쉬운 방법이 될 수 있도록

+0

첫 번째 자식이'.classa.classb '이기 때문에 이것은 잘못되었습니다. – BoltClock

관련 문제