自适应 词条目录
前端Wiki/自适应/基础/相对单位

百分比 calc 与 clamp

百分比相对父元素,适合做流式宽度;calc() 可以把不同单位混算(如 100% - 40px);clamp() 则给相对单位设上下限,是目前最实用的自适应函数之一。

三者常组合:width: clamp(280px, 90%, 960px) 表示“宽度 90%,但不少于 280px、不超过 960px”,一行代码替代多条媒体查询。

  • 百分比相对父级,calc 可混合单位运算
  • clamp(最小, 首选, 最大):一行实现“弹性 + 限幅”
  • 运算符两边必须留空格:calc(100% - 20px) ✓,calc(100%-20px) ✗
CSS
/* 容器:宽度 90%,限幅 280~960px */
.wrap { width: clamp(280px, 90%, 960px); margin: 0 auto; }

/* 侧边栏固定 + 主栏自适应 */
.layout { display: flex; gap: 16px; }
.layout .side { width: 240px; flex: none; }
.layout .main { width: calc(100% - 256px); }

/* 字号也 clamp:小屏 14px,大屏 18px,中间流畅变化 */
h1 { font-size: clamp(1.25rem, 4vw, 2rem); }

/* 响应式正方形:padding-top 百分比相对宽度 */
.ratio-box { width: 100%; padding-top: 56.25%; position: relative; }
.ratio-box iframe { position: absolute; inset: 0; width: 100%; height: 100%; }
本节要点clamp(最小,首选,最大) 是自适应万金油;百分比相对父级,calc 用来做“减法”。
🔗 相关词条CSS弹性布局CSS3