在各类开发中都需要用到图标和文字结合显示,如下图:
对于CSS不是很熟悉的开发者来说,经常会遇到图标与文字不对齐的情况,如下图:
这对于比较注重细节的前端开发者来说,是决定不允许出现的,所以看到这种情况,大部分开发者都会去把他调整底部水平对齐。
处理这个问题,很多新手会用指定高度来解决,如:
height: 30px;
line-height: 30px;
或者使用:
padding: 10px 0;
以上的方法虽然去慢慢调整也能做到想要的效果,但我告诉你们,这样做法太浪费时间精力了,教你一招,采用定位的方式,永久轻松解决这个问题。
先看不采用定位的代码是如何的?
wxml代码:
<view class='text-style'> <view><i class="iconfont icon-zhaoxiangji gnicon02"></i> 换装</view> </view>
接下来是wxss代码:
.text-style { width: 25%; height: 100rpx; line-height: 100rpx; text-align: center; font-size: 28rpx; color:#7A7E83; float: left; align-items:center } .gnicon01{ color:#66A2F8; }
wxss只是关键代码,关于图标的样式icnfont 和icon-zhaoxiangji这些是平台提供的图标代码样式,每个平台采用样式不同,不过大致是一样的。
按以上代码实现的效果是这样的:
图标和文字底部不对齐,接下来加个定位代码,解决这个问题,以后再也不用为这个问题而伤脑了。
我们先在text-style样式上添加定位代码:
position: relative;
再在图标样式上gnicon01样式上添加如下代码:
position: absolute; top:9rpx; left:26rpx; font-size: 34rpx;
position:relative层指定这个样式后,当子层有position:absolute时,子层就会以父层为基准,对齐top,left,bottom,right等属性。
通过以上方法,以后写图标或图片等与文字混排时就可以任意对齐了。
现把text-style和gnicon01的代码完整发出来
wxml代码:
<view class='text-style'> <text class="active"></text> <view class="active1"><i class="iconfont icon-zhaoxiangji gnicon01"></i> 背景</view> </view>
wxss代码:
.text-style { width: 25%; height: 100rpx; line-height: 100rpx; text-align: center; font-size: 28rpx; color:#7A7E83; float: left; align-items:center; position: relative; } .active1 { color: #66A2F8; } .active { display: block; width: 100%; height: 6rpx; background: #66A2F8; position: relative; left: 0rpx; top: 0rpx; } .gnicon01{ color:#66A2F8; position: absolute; top:9rpx; left:26rpx; font-size: 34rpx; } .gnicon02{ color:#7A7E83; position: absolute; top:9rpx; left:26rpx; font-size: 34rpx; }
代码的最终效果图:
总结:微信小程序和网页开发的样式都是采用CSS实现的,所以方法是通用的,当需要把图标和图片与文字对齐的时候,就在父层加上position:relative;属性,然后在图标或图片层通过position:absolute属性实现left,right,top,bottom等来控制对齐。