水平和垂直居中img

时间:2014-08-06 04:36:46

标签: html css

我试图将图像垂直和水平居中在div中。结构如下:

CSS:

.imgWrapper {
    background-color: #000;
    height: 100%;
    min-height: 480px;
    position: relative;
    text-align: center;
    -webkit-user-select: none;
    float: left;
}

.imgStg {
    cursor: pointer;
    display: block;
    font-size: 0;
    height: 100%;
    min-height: 402px;
    position: relative;
    text-align: center;
    width: 100%;
}

.imgStg img {
    display: inline-block;
    height: auto;
    max-height: 100%;
    max-width: 100%;
    vertical-align: middle;
    width: auto;
    text-align: center;
}

HTML:

<div class="imgWrapper" style="width: 724px;line-height: 601px;">
    <div class="imgStg"> 
        <img src="http://placehold.it/500x300" style="width: 500px;height: 300px;"/>
    </div>
</div>

*请注意,601px的高度在父元素中定义

由于一些奇怪的原因,当我在google chrome和firefox中查看localhost上的HTML文件时,图像在div的顶部而不是中心对齐。

小提琴:http://jsfiddle.net/5F3f3/1/正确显示,为什么/导致它显示在我机器顶部的原因?

问题截图:

enter image description here

2 个答案:

答案 0 :(得分:2)

首先,高度和线高不一样。试试这个代码,
CSS:

    .imgWrapper {
    background-color: #000;
    height: 100%;
    min-height: 480px;
    position: relative;
    text-align: center;
    -webkit-user-select: none;
    float: left;

}

.imgStg {
    cursor: pointer;
    display: block;
    font-size: 0;
    height: 100%;
    min-height: 402px;
    position: relative;
    text-align: center;
    width: 100%;
}

.imgStg img {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
}

HTML:

    <div class="imgWrapper" style="width: 724px;height: 601px;">
    <div class="imgStg"> 
        <img src="http://placehold.it/500x300" style="width: 500px;height: 300px;"/>
    </div>
</div>

答案 1 :(得分:0)

我相信你的CSS是正确的。您确定它是在localhost上正确加载的吗?我相信如果通过file:// scheme加载HTML并且通过http:// scheme引用了CSS,则某些浏览器会出错。尝试将您的CSS文件引用为。这将使浏览器使用与引用它的HTML相同的方案。