tags:

views:

541

answers:

1

As you probably already know, you may have multiple classes on xhtml elements separated by a space.

Example

<div class="content main"></div>

And with CSS you can target that div with either .content or .main. Is there a way to target it if and only if both classes are present?

Example

<div class="content main">I want this div</div>
<div class="content">I don't care about this one</div>
<div class="main">I don't want this</div>

What CSS selector would I use to get the first div only (assume I can't use content:first-child or similar). Is this even possible?

+7  A: 

Yes, just concatenate them: .content.main. See CSS class selector.

But note that the Internet Explorer up to version 6 doesn’t support multiple class selectors and just honors the last class name.

Gumbo
I love you Gumbo!
alex
As long as that's 'up to' and not 'inclusive of' IE6 :)
alex
No, IE6 doesn't correctly understand chained CSS selectors. That rule will apply to *all* elements with class="main" regardless of whether they are class="content" too
Gareth
Damn IE6!!! ... well lucky I have dropped support for it. Let's make it a better web (if it's possible for you, I understand some people must still support IE6).
alex