简述 CSS 盒模型

136 阅读1分钟

CSS盒模型理解

CSS 盒模型是CSS最核心的基础知识,理解了这个重要的概念才能更好的排版,才能对页面更好的布局。

1. CSS盒模型模型概念

CSS盒模型包括content(元素内容)、padding(内边距)、border(边框)和margin(外边距)。

image.png

CSS盒模型有两种: content-box :内容盒 - 内容就是盒子的边界 border-box :边框盒 - 边框才是盒子的边界

公式: content-box width = 内容宽度 border-box width = 内容宽度 + padding + border

对比如下

image.png

内容区域 content area ,由内容边界限制,容纳着元素的“真实”内容,例如文本、图像或是视频。

内边距区域 padding area ,由内边距边界限制,扩展自内容,负责延伸内容区域的背景,填充内容与边框的间距。

边框区域 border area ,由边框边界限制,扩展自内边距,是容纳边框的区域。

外边距区域 margin area 由外边距边界限制,用空白扩展边框,以分开相邻的元素。

外边距合并

两个相邻元素在上下方向的外边距可能会合并为单个边距。而合并后的边距以最大值为准

  • 哪些情况会合并

    父子合并 —— 即无隔开情况下(无border、padding、行内内容、清除浮动等)

    兄弟合并 —— 即同层相邻元素之间外边距重叠

  • 怎么阻止合并

    兄弟合并是符合预期的,但可以用display:inline-block;消除(width=100%)

    父子合并可以:给父元素添加padding/border;添加overflow:hidden;用display:flex;

注意: 外边距合并只发生在垂直方向,水平方向不合并!