盒模型由content、padding、border、margin组成,推荐使用box-sizing: border-box以包含padding和border在宽高中,避免布局溢出。
在CSS中,盒模型是布局的核心概念之一。每个HTML元素都被视为一个矩形盒子,由内容(content)、内边距(padding)、边框(border)和外边距(margin)组成。理解盒模型的细节对精准控制页面布局至关重要。
每个盒子包含四个部分:
CSS默认使用 content-box 模式,即设置的 width 和 height 只包括 content 区域。一旦添加 padding 或 border,实际占用空间会更大,容易导致布局溢出。
推荐统一使用 border-bo
x:
*, *::before, *::after {
box-sizing: border-box;
}
垂直方向上的相邻元素 margin 有时会合并为一个 margin,取较大者。这种情况常出现在:
注意:只有普通文档流中的块级元素才会发生 margin 折叠,flex 和 grid 子项不会。
不同浏览器对某些元素(如 body、h1~h6、ul 等)设置了默认 margin 和 padding,可能干扰布局。
建议做法:
body, h1, h2, h3, p, ul, ol, li {
margin: 0;
padding: 0;
}
当元素 display 为 inline 或 inline-block 时,HTML 中的换行或空格会被渲染成小间隙。
解决方法包括:
基本上就这些。掌握这些注意点,能有效避免常见布局偏差。