一尘不染

如何在动态高度div中垂直居中放置文本?

html



Text



无论div元素有多高,我如何在h1标签内垂直居中放置h1标签?即如果用户更改他的浏览器高度,我希望h1根据新的高度在中心垂直对齐。

谢谢。


阅读 597

收藏
2020-05-10

共1个答案

一尘不染

我遇到过的最好的解决方案是利用display属性并将wrapper元素设置为,table以允许vertical- align:middle对元素的使用居中:

HTML

<body>
    <div>
        <h1>Text</h1>
    </div>
</body>

CSS

body {width: 100%; height: 100%;}   /* this is just to "view" the div height...*/

div {
    position:absolute; height:100%; width:100%;
    display: table;
}
h1 {
    display: table-cell;
    vertical-align: middle;
    text-align:center;
}

经过测试

Windows XP Professional 2002版Service Pack 3

  • Internet Explorer 8.0.6001.18702
  • 歌剧11.62
  • Firefox 3.6.16
  • Safari 5.1.2
  • 谷歌浏览器18.0.1025.168 m

Windows 7家庭版Service Pack 1

  • Internet Explorer 9.0.8112.164211C
  • 歌剧11.62
  • Firefox 12.0
  • Safari 5.1.4
  • 谷歌浏览器18.0.1025.168 m

Linux Ubuntu 12.04

  • Firefox 12.0
  • Chromium 18.0.1025.151(Developer Build 130497 Linux)
2020-05-10