选择器[class ^ =“span”]做什么?

时间:2011-09-09 19:07:24

标签: css css3 twitter-bootstrap css-selectors

我无法理解这是什么:

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

3 个答案:

答案 0 :(得分:85)

这意味着以“span”开头的课程,例如:

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

^符号取自正则表达式,其中此符号表示字符串的开头。

应该注意,这会检查class属性的开头,而不是classname的开头。这意味着它与所述选择器不匹配:

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

上面的元素有两个类,第二个以“span”开头 - 但由于属性class以“globe”开头,而不是“span”,因此它不匹配。

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

AFAIK,获取以字符串开头的类的方法是使用双选择器:

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

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

(我还记得在DOMParser使用的本土选择器引擎的解决方案中工作)。

答案 1 :(得分:37)

这是一个属性选择器,特别是CSS3 substring-matching attribute selectors之一。

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

答案 2 :(得分:4)

这是一个CSS属性选择器。

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

  

E [foo ^ =“bar”]一个E元素,其“foo”属性值正好开始   用字符串“bar”