加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

CSS中图片文字垂直对齐怎么做,不对齐如何处理

发布时间:2023-10-26 15:24:04 所属栏目:语言 来源:
导读:可能很多人一开始学前端时都会觉得CSS简单,没错,CSS没有语言逻辑,入门确实很简单,可要是想深入挖掘的话……嘿嘿,水可深着呢!

就比如说今天要跟大家分享的这个,表面上看可能觉得也没多大问题,
可能很多人一开始学前端时都会觉得CSS简单,没错,CSS没有语言逻辑,入门确实很简单,可要是想深入挖掘的话……嘿嘿,水可深着呢!
 
就比如说今天要跟大家分享的这个,表面上看可能觉得也没多大问题,但是就是这个不太起眼的“小玩意”,困扰了我很久……下面话不多说了,来一起看看详细的介绍吧。
 
接下来我们步入正题~~
 
比如说,现在我要做一个简单的删除按钮,只由一个icon和“删除”两个字组成,你会如何布局,给你30秒时间考虑。
 
好,先亮出HTML代码如下:
 
<div class="del"><span class="icon"></span><span>删除</span></div>
 
很简单,就是一个class为del的div元素下有两个span标签,当然icon你也可以直接用伪元素代替(还不知道伪元素的面壁思过去...)。
 
接下来你可能会这么写CSS:
 
.del{ font-size: 18px;}
 
.del .icon{ display: inline-block; width: 16px; height: 24px; margin-right: 5px;
 
background: url("imgs/delete.png") no-repeat center; background-size: 100%;}
 
然后它就变成这个样子了:

咦?好像跟想象的不太一样啊!为什么图片和文字垂直方向上不能对齐呢?Why?
 
这是因为图片和文字在行内垂直方向默认是以基线(baseline)对齐的,图片基线在图片底部,而文字基线却在文字中点偏下的位置,所以才会显示成上图的样子。那么这个问题该如何解决呢?
 
很简单,我们只需给图片和文字分别加上 vertical-align: middle即可:
 
.del .icon{ display: inline-block; width: 18px; height: 24px; margin-right: 5px;
 
vertical-align: middle; background: url("imgs/delete.png") no-repeat center; background-size: 100%;}
 
.del span{ vertical-align: middle;}
 
说到这里,其实本文基本已经结束了,但是经过本人亲测发现,在移动端却会发现图片和文字又会出现不对齐的情况了,但这只是部分浏览器出现的兼容性问题,解决方法也是有的,就是在设置文字字体大小和icon大小时尽量设置为5的整数倍,并尽量让icon高度与字体大小相同。那么本例的代码将写成下面这样:
 
.del{ font-size: 20px;}
 
.del .icon{ display: inline-block; width: 20px; height: 25px; margin-right: 5px;
 
 vertical-align: middle; background: url("imgs/delete.png") no-repeat center; background-size: 100%;}
 
.del span{ vertical-align: middle;}
 
这样基本也没有什么问题了……
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章