여러 클래스를 기반으로 요소 선택


360

태그가 개일 때 태그에 적용하려는 스타일 규칙이 있습니다 클래스 있습니다. JavaScript없이 이것을 수행 할 수있는 방법이 있습니까? 다시 말해:

<li class='left ui-class-selector'>

및 클래스 가 모두 적용된 경우 에만 스타일 규칙을 적용하고 싶습니다 .li.left.ui-class-selector


답변:


595

두 개의 수업을 의미합니까? 선택기 "체인"(공백 없음) :

.class1.class2 {
    /* style here */
}

모든 요소를이 선택 class1이 또한있다 class2.

귀하의 경우 :

li.left.ui-class-selector {

}

공식 문서 : CSS2 클래스 선택기 .


akamike :이 부분을 읽어보십시오 Internet Explorer 6에서이 방법에 문제가 지적 IE6의 CSS에서 사용 더블 클래스?


6
IE6은 클래스 체인을 읽지 않기 때문에 이것을 좋아하지 않습니다. 체인의 마지막 클래스 만 볼 것입니다.
akamike

16
그렇지 않습니다 :) 모든 주요 웹 사이트가 IE6에 대한 지원을 중단하거나 중단 할 예정입니다.
토마스 보니 니

@ 안드레아스 보니 니 : 응. 솔직히 말해서 나는 이미 IE6에 관심이 없습니다. (이 문제를 다루는 다른 질문을 찾았 기 때문에 이전 의견을 삭제했습니다.)
Felix Kling

예, IE6에서는 전혀 사용할 수 없으며 더 긴 경로 만 사용하여 요소를 스타일 지정하십시오. 예를 들어, 각 클래스를 개별적으로 스타일링하고 적절한 CSS 특정 성을 사용하여 가능한 한 재정의하십시오.
akamike

2
IE6의 무덤에서 춤을 추는 것을 좋아합니다. 나는 올해 IE10을 지원할 필요조차 없었으며, IE를 완전히 떨어 뜨리는 것은 수평선에 있습니다. 나는 미래를 좋아합니다. ☺
Michael Scheper 2016 년

22

체인 선택기는 클래스에만 국한되지 않으며 클래스와 ID 모두에 대해 수행 할 수 있습니다.

클래스

.classA.classB {
/*style here*/
}

수업 및 ID

.classA#idB {
/*style here*/
}

ID 및 ID

#idA#idB {
/*style here*/
}

IE 6을 제외한 모든 최신 브라우저는 이것을 지원하며 목록의 마지막 선택기를 기반으로 선택합니다. 따라서 ".classA.classB"는 ".classB"만을 기준으로 선택합니다.

당신의 경우를 위해

li.left.ui-class-selector {
/*style here*/
}

또는

.left.ui-class-selector {
/*style here*/
}

9
Id & Id는 개념적으로 이상한 선택기입니다.
Félix Gagnon-Grenier

0

다음 솔루션을 사용할 수 있습니다.

CSS 규칙은 다음 두 클래스가있는 모든 태그에 적용됩니다.

.left.ui-class-selector {
    /*style here*/
}

CSS 규칙 <li>은 다음 두 클래스 가 있는 모든 태그에 적용됩니다 .

li.left.ui-class-selector {
   /*style here*/
}

jQuery 솔루션 :

$("li.left.ui-class-selector").css("color", "red");

자바 스크립트 솔루션 :

document.querySelector("li.left.ui-class-selector").style.color = "red";
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.