css如何实现图标和文字的“绝对对齐”呢? 财富值63

2016-10-14 17:20发布

前端实现图标和文字对齐有什么解决方法?我的“绝对对齐”的意思是不管是安卓设备和ios设备看着都是对齐的,最好也能实现pc上的对齐。

demo:https://jsfiddle.net/nzfbzxw6/

虽然我通过设置

vertical-align: -3%;

实现的对齐(在chrome上看着好好的),如果我要在手机设备上安卓,就要是另一个数值。
ios可能又要设个数值(而且不同的苹果机型也不一样)。

对这种问题有什么更好的解决方法吗?

-------------------------- 一个调皮的分割线 ----------------------------------------

各位前辈的方法我都试了一下,发现在安卓手机上都不好使,图片居中是没有问题的,但是文字(尤其是小于12px下的)却无法居中,这可能是安卓手机bug吧...

(第一个box盒子,第二个display:inline-block,第三个background center)

付费偷看设置
发送
26条回答
acer - 这个人很懒,什么都没留下
1楼 · 2016-10-14 17:43.采纳回答

不知道有没有更好的办法了。。

水平上的差距几乎没有,垂直方向上的效果会多种多样。

我一般使用的方法:
(1)使用display:table,没有什么兼容性问题,个人觉得还是比较好用的。

移动端(安卓设备、ios设备)图标文字垂直居中对齐的最佳常用解决方案是采用弹性盒子布局,可以快捷有效实现子元素未知高度绝对垂直居中对齐。PC端考虑到兼容性的问题,一般不推荐使用弹性盒子,依旧只能采用传统方式(vertical-align: middle;或者position定位)实现图标文字对齐。

ps:如果要做两个元素绝对对齐,可以优先考虑display:table;(父级) display: table-cell;(子级),这两个真可以算是最佳搭配,而且屡试不爽。vertical-align: middle;只在display:inline;(行内元素起作用)

规定好字号,及图片大小,用相对定位 或者 作为背景图片,下面是相对定位:

直接上flex布局,用多了你会发现传统的写法没有一个能比得上弹性盒子来得爽。

第二种:
这种办法比较粗暴。。直接把图片绝对定位,然后居中

实际上不管是line-height还是用position去定位,不管你display用的什么,不同机型的显示效果都会不一样。

一周热门 更多>