浏览器默认按vertical-align:baseline对齐inline/inline-block元素,因各类元素基线位置不同(如img底边、input下划线处),即使高度相同也会视觉错位;flex布局中需用独立容器设display:flex且align-items:center,而非全局设置。

为什么同排元素高度不一就自动错位
不是你写错了,是浏览器默认按 vertical-align: baseline 对齐所有 inline 和 inline-block 元素。而 baseline 的位置取决于内容:文字有基线, 的 baseline 在图片底边, 的 baseline 在下划线处, 又可能因图标字体 font-size 不同偏移——哪怕都设了 height: 40px,视觉上也必然一高一低。
flex 布局是唯一稳解,但必须用对地方
别把整个 IE10 及以下不支持 flex?那就退回到 生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力:
- 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面;
- 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”;
- 提及位于 `apps/console/src/featur 常见错误是只给
真正难的不是“怎么让它们看起来对齐”,而是对齐后一旦嵌套、混用 或 display: flex,否则子项会跨行拉伸、Safari 下易塌陷。正确做法是: + 、 + )必须包进一个独立容器,如 display: flex; align-items: center;,不是 baseline,也不是 flex-start
margin-top 或 vertical-align,它们会和 flex 行为冲突flex: 0 0 120px 给 label,flex: 1 给 input,别用 width + float
兼容老浏览器时 vertical-align 还能用,但要全量统一
vertical-align 方案,但必须满足三个硬条件:
、、、、 全部显式声明 vertical-align: middle
line-height(或设为 line-height: normal),否则会干扰 baseline 计算box-sizing: border-box 已启用,且 font-size 一致(尤其 button 里用了 iconfont 时)font-size: 0 再单独恢复子元素字号图片/图标和文字并排时最易踩坑
加 vertical-align: middle,却忘了它和旁边文字是不同 font-size 的两个 inline 元素:
的 font-size 是 1em,文字却是 0.875rem → 图标视觉偏高padding,图标没设 height 或 line-height → 盒模型高度不一致white-space: nowrap 但文字含 word-break: break-all → 单行假设失效display: flex; align-items: center;,图标和文字各自作为 flex item,不再依赖 inline 对齐逻辑display 类型,或者加了 position: absolute、min-height、line-height 等任意一项,错位立刻重现。flex 容器能屏蔽大部分干扰,但它的作用域仅限于直接子元素——这点最容易被忽略。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










