html - 垂直对齐div内的div

标签 html css

我想在一个较大的 div 内垂直对齐一个 div。我该怎么做?

HTML:

<div class="outer">

    <div class="middle">
        <h1>test</h1>
        <h2>Test</h2>
    </div>

</div>

CSS:

.middle {height:160px;display: table-cell; vertical-align: middle;text-align:center;background:red}
.outer {height:550px;background:#eee}

http://jsfiddle.net/zc09442a/

最佳答案

您可以使用一种相当简单的技术来利用 css 转换,如下所示:

HTML

<div class="outer">
    <div class="middle">
        <h1>Test</h1>
        <h2>Test</h2>
    </div>
</div>

CSS

.middle {
    margin: auto;
    position: absolute;
    top: 50%;
    -webkit-transform: translate(0, -50%);
    transform: translate(0, -50%);
    background-color: #ccc;
}

.outer {
    height:550px;
    width:100%;
    background-color:#eee;
    position: relative;
}

你更新的 fiddle here .

您还可以通过添加 left: 50% 属性并更改 transform: translate(0, -50%); 行来使元素垂直和水平居中转换:translate(-50%, -50%);

垂直和水平居中here

关于html - 垂直对齐div内的div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28264031/

相关文章:

css - 使网页适合浏览器

python - 在 Jenkins 中发送电子邮件时添加 png 图像和表格 html

线性渐变背景的 CSS 不透明度?

css - 如何创建一个对 Angular 线分割的页面,两半都是可点击的链接

android - 在移动设备或 iPad 上查看时背景图片无响应

javascript - jQuery - .val 到不保留换行符的文本区域

html - 如何使 <hr> 全宽?

html - 在 div 两边环绕文本

html - 表和 H1 不对齐

css - 简单的全屏CSS slider