CSS选择器的特异度(优先级)
优先级高的选择器设置的样式会覆盖优先级低的样式
CSS的继承
和文字相关的属性可以继承,和盒子相关的属性无法继承
显式继承
使盒子相关的属性可以继承 通过*选择器指定特定继承的属性为属性初始值,使属性可继承
CSS求值过程解析
CSS布局方式及相关技术
盒子模型
默认指定的宽高是content box的高度
margin、padding:设置百分数,相对于容器的宽度
margin: auto 水平居中
margin定义元素垂直边距时,会出现外边距的合并
(1) 相邻块元素垂直外边距合并——边距为大的那个,尽量只指定一个
(2) 嵌套块元素垂直外边距塌陷——给子元素指定上边距,父元素会塌陷较大边距
解决方案:
给父元素加边框隔离(可透明)
父元素指定内边距
给父元素加overflow: hidden
布局技术
常规流
- 行级
一行可以有多个,没有宽高
行级排版上下文(IFC):
盒子在一行内水平摆放
一行放不下换行显示
text-align决定一行内盒子的水平对齐
vertical-align决定一个盒子在行内的垂直对齐
避开浮动元素(float)
- 块级
单独占一行,适用所有盒子属性
块级排版上下文(BFC):
盒子从上到下摆放
垂直margin合并
BFC内盒子的margin不会和外面的合并
BFC不会和浮动元素重叠
- 表格布局
- FlexBox
控制子盒子的:摆放流向、顺序、盒子宽高、水平垂直对齐、折行
- Grid布局
浮动
(1)浮动元素会脱离标准流——脱标,盒子不再保留原先的位置
(2)如果多个盒子都设置了浮动,则他们按照属性值一行内显示并且顶端对齐排列
(3)浮动元素具有行内块元素的特点
绝对定位
相对于祖先元素来说
特点:如果没有祖先元素或父元素没有定位,则以浏览器为准定位
祖先元素有定位,以最近一个有定位的祖先位置为参考
不占有原先的位置,脱标
绝对定位盒子的水平居中:
无法通过auto完成
方法:left:50%
margin:负值,盒子宽度的一半
子绝父相:绝对定位和相对定位的使用场景 子级使用绝对定位,父级使用相对定位