设置宽高前须确认盒模型类型,box-sizing默认为content-box(width/height仅内容区),border-box更直观;行内元素需改display才生效;百分比宽高依赖父容器尺寸;min/max属性会覆盖宽高设置。
设置宽高前,必须先确认元素使用的盒模型类型,否则实际尺寸会和预期不一致。
默认情况下,元素使用 content-box 模型:设置的
width/height 仅指内容区大小,padding 和 border 会额外增加总尺寸。例如:
width: 200px; padding: 10px; border: 1px solid; → 实际占用宽度为 222px。
改用 border-box 后,width/height 包含 content + padding + border,更符合直观理解:
*, *::before, *::after { box-sizing: border-box; }
像 、 这类默认 display: inline 的元素,设置 width/height 无效(除非改变 display 类型)。
display: inline-block 或 display: block
width/height 设为百分比时,其计算基准不同:
即使设置了 width/height,min-width、max-height 等仍可能覆盖或限制它。
width: 100px; max-width: 80px; → 最终宽度是 80px