核心知识
border-box:把内边距和边框算进 width
只改变 box-sizing,其他数值不变。声明的 300px 现在约束的是边框盒。
.card {
box-sizing: border-box;
width: 300px;
padding: 20px;
border: 5px solid teal;
}
仍作用于同一张 .card 活动卡片。
先固定外框,再向内扣除
边框盒宽度:300px
520250205
内容区:300 − 40 − 10 = 250px
margin 仍在边框之外。border-box 不等于“永远不会溢出”。
补充:常见的统一设置
*, *::before, *::after {
box-sizing: border-box;
}
* 匹配元素,后两项覆盖生成的伪元素。这是主动设置的页面规则,不是所有元素天然都使用 border-box。
展开完整代码与运行演示
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>黄梅戏分享会</title>
<style>
.card {
box-sizing: border-box;
width: 300px;
padding: 20px;
border: 5px solid teal;
}
</style>
</head>
<body>
<div class="card">黄梅戏分享会</div>
</body>
</html>