图标(图片)+文字垂直居中

App开发有好多地方都会用到图标+文字的形式,例如下图:

但是图标和文字怎么也对不齐,视觉上不是偏上就是偏下。。。

之前常用的文字垂直居中,height==line-height,图片用margin进行定位,可是,总会有几px的差距。如下图,可以看到1、2的实现方式文字偏上,3完美实现了,先上图:

  1. 从网上找了各种方法,第一个,vertical-align: middle; display: inline-block;不好用,偏上。

        <div class="div-one">

            <img class="img1" src="img/marker.png" /> 这个是一段文字测试居中

        </div>

        .div-one {
                height: 100px;
                width: 500px;
                margin: 20px;
                border: 1px solid #007AFF;
                line-height: 100px;
            }

        .img1 {
                vertical-align: middle;
                display: inline-block;
            }

2、 将图片作为背景图放到i中,不行,偏上。

<div class="div-two">
            <i class="icon"> </i>
            <span class="span-text2"> 这个是一段文字测试居中</span>
        </div>

    .div-two {
                height: 100px;
                width: 500px;
                margin: 20px;
                border: 1px solid #007AFF;
            }
            
            .icon {
                display: inline-block;
                vertical-align: middle;
                height: 24px;
                width: 24px;
                background: url(img/marker.png) no-repeat center;
                background-size: 100%;
            }
            
            .span-text2 {
                font-size: 16px;
                line-height: 100px;
            }

3、重点来了,第三个完美实现了,并且代码量少。用flax布局,    display: flex; align-items: center; justify-content: left;

<!--设置display:flex-->
        <div class="div-three">
            <img src="img/marker.png" />
            这个是一段文字测试居中
        </div> 

    .div-three {
                height: 100px;
                width: 500px;
                margin: 20px;
                border: 1px solid #007AFF;
                display: flex;
                align-items: center;
                justify-content: left;
            }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值