day3——深入CSS | 青训营

69 阅读2分钟

CSS选择器的特异度(优先级)

优先级高的选择器设置的样式会覆盖优先级低的样式 image.png

CSS的继承

和文字相关的属性可以继承,和盒子相关的属性无法继承

显式继承

使盒子相关的属性可以继承 通过*选择器指定特定继承的属性为属性初始值,使属性可继承

CSS求值过程解析

image.png

CSS布局方式及相关技术

盒子模型

默认指定的宽高是content box的高度

margin、padding:设置百分数,相对于容器的宽度

margin: auto 水平居中

margin定义元素垂直边距时,会出现外边距的合并

(1) 相邻块元素垂直外边距合并——边距为大的那个,尽量只指定一个

(2) 嵌套块元素垂直外边距塌陷——给子元素指定上边距,父元素会塌陷较大边距

解决方案:

     给父元素加边框隔离(可透明)
     父元素指定内边距
     给父元素加overflow: hidden

布局技术

常规流

  1. 行级

一行可以有多个,没有宽高

行级排版上下文(IFC):

盒子在一行内水平摆放

一行放不下换行显示

text-align决定一行内盒子的水平对齐

vertical-align决定一个盒子在行内的垂直对齐

避开浮动元素(float)

  1. 块级

单独占一行,适用所有盒子属性

块级排版上下文(BFC):

盒子从上到下摆放

垂直margin合并

BFC内盒子的margin不会和外面的合并

BFC不会和浮动元素重叠

  1. 表格布局
  2. FlexBox

控制子盒子的:摆放流向、顺序、盒子宽高、水平垂直对齐、折行

  1. Grid布局

浮动

(1)浮动元素会脱离标准流——脱标,盒子不再保留原先的位置

(2)如果多个盒子都设置了浮动,则他们按照属性值一行内显示并且顶端对齐排列

(3)浮动元素具有行内块元素的特点

绝对定位

相对于祖先元素来说

特点:如果没有祖先元素或父元素没有定位,则以浏览器为准定位

祖先元素有定位,以最近一个有定位的祖先位置为参考

不占有原先的位置,脱标

绝对定位盒子的水平居中:

无法通过auto完成

方法:left:50%

margin:负值,盒子宽度的一半

子绝父相:绝对定位和相对定位的使用场景 子级使用绝对定位,父级使用相对定位