面试题答案
一键面试标准盒模型(content-box)
- width 和 height 设置规则:在标准盒模型中,
width
和height
仅指定内容区域(content)的宽度和高度。也就是说,元素的实际宽度和高度计算方式为width + padding + border + margin
。例如,当设置width: 100px; padding: 10px; border: 1px solid black; margin: 5px;
时,元素在页面上占据的水平空间为100px(width) + 2 * 10px(padding) + 2 * 1px(border) + 2 * 5px(margin) = 132px
。
怪异盒模型(border-box)
- width 和 height 设置规则:在怪异盒模型(
border-box
)下,width
和height
包括了内容区域(content)、内边距(padding)和边框(border)的宽度和高度。即元素的实际宽度和高度就是设置的width
和height
值,不会再额外加上padding
和border
的宽度。例如,同样设置width: 100px; padding: 10px; border: 1px solid black; margin: 5px;
时,元素在页面上占据的水平空间为100px(width 已包含 padding 和 border) + 2 * 5px(margin) = 110px
。
通过 CSS 代码切换两种盒模型
- 标准盒模型:浏览器默认使用标准盒模型,无需额外设置。例如:
div {
width: 100px;
height: 100px;
padding: 10px;
border: 1px solid black;
margin: 5px;
}
- 怪异盒模型:通过设置
box-sizing: border-box;
来切换为怪异盒模型。例如:
div {
box-sizing: border-box;
width: 100px;
height: 100px;
padding: 10px;
border: 1px solid black;
margin: 5px;
}
也可以通过对 *
选择器设置 box-sizing
来全局应用怪异盒模型:
* {
box-sizing: border-box;
}
这样页面上所有元素(除了明确设置了其他 box-sizing
值的元素)都将使用怪异盒模型。