你能解释一下css之间a .someclass
的区别吗?.someclass a
或者类似的东西,img .someclass
和.someclass img
?
6 回答
a .someclass
选择具有“someclass”类的任何(“a”标签的后代)
<a href="#example">
<span class="someclass">...</span>
</a>
尽管
.someclass a
选择作为“a”标签的任何(具有“someclass”类的标签的后代)。
<div class="someclass">
<a href="...">...</a>
</div>
和
a.someclass /* Note absence of spaces */
选择任何具有“someclass”类的“a”标签。
<a href="..." class="someclass">...</a>
这是一个后代选择器
a .someclass
someclass
与锚元素内的类的元素匹配:
<a href="#example">
<span class="someclass">...</span><!-- this one is matched -->
</a>
.someclass a
匹配位于具有以下类别的元素内的锚点someclass
:
<span class="someclass">
<a href="#example">...</a><!-- this one is matched -->
</span>
将其视为向下移动通过 dom 树时的操作顺序。例如,a .someclass /* space in between */
将应用于以下内容:
<a href="">
<span class="someclass"></span>
</a>
而.someclass a /* space in between */
将应用于以下内容:
<div class="someclass">
<a href=""></a>
</div>
a .someclass
将匹配这个跨度:
<a><span class="someclass"></span></a>
--
.someclass a
将匹配这个跨度:
<a class="someclass"><span></span></a>
--
或类似的东西,img .someclass 和 .someclass img?
a
见上文,但将标签换成img
标签
a.first 将选择类为 first** 的任何标签 .first a 将选择类为“first”的元素的子元素的任何标签
不同之处在于应用的顺序。当有一个以空格分隔的选择器列表时,表示父子关系,前一个选择器为父,后一个选择器为子。如果有超过 2 个选择器,这将继续沿链向下。
当你使用
img .className { /* style rules */ }
它将查找具有class="className"
并嵌套在图像标签内的所有元素。(所有.className
这些都是 的孩子img
)
但是,当您使用
.className img { /* style rules */ }
它将查找嵌套在带有class="className"
. (所有img
这些都是 的孩子.className
)