CSS中宽高无效最常见原因是display类型不支持:inline、table-cell、table-row等不支持width/height;修复需改display为block/inline-block/flex/grid,或调整flex属性及检查overflow、box-sizing等干扰因素。
CSS中设置宽高无效,最常见的原因是元素的 display 类型不支持宽高定义。不是所有 display 值都允许 width/height 生效。
以下 display 类型默认忽略 width 和 height(除非显式改变 box-sizing 或配合其他属性):
flex-shrink:
0 或 flex-basis,也可能“无视” height打开浏览器开发者工具,选中元素,查看 Computed 面板里的 display 实际值,并观察 width/height 是否被划掉(表示被覆盖或不生效)。
display: inline → 改为 inline-block、block 或 flex
display: table + 自定义容器,或改用 flex/gridalign-items: stretch(默认),可加 align-self: flex-start 或明确设 height 并配 flex-shrink: 0
即使 display 正确,以下情况也会导致宽高“看似无效”:
overflow: hidden 且子元素溢出被裁剪,误以为没设高min-height / max-height 覆盖了 heightbox-sizing: border-box 但 padding/border 较大,视觉上“撑不开”临时加一行调试样式:
outline: 2px solid red;
它不受 box-sizing 影响,能真实反映元素渲染后的尺寸范围,帮你判断是“没生效”还是“被遮挡/压缩”。