如何垂直居中对齐具有背景图像的div

这个问题在这里已经有了答案:

  • 如何垂直居中所有浏览器的div? 41个答案

  • 使用这个CSS。 您将拥有垂直居中的Google徽标。

    #imgDiv {
        width: 300px;
        height: 100px;
        background-image: url("http://www.google.com/intl/en_com/images/srpr/logo3w.png");
        background-repeat: no-repeat;
        border: 1px solid blue;
    
        position:relative;
        top: 50%;
        -moz-transform: translatey(-50%);
        -ms-transform: translatey(-50%);
        -o-transform: translatey(-50%);
        -webkit-transform: translatey(-50%);
        transform: translatey(-50%);
    }
    

    最简单的方法是将#imgDiv的高度设置为高度:100%; 然后将背景位置设置为居中,居中。

    #imgDiv {
        width: 300px;
        height: 100%;
        background-image: url("http://www.google.com/intl/en_com/images/srpr/logo3w.png");
        background-repeat: no-repeat;
        border: 1px solid blue;
        background-position:center,center;
    }
    

    试试像这样: Demo

    根据您的要求更新演示注意:如果文本高度增加,背景图像将向上移动

    div.outer {
    display:table;
    border: 1px solid red;
    height:300px;
    width:300px
    }
    .inner {
        display:table-cell;
        vertical-align:middle;
        line-height:normal;
        margin:0 auto;
        text-align:center;
    }
    #imgDiv {
        width: 300px;
        height: 100px;
        background-image: url("http://www.google.com/intl/en_com/images/srpr/logo3w.png");
        background-position: center;
        background-repeat: no-repeat;
        border: 1px solid blue;
    }
    #spanid {
        text-align: center;
    }
    

    HTML:

    <div class="outer">
        <div class="inner">
            <div id="imgDiv"></div> <span id="spanid">Some text....</span>
        </div>
    </div>
    
    链接地址: http://www.djcxy.com/p/41507.html

    上一篇: How to vertically center align div having back ground image

    下一篇: How to vertically align text on top of an absolutely positioned div