두 클래스를 가진 요소에 적용되는 CSS 선택기


472

두 개의 특정 클래스로 설정된 클래스 속성 값을 기반으로 CSS로 요소를 선택하는 방법이 있습니까? 예를 들어 3 div가 있다고 가정 해 보겠습니다.

<div class="foo">Hello Foo</div>
<div class="foo bar">Hello World</div>
<div class="bar">Hello Bar</div>

foo 및 bar 클래스의 멤버라는 사실에 따라 목록의 두 번째 요소 만 선택하기 위해 어떤 CSS를 작성할 수 있습니까?

답변:


735

두 클래스 선택기를 연결하십시오 (공백 없음).

.foo.bar {
    /* Styles for element(s) with foo AND bar classes */
}

IE6와 같은 고대 브라우저를 처리 해야하는 경우 연결된 클래스 선택기를 올바르게 읽지 못합니다. 목록에 다른 클래스가 있는지 여부에 관계없이 마지막 클래스 선택기 ( .bar이 경우) 만 읽습니다 .

다른 브라우저와 IE6가이를 해석하는 방법을 설명하려면 다음 CSS를 고려하십시오.

* {
    color: black;
}

.foo.bar {
    color: red;
}

지원되는 브라우저의 출력은 다음과 같습니다.

<div class="foo">Hello Foo</div>       <!-- Not selected, black text [1] -->
<div class="foo bar">Hello World</div> <!-- Selected, red text [2] -->
<div class="bar">Hello Bar</div>       <!-- Not selected, black text [3] -->

IE6의 출력은 다음과 같습니다.

<div class="foo">Hello Foo</div>       <!-- Not selected, black text [1] -->
<div class="foo bar">Hello World</div> <!-- Selected, red text [2] -->
<div class="bar">Hello Bar</div>       <!-- Selected, red text [2] -->

각주 :

  • 지원되는 브라우저 :
    1. 이 요소에는 class 만 있으므로 선택되지 않았습니다foo .
    2. 이 요소에는 클래스 foo와 가 모두 있으므로 선택합니다bar .
    3. 이 요소에는 class 만 있으므로 선택되지 않았습니다bar .

  • IE6 :
    1. 이 요소에 class가 없으므로 선택 하지 않았습니다 bar.
    2. bar나열된 다른 클래스에 관계없이이 요소에 class가 있으므로 선택 됩니다.

3
내가 넣은 순서가 중요합니까?
Adam

3
중요하지 않습니다. (지원해야한다고 가정하면 IE6에서는이를 해석하는 방식 때문에 도움이됩니다.)
BoltClock

6
그들 사이에 공간이 없다는 것이 중요합니까?
CodyBugstein

26
@Imray : 예, 공백은 하위 선택자를 나타냅니다. 그러면 각 클래스 선택기가 다른 요소를 나타냅니다. 그러나 우리는 여기서 단일 요소에 대해 이야기하고 있습니다.
BoltClock

2
@David Brossard : 그렇습니다.
BoltClock
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.