html - 如何垂直对齐 div 中的元素?

我有一个带有两个图像和一个 h1div。所有这些都需要在 div 内垂直对齐,彼此相邻。其中一张图片需要 absolute 定位在 div 内。

在所有常见浏览器上都需要什么 CSS?

<div id="header">
  <img src=".." ></img>
  <h1>testing...</h1>
  <img src="..."></img>
</div>

最佳答案

哇,这个问题很受欢迎。这是基于对 vertical-align 属性的误解。这篇优秀的文章解释了它:

Understanding vertical-align, or "How (Not) To Vertically Center Content"作者:Gavin Kistner。

“How to center in CSS” 是一个很棒的网络工具,它有助于为不同的情况找到必要的 CSS 居中属性。


简而言之(并防止链接失效):

  • 内联元素(和内联元素)可以通过vertical-align: middle在其上下文中垂直对齐。但是,“上下文”并不是整个父容器的高度,而是它们所在的文本行的高度。jsfiddle example
  • 对于 block 元素,垂直对齐更难,很大程度上取决于具体情况:
    • 如果内部元素可以有一个固定高度,你可以将它的位置设为absolute并指定它的height,margin- toptop 位置。 jsfiddle example
    • 如果居中元素由单行组成 并且 它的父级高度是固定的你可以简单地设置容器的line- height 填充其高度。根据我的经验,这种方法非常通用。 jsfiddle example
    • ……还有更多这样的特殊情况。

https://stackoverflow.com/questions/79461/

相关文章:

javascript - 如何使用 .css() 应用 !important?

html - 为什么不在 HTML 中使用表格进行布局?

html - 默认情况下如何选择单选按钮?

html - 有没有办法改变输入类型 ="date"格式?

html - 从 IFrame 中删除边框

html - Zalgo 文本如何工作?

html - 如何将我的 div 放在其容器的底部?

javascript - 将 HTML Canvas 捕获为 gif/jpg/png/pdf?

html - 如何在 pre 标签中换行?

html - HTML中id和name属性的区别