如果我有CSS定义;
.grid .data table tr.selected td [class^="icon-"], .grid .data table tr.selected td [class*=" icon-"] {
background-image: url("../img/css-sprites.png");
}
它如何正常工作?我的意思是如果满足条件(tr正在选择类,并且它有一个子td,其中任何子元素都有包含名称'icon - '的类)
我的问题是“to”将背景图像应用到哪个元素?
答案 0 :(得分:2)
css规则适用于与选择器匹配的每个元素。因此,具有以icon-
开头且具有指定父项的类名的每个元素都将获得该背景图像。
另请注意,有两个规则,以逗号分隔:
.grid .data table tr.selected td [class^="icon-"],
.grid .data table tr.selected td [class*=" icon-"]
多个选择器意味着一个或另一个需要匹配才能应用规则。
属性匹配选择器^=
表示“以...开头”。 *=
表示“包含”。请按照第一条评论的链接获取有关特定类型选择器的更多信息:css selector by class prefix(感谢BoltClock)。
答案 1 :(得分:0)
每个选择器中的最后一个元素都会收到后台网址[class*=" icon-"]
和[class^="icon-"]
答案 2 :(得分:0)
当我们使用,
(逗号)来指定选择器时,我们会说...this, this and this would have the same style
或换句话说,这些逗号分隔的元素将各自具有相同的指定样式,因此样式将应用于每个元素。
由于你的问题中的代码在元素之间没有逗号,所以你不断地定义彼此的子元素,所以你指定的最后一个子元素是td[class*='icon-]
所以所有tds都包含{{1字母将获得应用于它们的样式。
答案 3 :(得分:0)
在这种情况下,它将样式应用于class
的{{1}}元素,该icon-
的{{1}} child
td
是<tr class="selected">
的子元素
在逗号之后,"*="
部分定义其中包含"icon-"
和child
td
的任何类,并且您的相应树适用于样式