html – 为什么这个内联块元素的内容不是垂直对齐的

html – 为什么这个内联块元素的内容不是垂直对齐的,第1张

概述来了一个奇怪的CSS问题。有人可以解释为什么包含内容的框不是垂直对齐的吗? 如果您将文本放在span中,并使用.divPutTextToFixIssue类 – 它会正确对齐。 http://jsfiddle.net/KgqJS/88/ <div id="divBottomHeader"> <div class="divAccountPicker"> <span class=" 来了一个奇怪的CSS问题。有人可以解释为什么包含内容的框不是垂直对齐的吗?

如果您将文本放在span中,并使用.divPutTextToFixIssue类 – 它会正确对齐。

http://jsfiddle.net/KgqJS/88/

<div ID="divBottomheader">    <div >       <span ><span>                     </div>    <div >        <span>Balance: 5</span>    </div></div>​
#divBottomheader {    background-color: #d5dbe0;    height: 43px;}.divAccountPicker {    display: inline-block;    background: blue;                wIDth: 200px;    height: 40px;}.divAccountData {    display: inline-block;    background: red;    wIDth: 400px;    height: 40px;}​
解决方法 默认的 vertical-align值是基线

Aligns the baseline of the Box with the baseline of the parent Box

注意:您可以通过向.divAccountData选择器添加vertical-align:baseline来查看此默认值。由于基线是默认值,所以对齐方式不变。

您需要将其更改为顶部以对齐顶部的块,例如:

.divAccountData {    display: inline-block;    background: red;    wIDth: 400px;    height: 40px;    vertical-align: top;}

Baseline定义为

the line upon which most letters “sit” and below which descenders extend

为了解决为什么添加文本似乎解决了这个问题,是因为

The baseline of an ‘inline-block’ is the baseline of its last line Box in the normal flow,unless it has either no in-flow line Boxes or if its ‘overflow’ property has a computed value other than ‘visible’,in which case the baseline is the bottom margin edge.

从CSS2 Visual formatting model details

所以添加一个字符会改变基线,导致第二个块出现在相同的垂直对齐方式。这仅在两个块都包含相同数量的行时才起作用。尝试向其中一个块添加更多的单词,您将看到没有强制垂直对齐:第二个块的顶部将根据第一个块中存在多少行文本而移动。

编辑:找到相关问题Why is this inline-block element pushed downward?

总结

以上是内存溢出为你收集整理的html – 为什么这个内联块元素的内容不是垂直对齐的全部内容,希望文章能够帮你解决html – 为什么这个内联块元素的内容不是垂直对齐的所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1116031.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存