只有在有2个类的情况下,才能用CSS来定位元素?

正如你可能已经知道的,你可能有多个由空格分隔的元素。

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

而使用CSS,您可以使用.content.main 。 当且仅当两个类都存在时,是否有一种方法来定位它?

 <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> 

我将使用哪个CSSselect器来获取第一个div (假设我不能使用.content:first-child或类似的)?

是的,只需连接它们: .content.main 。 请参阅CSS类select器 。

但请注意,版本6以前的Internet Explorer不支持多个类select器,只是表示最后一个类的名称。

只是为了它(我不build议你这样做),还有另一种方法来做到这一点:

 .content[class~="main"] {} 

要么:

 .main[class~="content"] {} 

参考: http : //www.w3.org/TR/CSS2/selector.html

E [foo〜=“warning”]匹配其“foo”属性值为空格分隔值列表的任何E元素,其中之一恰好等于“warning”

演示: http : //jsfiddle.net/eXrSg/

为什么这实际上是有用的(至lessIE6):

由于IE6不支持多个类,所以我们不能使用.content.main但是有一些像ie-7.js这样的javascript库可以启用属性select器,但是在涉及到多个类时似乎仍然失败。 我已经在IE6中testing了这个解决方法,使用属性select器的javascript,这是丑陋的,但它的工作原理。

我还没有find一个脚本,使IE6支持多个类select器,但发现许多启用属性select器。 如果有人知道一个工程 ,请给我留言,所以我可以摆脱这种解决方法。