一个元素的样式,可以通过多种方式来定义,而多种定义方式之间通过复杂的影响关系决定了元素的最终样式。这种复杂既造就了CSS的强大,也导致CSS显得如此“混乱”而且难以调试。
对于层叠来说,共有三种主要的样式来源:
- 浏览器对HTML定义的默认样式
- 用户定义的样式
- 开发者定义的样式,可以有三种形式:
- 定义在外部文件(外链样式:CSS文件)
- 在页面的头部定义(内联样式:style标签里面的CSS)
- 定义在特定的元素身上(行内样式:写在标签上的CSS)
继承
先看一个例子:
css代码:
strong{color: red; } /*子节点*/
p{color: blue; text-decoration: underline;}
html代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS继承</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<p>
<strong>C</strong>ascadin
<strong>S</strong>tyle
<strong>S</strong>heets
</p>
</body>
</html>
效果:
对于层叠的优先级从高到低:网页开发者定义的样式、网页阅读者定义的样式、浏览器的默认样式。
对于继承的元素来说:子元素自身的样式优先级高于从父级继承来的样式