多级选择器往往用于选择某个父元素下的某个特定子元素,比如:
.parent .child { /* 样式 */ }
这个选择器会选中class为child的元素,并且它必须是.parent下的子元素才会生效。多级选择器的优先级相对较低,无法击败下面的ID选择器。
ID选择器是选择一个页面元素的最简单方法,因为ID属性在页面中应该是唯一的。比如:
#header { /* 样式 */ }
这个选择器会选中id为header的元素,并且优先级非常高。如果相同的样式被多个选择器同时指定了,ID选择器将优先生效。
那么当多级选择器和ID选择器同时出现时,该如何计算优先级呢?
假设一个元素同时被以下两个选择器选中:
.parent .child { /* 样式A */ } #child { /* 样式B */ }
则样式B将优先生效,因为ID选择器的优先级比多级选择器高。如果想让样式A优先生效,可以将其改写成更具体的选择器,比如:
.parent #child { /* 样式A */ } #child { /* 样式B */ }
这样样式A就比样式B优先级高了。
总之,多级选择器和ID选择器都是常见的CSS选择器类型,需要时刻注意选择器的优先级,确保所写的样式生效。