居中失效主因是上下文错配:text-align: center仅作用于块级父容器内的行内子元素,若父容器为flex/grid/absolute或img被设为block且未配margin: 0 auto,或父容器宽度塌缩,则均会失效。

居中失效不是 CSS 写错了,而是上下文没搭对——90% 的问题出在 display 行为、父容器状态或元素脱离文档流上。
text-align: center 为什么对 div 或 img 没反应
这个属性只作用于块级父容器内的行内级子元素, 这个组合不是“写了就居中”,它需要三个条件同时满足:元素是块级、有明确宽度、父容器是常规文档流(非 flex/grid/absolute)。 这不是漏写,而是父容器没通过“flex 启动三要素”校验:必须同时具备 这个属性只控制子元素在网格单元内的整体位置,不影响子元素内部的内容排版。它对 真正卡住人的地方,往往不是不知道某个属性,而是没意识到:浏览器渲染居中效果的前提,是先能准确测量容器和元素的尺寸与流式上下文。一旦 display、position 或 float 打乱了这个前提,再写十遍 text-align: center 写在 或
内的文字有效。
display: flex、display: grid、float 或 position: absolute —— 这些会让 text-align 静默失效 默认是 inline,所以 text-align: center 在父 加了 display: block,又没配 margin: 0 auto,就会看起来“失效”
0px,text-align 就失去作用基准
margin: 0 auto 居中不生效的硬性条件
display: block(、、 默认都不是)width: 300px 可行,max-width: 100% 不行,width: auto 在无内容时也常算不出值display: flex 或 display: grid —— 它们会接管 margin 行为,直接忽略 auto
float 或 position: absolute,否则父容器可能塌陷,导致“没空间可分”Flex 布局 justify-content: center 看似写了却不居中
display: flex、justify-content: center、以及一个**可计算的主轴尺寸**(通常是宽度)。
width: 100% 但外层没有高度约束(比如 body 没设 min-height),某些旧版 WebView 会按 0px 渲染,导致对齐不可见align-items: center 要求父容器有明确高度参照(height 或 min-height),否则垂直方向“无空间可居中” 自身若加了 float: left 或 position: absolute,它已脱离 flex 流,整个对齐逻辑自动跳过 上直接设 display: flex,会把所有直系子元素(如多个 )都变成 flex item,布局全乱Grid 的 place-items: center 为什么像没起作用
居中,但不会让 里的换行文字也居中。
display: grid(不是 inline-grid),且子元素没被 place-self 或 grid-area 覆盖width: 100% 或 max-width: 100%,它会撑满容器,视觉上像没居中place-items: center 不替代 text-align: center —— 前者管盒子定位,后者管文字对齐,二者必须配合使用max-width: 60ch + margin: 0.5rem auto 1rem 比单纯 place-items 更稳,尤其对多行段落center 也没用。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











