css盒子模型

117 阅读1分钟

页面中每个html元素都可以看成是一个由padding(内边距),border(边框),内容区content,margin(外边距)组成的盒子,这就是盒子模型

1.普通盒子模型

普通盒子模型默认属性box-sizing:content-box

  • width只包含内容的宽度,不包含padding,border
  • 设置width和height只会运用到内容区域
  • offsetWidth:元素在页面中实际占据的水平空间大小,offsetWidth=(width+padding+border),不包含margin

2.怪异盒子模型

怪异盒子模型默认属性box-sizing:border-box

  • width包含了padding+width+border
  • 此时offSetWidth与width相同
  • width和height包含了内容区,padding,border,也不含margin
  • 在想给元素设置执行宽高时十分好用

3.box-sizing属性

  • content-box:1
  • border-box:2
  • inherit:用于指定boxing-sizeing的值从父元素继承(父元素是border-box子就是)

4.margin

  • margin垂直方向会发生重叠,两个值不会叠加
  • margin-left和-top取负值元素往反方向移动
  • margin-right取负:右侧元素左移,自身不受影响
  • margin-bottom取负:下侧元素上移,自身不受影响

5.BFC块级格式化上下文

BFC是一块独立的渲染区域,内部元素的渲染不会影响外部元素

BFC的形成条件

  • float不为null
  • position为absolute或fixed
  • display 是 flex,inline-block,grid
  • overflow 不为 visible