select器是做什么的?

我无法弄清楚这是什么:

http://twitter.github.com/bootstrap/assets/css/bootstrap-1.2.0.min.css的第33行

.row [class^="span"] { display: inline; float: left; margin-left: 20px; } 

我了解风格,但我从来没有见过这种

 [class^="span"] 

这意味着一个以“span”开头的类,例如:

 <div class="spanning"></div> 

^符号取自正则expression式,其中此符号表示string的开头。

应该注意的是,这将检查类属性的开始,而不是类名的开始。 这意味着它不会匹配所说的select器:

 <div class="globe spanning"></div> 

上面的元素有两个类,第二个以“span”开始 – 但由于属性class以“globe”开始,而不是“span”,所以不匹配。

可以使用[class*=span] ,它将返回所有包含span的类,但是也会返回其他类,比如wingspan

AFAIK,获取以string开头的类的方法是使用双重select器:

 .row [class^="span"], .row [class*=" span"]{} 

这将返回以span开头的类,无论是在属性的开始还是在中间。

(我也记得在DOMParser使用的本土select器引擎中的解决scheme)。

这是一个属性select器,特别是CSS3子串匹配属性select器之一 。

此规则将样式应用于其class属性以span开头的任何元素( ^=表示“开始于”),这发生在具有类row任何元素中。

这是一个CSS属性select器。

看看http://www.w3.org/TR/css3-selectors/ (第2节)

E [foo ^ =“bar”]一个E元素,其“foo”属性值以string“bar”