一、选择器的特异度
1. #nav .list li a:link
2. .hd ul .links a
在 1 中,id 选择器有 1个(#nav),类与伪类共有 2个(.list 与 :link),元素与伪元素共有 2个(li 与 a)。所以在 1 中的特异度为 122。 在 2 中,id 选择器有 0个,类与伪类共有 2个(.hd 与 .links),元素与伪元素共有 2个(ul 与 a)。所以在 2 中的特异度为 22。 因为,在 1 中的特异度为 122 大于 在 2 中的特异度为 22 。 所以,在 2 中的选择器的优先级更高。
二、继承
某些属性会自动继承它父元素的计算值,除非显式指定一个值
- 显示继承:inherit 让原本不可继承的可以继承
- css中每个属性都有一个初始值。我们也可以使用 initial 这个关键字重置为初始值。
三、布局
- 布局是什么:确定内容的大学和位置的算法,依据元素、容器、兄弟节点和内容信息来计算
- 布局方式:
- 常规流(行级、块级表格布局、FlexBox、Grid布局)
- 浮动(文字环绕)
- 绝对定位
- 盒子模型(基础):把一切元素理解成一个一个的盒子,相当于一个容器,每个盒子content都有
高度(height)和宽度(width)。制定高度时,百分数才会生效宽度
padding:有四个方向,指定元素四个方向的内边距
边框border:三种属性四个方向
外边距margin:指定元素四个外边距
- 盒子模型的常见两种布局规则:块级(不和其他盒子并列摆放,适用所有的盒模型属性)、行级(和其他行级盒子一起放在一行或拆开成多行,盒模型中的width、height不适用)
行级排版上下文:只包含行级盒子的容器会创建一个IFC
IFC内的排版规则:
- 盒子在一行内水平摆放
- 一行放不下时,换行显示
- text-align决定一行内盒子的水平对齐
- vertical-align决定一个盒子在行内的垂直对齐
- 避开浮动(float)元素
块级排版上下文
某些容器会创建一个BFC:
- 根元素
- 浮动、绝对定
- 位、inline-blockFlex子项和Grid子项
- overflow值不是visible的块盒
- display:flow-root