CSS盒模型

421 阅读2分钟

含义

盒模型是浏览器对文档布局(lay out)的渲染标准之一,所有元素被表示为一个个的矩形盒子。CSS决定了这些盒子的大小、位置、属性等样式

盒子的内容

每个盒子的内容由四部分组成,由外到内分别是

  • 外边距(margin)
  • 边框(border)
  • 内边距(padding)
  • 内容区域(content)

内、外边距的控制

内外边距可以通过以下属性控制

padding-top padding-right padding-left padding-bottom padding

margin-top margin-right margin-left margin-bottom margin

两种盒模型

CSS中的 box-sizing 属性,定义了浏览器应该如何计算一个元素的总宽度和总高度

该属性有两个值:

  • content-box (默认值)
  • border-box

两个值对应了两种不同的宽高计算方法

content-box 内容盒模型

默认值,标准盒子模型。 width 与 height 只包括内容的宽和高, 不包括边框(border),内边距(padding),外边距(margin)。注意: 内边距、边框和外边距都在这个盒子的外部。

width = 内容的宽度

height = 内容的高度

宽度和高度的计算值都不包含内容的边框(border)和内边距(padding)。

效果如图:

边框盒模型

width 和 height 属性包括内容,内边距和边框,但不包括外边距。这是当文档处于 Quirks模式 时Internet Explorer使用的盒模型。

width = border + padding + 内容的宽度

height = border + padding + 内容的高度

效果如图:

那如果内边距加内容宽度总和大于盒宽会怎么样?高度呢?

div {
  border: 140px solid yellow ;
  box-sizing: border-box ;
  width: 300px ;
}

效果如图:

左右border相加是280px 对于border盒子而言,当border宽高大于盒子的整体宽高时,实际宽高以border值为准。