文字图片垂直居中

每次做项目都会遇到,因此记下来,日后也可以回顾。关于文字图片的垂直居中(当然外层容器是定高),网上有很多关于此的解决办法,但是经过自己各种方法的尝试,结合兼容性,实用性等等,用下列方法较多:

1、文字垂直居中

    a、单行文字垂直居中,我们都知道,把高度和行高设置成一样就可以。

    b、多行文字垂直居中

        方法:用table-cell表格的属性来(这相当于我们见到的td标签,兼容IE8+)

        html:

<div class="demo tablediv">
    <div class="table-inner">
        <span>这里有很多文字这里有很多文字这里有很多文字这里有很多文字</span>
    </div>
</div>

         css:

.tablediv {
    display: table;
}
.tablediv .table-inner {
    display: table-cell;
    vertical-align: middle;
}

       .demo统一样式

.demo {
    width: 300px;
    height: 200px;
    margin: 0 auto;
    text-align: center;
    padding: 0 10px;
    background: #ccc;
}

        效果图:


2、图片垂直居中

    图片的垂直居中,除了和上面文字采用图样的方式之外,还有一种常用的方式:

        空标签display: inline-block; 通过vertical-align: middle来进行垂直居中

    html:

<div class="demo apha-img">
    <img src="../images/img1.jpg" alt="">
    <span class="apha"></span>
</div>

    css:

.apha-img .apha {
    display: inline-block;
    height: 100%;
    vertical-align: middle;
}
.apha-img img {
    vertical-align: middle;
}

    效果图:


这里自己使用的是空标签span,参考的资源上面是img标签。

    也有用为img标签设置背景图,居中即可,img的图片用gif透明图,宽高和外层容器一样即可。至于为什么用img标签,个人理解是语义化,不然为何不用div之类的都不用src透明图了。

    现在技术的飞速发展,如果项目不要求兼容低版本浏览器,那么flex这些就更加方便了。

参考:

张鑫旭: http://www.zhangxinxu.com/study/200908/img-text-vertical-align.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值