css是什么?
级联样式表
css的结构
- 选择器:选择器用来选中页面中要调整样式的元素,可以是标签,类,id,属性等
- 属性:用来指定要增加的样式属性
- 属性值:用来给属性值进行相应设置
css引入方式
- 外部链接
<link ref="stylesheet" href="/aaa/bbb"></link>
- 内联
<style></style>
- 内部
<p style="aa=bb;"></p>
css工作方式
- 加载html
- 解析html
- 加载css同时创建dom树
- 解析css,将样式添加到dom树
- 展示页面
css选择器种类
- id选择器
- 类选择器
- 后代选择器
- 属性选择器
组合
- 直接组合 ab
- 后代组合a b
- 父子组合a>b
- 兄弟组合a~b
- 相邻选择器a+b
选择器特异度关联到选择器权重
继承
继承的含义就是一些元素会自动继承父元素的属性值,除非显示指定一个值
- 显示继承:通过给全局样式*添加样式,给html添加样式等,让其后代所有元素都附上该属性
初始值
- 每个css都有初始值,可以是none,可以是transparent
- 可以用initial显示指定为初始值
css求值过程
- 在解析好dom树和样式规则的前提下
- 第一步:筛选,进行样式规则筛选,选择器匹配,属性有效,符合当前media
- 第二步:多对一,首先一个属性值可能有多个声明值,根据选择器权重,权重高的在前,如果权重相似,那么后加载的css为最后的到的值
- 第三步:处理空值,如果没有设置相应属性的选择器的值,那么就赋值为继承值或初始值,最后保证得到的属性值一定不为空
- 第四步:规则化,将em,和百分数,小数转换为px整数值,最后得到实际应用值
布局
根据元素,容器,兄弟结点算出每个元素的位置空间