CSS 中的垂直对齐文本

新手上路,请多包涵

我有一些 非常 基本的 HTML 和 CSS:

 header {
  vertical-align: middle;
  height: 60px;
  background-color: #00F;
}
 <!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <link rel="stylesheet" media="all" href="stylesheet.css">
  <title>Hello, World!</title>
</head>
<body>
  <header>
    Hello<sup>World</sup>
  </header>
</body>
</html>

但是文本没有在中间对齐。为什么不?

原文由 ryyst 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 291
2 个回答

vertical-align 属性仅适用于:

行内级和“表格单元格”元素

请参阅 此链接

您可以使用 line-height 使文本垂直居中,只需使其大于实际的 font-size ,但仅当文本跨越单行时才有效。

或者,您可以将 padding 按相等的值添加到 header 元素的顶部和底部。

根据评论编辑:如果使用 HTML5 header 元素,显而易见的解决方案是使其成为 display: table-cell; 而不是我认为重置 CSS 应用的默认块。

原文由 clairesuzy 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题