css - 为什么元素的垂直对齐会影响其兄弟元素的对齐?

标签 css vertical-alignment

  <div class="bordered"  style="height: 300px; text-align: center">
        <div class="bordered inline-blocked" style="height: 100px; vertical-align: middle">XXX</div>
        <div class="bordered inline-blocked" style="height: 200px; vertical-align: middle">YYY</div>
    </div>

Div XXX 和 YYY 相对于彼此垂直居中,即它们位于水平线上,但相对于容器不垂直居中。这就是我想要的。

现在问题:

如果我更改两个垂直对齐属性之一,就会发生奇怪的事情。

  1. 我删除了 XXX 垂直对齐属性。结果:XXX 向下移动并与空位置对齐。 YYY 保持不变。
  2. 我将 YYY 垂直对齐属性设置为“顶部”。 YYY 保持在原来的位置,XXX 与 YYY 的顶部对齐,尽管它自己的值仍然是“中间”。
  3. 我将 YYY 垂直对齐属性设置为“底部”。 YYY 保持在原来的位置,XXX 与 YYY 的底部对齐,尽管它自己的值仍然是“中间”。

我一直认为,当一行中有多个内联元素时,它们会形成一行内联框,并且所有垂直对齐值都是相对于该框应用的,即内联框由 v-a 属性垂直定位,而不是在内部它的父级,但在父级内的行内框行内,即在其 sibling 行内。

因此,如果我将 XXX 属性设置为“middle”,将 YYY 设置为“bottom”,那么它应该与将它们都设置为 middle 的情况完全相同,因为假想的内联框的大小和位置并不相同。改变。但实际上,如果它们都没有垂直对齐到中间,我就无法将这些框垂直居中。

您能解释一下这个简单示例中发生了什么吗?

我无法理解的另一件事是此示例中的定位如何受到 line-height 属性的影响。

答案:

Unfortunately, vertical-align: middle will not align the inline element to the middle of the largest element on the line (as you would expect). Instead, a value of middle will cause the element to be aligned with the middle of a hypothetical lower-case “x” (also called the “x-height”). So, it seems to me that this value should actually be called “text-middle” to correctly identify what it does. Blockquote

来自 http://www.impressivewebs.com/css-vertical-align/ ,感谢 prashbrains911

建议:

如果搞乱了垂直对齐,请在容器中添加一些文本 - 它将显示用于对齐的基线。

最佳答案

http://www.impressivewebs.com/css-vertical-align/

http://css-tricks.com/what-is-vertical-align/

尝试阅读一些相关文章。很难描述其中的细微差别,这些文章有一些漂亮的视觉效果。或者你可以尝试用谷歌搜索它。

关于css - 为什么元素的垂直对齐会影响其兄弟元素的对齐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11465070/

相关文章:

css - 元素符号在 Chrome/Safari 中不垂直居中

html - 如何使div中的文本垂直居中?

html - 垂直对齐列表中较大元素符号的文本

javascript - 使用 php artisan serve 无法在公共(public)文件夹中加载任何 js/css?

mysql - mysql的长文本错误

css - 在中心重叠图像 [css]

html - div 未与顶部对齐

html - 在 CSS 中,如何制作一条垂直居中的线,它占据 block 元素后剩余的水平空间?

html - 从数组中拉取数据到 <div>

html - `:after` - 伪类不适用于 `input` 元素