19

我在尝试创建一个 with 时遇到了一些div麻烦。height:100%display:table-cell

我注意到它在 Firefox 和 IE 9 中不起作用。

这是解决问题的方法。您会注意到它按预期工作,Chrome 或 Opera。

代码有什么问题?

有什么办法可以解决吗?

我想保留父母的display:tableanddisplay:table-cell以便将内容垂直居中在可变高度容器上。

HTML

<div class="table">
    <div class="table-cell">
        <div class="content"></div>
    </div>
</div>

CSS

body, html {
    margin:0;
    padding:0;
    height:100%;
}
.table {
    display:table;
    width:100%;
    height:100%;
}
.table-cell {
    display:table-cell;
    vertical-align: middle;
    width:100%;
}
.content {
    height: 100%;
    display: block;
    overflow: hidden;
    position: relative;
    background: url(http://spaceinimages.esa.int/var/esa/storage/images/esa_multimedia/images/2012/11/solar_eclipse_corona/12092636-3-eng-GB/Solar_eclipse_corona_node_full_image.jpg);
    background-size:cover;
}
4

2 回答 2

29

为了height:100%工作,所有父容器必须是height:100%. 如果您注意到,您的.table-cell样式没有height:100%.

添加此样式可修复 Firefox 中的问题:

.table-cell {
    display:table-cell;
    vertical-align: middle;
    width:100%;
    height:100%;
}

作为替代方案,将图像添加到您的 HTML 而不是作为 CSSbackground-image也可能有效。

body, html {
    margin:0;
    padding:0;
    height:100%;
}
.table {
    display:table;
    width:100%;
    height:100%;
}
.table-cell {
    display:table-cell;
    vertical-align: middle;
    width:100%;
}
.content {
    height: 100%;
    display: block;
    overflow: hidden;
    position: relative;
    background-size:cover;
}

.content img {
    width:100%;
    height:100%;
}
<div class="table">
    <div class="table-cell">
        <div class="content">
            <img src="http://spaceinimages.esa.int/var/esa/storage/images/esa_multimedia/images/2012/11/solar_eclipse_corona/12092636-3-eng-GB/Solar_eclipse_corona_node_full_image.jpg"/>
        </div>
    </div>
</div>

HTML

<div class="content">
    <img src="...your image url..." />
</div>

CSS

.table-cell {
    display:table-cell;
    vertical-align: middle;
    width:100%;
}

.content img {
    width:100%;
    height:100%;
}
于 2013-10-17T13:45:32.873 回答
-3

您必须设置.content.table .table-cell类如下

.content {
    display: table;
    height: 100%;
}

.table, .table-cell {
    height: 100%;
}
于 2016-01-03T11:47:12.373 回答