max-width 是防止撑破容器的第一道防线,仅限制最大宽度而不强制变宽;需配合 width: 100% 才能实现随父容器缩放但有上限的效果,单独使用对默认 width: auto 的块级元素无效。
它不强制元素变宽,只说“再宽也不能超过这个值”——哪怕父容器有 2000px,max-width: 800px 的盒子也绝不会突破 800px。但很多人写了它却没效果,根本原因是没配 width: 100%。
width: auto(由内容撑开),此时 max-width 不会主动缩容,只在内容本身超限时起作用width: 100%; max-width: 800px;
img { width: 100%; max-width: 100%; height: auto; }漏掉 height: auto 会导致比例失真;漏掉 width: 100%,小图就不会放大table { max-width: 100% } 没用,得加 table-layout: fixed 和 td { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
它真正解决的不是“多小”,而是“小到什么程度用户还

min-width: 120px 就不是可选项,是交互刚需。
.sidebar { min-width: 200px; } 比靠 flex: 0 0 200px 更可靠,尤其在 flex 容器里input[type="text"] { min-width: 200px; } 比写死 width: 200px 更合理——大屏下仍可随父容器扩展min-width: 100vw:滚动条占空间,实际视口宽度
min-width 不解决内容溢出——文字不换行?还得配 word-break: break-word 或 overflow-wrap: break-word
写 min-width: 300px; max-width: 1200px; width: 100% 看似稳妥,但浏览器实际按 min-width ≤ width ≤ max-width 约束。一旦冲突,边界值优先;若 min-width > max-width,max-width 直接被忽略。
box-sizing: border-box:否则 padding 和 border 会额外加在 max-width 之外,导致实际宽度超标min-width 却没关收缩:flex-shrink: 0 缺失时,缩小视口仍可能被压缩到小于设定值.container { width: 100%; min-width: 320px; max-width: 1200px; margin: 0 auto; }注意:这里 width: 100% 是关键锚点,不是可删的“装饰”这两个属性看着简单,但生效与否取决于 display 类型、父容器约束、甚至是否在 grid/flex 里——很多“失效”其实是被其他规则覆盖或压制了。
min-width 显示为 0px 或未生效,大概率是父容器用了 display: flex 且没设 flex-wrap: wrap,或者自身 display 是 inline(不支持 min-width)@media (max-width: 768px) 和元素上的 max-width: 768px 字面一样,含义完全不同,别混用clamp():max-width: clamp(300px, 90vw, 1200px); 更健壮min-width 常被忽略——必须配合 table-layout: fixed 才能生效max-width 和 min-width 很少单独存在;它们的价值恰恰藏在组合逻辑、盒模型细节和上下文约束里——漏掉任何一个,都可能让“响应式”变成“偶尔响应式”。