如何为所有浏览器垂直居中div?

如何为所有浏览器垂直居中div?

我想div用CSS垂直居中。我不想要表或JavaScript,只需要纯CSS。我找到了一些解决方案,但所有这些解决方案都缺少Internet Explorer 6支持。

<body>
    <div>Div to be aligned vertically</div></body>

如何div在所有主流浏览器(包括Internet Explorer 6)中垂直居中?


白板的微信
浏览 950回答 4
4回答

智慧大石

下面是我可以构建的最佳全方位解决方案,可以垂直和水平居中固定宽度,灵活高度的内容盒。它已经过测试,适用于最新版本的Firefox,Opera,Chrome和Safari。.outer {&nbsp; display: table;&nbsp; position: absolute;&nbsp; top: 0;&nbsp; left: 0;&nbsp; height: 100%;&nbsp; width: 100%;}.middle {&nbsp; display: table-cell;&nbsp; vertical-align: middle;}.inner {&nbsp; margin-left: auto;&nbsp; margin-right: auto;&nbsp; width: 400px;&nbsp; /*whatever width you want*/}<div class="outer">&nbsp; <div class="middle">&nbsp; &nbsp; <div class="inner">&nbsp; &nbsp; &nbsp; <h1>The Content</h1>&nbsp; &nbsp; &nbsp; <p>Once upon a midnight dreary...</p>&nbsp; &nbsp; </div>&nbsp; </div></div>我内置了一些动态内容来测试灵活性,并且很想知道是否有人发现它有任何问题。它也适用于中心覆盖层 - 灯箱,弹出窗口等。

拉莫斯之舞

我在列表中看不到一个:.Center-Container&nbsp;{ &nbsp;&nbsp;position:&nbsp;relative; &nbsp;&nbsp;height:&nbsp;100%;}.Absolute-Center&nbsp;{ &nbsp;&nbsp;width:&nbsp;50%; &nbsp;&nbsp;height:&nbsp;50%; &nbsp;&nbsp;overflow:&nbsp;auto; &nbsp;&nbsp;margin:&nbsp;auto; &nbsp;&nbsp;position:&nbsp;absolute; &nbsp;&nbsp;top:&nbsp;0;&nbsp;left:&nbsp;0;&nbsp;bottom:&nbsp;0;&nbsp;right:&nbsp;0; &nbsp;&nbsp;border:&nbsp;solid&nbsp;black;}跨浏览器(包括Internet Explorer 8 - 没有黑客的Internet Explorer 10!)响应百分比和最小/最大 -无论填充是否居中(没有盒子大小!)height必须声明(见变量高度)建议的设置overflow: auto以防止内容溢出(请参阅溢出)

元芳怎么了

最简单的方法是以下3行 CSS:position: relative;top: 50%;transform: translateY(-50%);以下是一个例子:div.outer-div {&nbsp; height: 170px;&nbsp; width: 300px;&nbsp; background-color: lightgray;}div.middle-div {&nbsp; position: relative;&nbsp; top: 50%;&nbsp; -webkit-transform: translateY(-50%);&nbsp; -ms-transform: translateY(-50%);&nbsp; transform: translateY(-50%);}<div class='outer-div'>&nbsp; <div class='middle-div'>&nbsp; &nbsp; Test text&nbsp; </div></div>

守候你守候我

实际上你需要两个div用于垂直居中。包含内容的div必须具有宽度和高度。#container {&nbsp; position: absolute;&nbsp; top: 50%;&nbsp; margin-top: -200px;&nbsp; /* half of #content height*/&nbsp; left: 0;&nbsp; width: 100%;}#content {&nbsp; width: 624px;&nbsp; margin-left: auto;&nbsp; margin-right: auto;&nbsp; height: 395px;&nbsp; border: 1px solid #000000;}<div id="container">&nbsp; <div id="content">&nbsp; &nbsp; <h1>Centered div</h1>&nbsp; </div></div>
打开App,查看更多内容
随时随地看视频慕课网APP