CSS特殊性、继承与层叠是CSS样式表的基础知识,理解这些概念对赋予网页以不同的样式非常重要。下面是本题要求的完整攻略:
CSS特殊性
特殊性指的是选择器某个部分对样式表条目优先级的影响力。CSS规定了4个级别来计算特殊性,从左到右优先级依次降低:
- 内联样式(inline style)
- ID选择器
- 类选择器、属性选择器、伪类
- 标签选择器、伪元素
特殊性越高,表示该选择器影响样式的权重更大。当出现冲突时,特殊性高的选择器样式会覆盖特殊性低的选择器样式。
示例1:展示特殊性的运用
<style>
p { color: red; }
#myid { color: blue; }
.myclass { color: green; }
body p.myclass#myid { color: purple; }
</style>
<body>
<p>Color of this paragraph is red.</p>
<p id="myid">Color of this paragraph is blue.</p>
<p class="myclass">Color of this paragraph is green.</p>
<p class="myclass" id="myid">Color of this paragraph is purple.</p>
</body>
在此示例中,我们同时使用了标签选择器、ID选择器和类选择器来给不同的段落元素应用样式。样式规则定义在 <style>
标签中,四个段落元素顺次展示了四种不同特殊性的选择器所生效的样式,其中特殊性最高的样式中使用到了多个选择器,它的优先级会比特殊性只考虑ID选择器or类选择器高得多。
CSS继承
继承是CSS中一种非常有用的特性,允许子元素继承父元素的某些样式属性。不是所有的属性都可以被继承,只有一些被称为可继承属性(如color、font-size)的属性才可以由父元素继承给子元素。可继承属性会由父元素向下传递到所有后代元素,直到被某个儿子元素修改或覆盖。可继承属性是针对儿子元素的而不是父亲元素的,父亲元素本身默认不继承任何属性。
示例2:展示继承的运用
<style>
body { font-family: Arial; font-size: 16px; color: red; }
p { font-size: 2em; }
span { color: blue; }
</style>
<body>
<p>Text of this paragraph is red.</p>
<p><span>Text of this paragraph is blue.</span></p>
</body>
在此示例中,我们将文本颜色设置为了红色,应用到了 <body>
元素上。然后我们又设置了段落元素中文字的大小为的当前浏览器默认字体大小累加2倍的em单位。最后设置了一个内嵌span元素,并设置其文字颜色为蓝色。不同于父元素继承自<body>
的颜色定义于段落元素不同,内嵌span元素继承了其父级段落元素实现的继承!!
CSS层叠
层叠指的是规定不同样式规则在同一元素上的优先级顺序。例如一个元素同时使用到了类选择器和ID选择器,根据特殊性一定规则下层叠机制会确定哪一条样式会被选用,这个过程被称为样式层叠。
当样式层叠时,CSS会先处理特殊性、然后是源代码中的顺序。也就是说,在同等特殊性的选择器中,最后定义的样式规则将是被优先采用的。
示例3:展示层叠机制运用
<head>
<style>
p { color: green; }
p { color: red; }
</style>
</head>
<body>
<p>This paragraph will be red.</p>
</body>
在此示例中,两个相同选择器的样式规则被定义为 p { color: green; }
和 p { color: red; }
,最后浏览器会采用整个CSS样式表中最后一个规则 p { color: red; }
,因为它是最后被定义的。
总之,CSS的样式可在不同层面的元素上定义并继承,在这个过程中通过特殊性、继承和层叠机制确保了最终样式的展示方式。理解这些CSS基础知识是掌握CSS的第一步!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CSS特殊性、继承与层叠 - Python技术站