<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>影响盒子大小的因素</title>
<style>
:root {
font-size: 10px;
}
.box {
/* 宽 */
width: 20em;
/* 高 */
height: 15em;
/* 背景色 */
background-color: violet;
}
/* 给盒子添加padding(内边距),border(边框) */
.box {
padding: 1em;
border: 2px solid;
/* 将背景色裁切到内容区,让padding可视化 */
background-clip: content-box;
}
/* 盒大尺寸的计算公式: width/height + padding*2 + border*2 */
/* 宽度: 200 + 10*2 + 2*2 = 224px */
/* 高度: 150 + 10*2 + 2*2 = 174px */
/* 大家考虑一下,这种计算方式是否直观,方便? */
/* width: 200px; height: 150px; 站在用户角度是希望这个值是一个固定的值 */
/* 使盒子大小不受width/height之外属性的影响(不受padding,border影响) */
/* 这个问题曾经困扰了前端界很久,有一个非常笨的解决方案 */
/* 既然padding和border是后加的,所以减去就完了 */
/* .box {
width: calc(20em - 24px);
height: calc(15em - 24px);
} */
/* 当越来越多的程序员这么干,css标准制定者w3c妥协了,提供了新属性来解决这个问题 */
/* box-sizing: 让用记决定计算盒子大小的方式(要不要将padding,border计算在内) */
.box {
/* 将border,padding计算在内 */
/* box-sizing: border-box; */
/* 将border,padding不计算在内 */
box-sizing: content-box;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>