《CSS 盒模型详解:行盒与块盒的奥秘》

179 阅读1分钟

什么是盒模型

box:盒子,每个元素在页面中都会生成一个矩形区域(盒子)

盒子分裂

  • 行盒,display等于inline的元素
  • 块盒,display等于block的元素

行盒在页面中不换行,块盒在页面中独占一行(display默认属性是inline)

浏览器默认样式中设置为block的属性元素:容器元素(div、header、article...),文字元素(h1~h6),p

浏览器样式默认设置为inline的属性元素:span、a、img、video、audio

盒子组成部分

无论行盒还是快盒,都由以下四个部分组成,由内到外:

  • 内容: content;width、height 这两个css值设置的是盒子内容的宽高。 内容部分通常叫做整个盒子的 内容盒content box
  • 填充: padding;盒子的边框到盒子内容的距离,padding-left、padding-right、padding-top、padding-bottom可以设置边距。 填充区+内容区 = 填充盒(padding box)
  • 边框: border 边框样式(border-style)+边框宽度(border-width)+边框颜色(border-color) 边框区 + 填充区+内容区 = 边框盒(border box)
  • 外边距: margin 边框到其他盒子的距离

行盒模型

行盒有以下特点:

  • 盒子沿着内容延伸,行盒的宽度可以默认就是内容区的宽度。行盒的没法设置宽高,只能通过一些渐接的手段处理,比如字体大小。
  • 填充区,水平有效,垂直区域只会影响背景,不会实际占据空间
  • 边框区和填充区一样
  • 外边距也和填充区一样