贝利信息

css width 和 height 不生效怎么办_盒模型属性影响解析

日期:2026-01-23 00:00 / 作者:P粉602998670
width 和 height 不失效,而是受 box-sizing(默认 content-box)、display 类型(如 inline 元素不支持)、flex/grid 布局(如 flex-shrink)及父容器高度塌陷等因素影响。

width 和 height 被 padding 或 border 吃掉了

默认 box-sizingcontent-box,这意味着你写的 width: 200px 只算内容区宽度,加上 paddingborder 后,元素实际占位会更大。浏览器没“不生效”,只是你没算进去。

display 类型不支持 width/height

行内元素(如 spanastrong

)默认无视 widthheight,这是规范行为,不是 bug。

父容器约束或 flex/grid 布局干扰

flexgrid 容器里,子项的 widthheight 可能被 flex-growmin-widthalign-items 等覆盖,尤其当没显式设 flex-shrink: 0 时。

height 在块级元素中“看起来”不生效

纯文本内容的块级元素(如空 div 或只含换行符的 p),设 height 会生效,但若内部没有内容撑开、又没设 min-heightoverflow,可能视觉上“看不见变化”。更常见的是子元素浮动或绝对定位导致父容器高度塌陷。

CSS 的 widthheight 从不“失效”,只是它们的行为严格绑定在盒模型、显示类型和布局上下文里。最容易忽略的是 box-sizing 默认值和 flex 子项的收缩特性 —— 这两个点不排查,光调数值没用。