核心知识
width、min-width 与 max-width
声明的尺寸还可能受到上下限约束;先确定最终尺寸,再计算内容区。
.card {
box-sizing: border-box;
width: 240px;
min-width: 260px;
max-width: 320px;
padding: 16px;
border: 4px solid teal;
}
这张卡片最终有多宽?
width: 240px 提出宽度;min-width: 260px 要求至少 260px。
max-width: 320px 给出上限,不要求宽度一定达到 320px。
边框盒:260px
内容区:260 − 32 − 8 = 220px
内容区:260 − 32 − 8 = 220px
这里是普通块布局,父容器足够宽,无滚动条。
尺寸变化:上限、下限与内容高度
若把 width 改为 400px,上限会把边框盒限制到 320px。若最小宽度比最大宽度还大,最小宽度约束优先,因此不能承诺“max-width 总能防止溢出”。
.notice {
box-sizing: border-box;
width: 100%;
max-width: 32rem;
min-height: 6rem;
}
这段规则适合随可用空间变化的通知:宽度不超过 32rem,高度至少 6rem;未固定 height 时,可以随文字增加而长高。rem 以根元素字号为基准。
展开完整代码与运行演示
<!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: 240px;
min-width: 260px;
max-width: 320px;
padding: 16px;
border: 4px solid teal;
}
</style>
</head>
<body>
<div class="card">黄梅戏分享会报名通知</div>
</body>
</html>