
使用display: inline-block和vertical-align: middle无法实现多行文本垂直水平居中,其原因在于HTML规范中块级元素内部生成的匿名块级盒子(幽灵节点)。
浏览器会在块级元素(例如div)内为行内元素创建幽灵节点来分配空间。这个幽灵节点的line-height会继承父容器的line-height。
在示例代码中,.parent元素设置了line-height: 100px,导致幽灵节点的基线与.parent元素的基线对齐,而不是child元素的基线对齐。 vertical-align: middle需要child元素的line-height为normal才能生效,因为child元素被设置为display: inline-block,本质上仍然是块级元素。
解决方法:
Otter.ai
一个自动的会议记录和笔记工具,会议内容生成和实时转录
91 查看详情
移除或重置父元素的line-height: 避免父元素的line-height影响幽灵节点的基线。设置子元素的line-height为normal: 确保vertical-align: middle能够正确计算子元素的基线。确保完整的HTML结构: 完整HTML结构有助于浏览器正确解析和渲染元素。
修正后的CSS代码应如下所示,并注意移除不必要的meta标签,简化代码:
测试示例测试示例测试示例测试示例测试示例测试示例测试示例测试示例测试示例测试示例测试示例测试示例测试示例测试示例测试示例测试示例测试示例测试示例测试示例测试示例测试示例 .parent { height: 100px; background-color: aqua; text-align: center; } .child { color: #fff; background-color: blueviolet; vertical-align: middle; line-height: normal; display: inline-block; }
通过以上调整,可以更有效地实现多行文本的垂直水平居中。 需要注意的是,即使做了这些调整,如果文本内容过长,也可能无法完美居中,可能需要考虑其他布局方案。
以上就是使用display:inline-block和vertical-align:middle为何无法实现多行文本垂直水平居中?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1146229.html
微信扫一扫
支付宝扫一扫