只有在有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器。 如果有人知道一个工程 ,请给我留言,所以我可以摆脱这种解决方法。