Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
470 views
in Technique[技术] by (71.8m points)

css - What does the selector [class^="span"] do?

I can't work out what this is:

Line 33 of http://twitter.github.com/bootstrap/assets/css/bootstrap-1.2.0.min.css

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

I understand the style but I've never seen this before

[class^="span"]
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

This means a class beginning with the word "span", such as:

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

The ^ symbol is taken from regular expressions, wherein this symbol refers to the beginning of a string.

It should be noted that this checks for the beginning of the class attribute, not the beginning of the classname. Which means it will not match said selector:

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

The above element has two classes, the second of which begins with "span" - but since the attribute class begins with "globe", not with "span", it will not match.

One could use [class*=span], which would return all classes containing span, but that would also return other classes, such as wingspan.

AFAIK, the way to get classes that begin with a string are to use a double selector:

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

This will return the class beginning with span, whether at the beginning of the attribute, or in the middle.

(I also recall working in a solution in the homegrown selector engines used by DOMParser).


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...