转抄:http://blog.csdn.net/wjnf012/article/details/54316058
最近碰到了这样一个问题,设置line-height属性让文字垂直居中,发如今PC端肉眼观察是居中的,可是在移动端(Android)上老是发现文字偏上,因此有如下的研究。 搜索发现有人说在Android上会有2px的向上偏移,可是实践证实并非,下面上图(原本准备制成表格比较起来比较方便,可是发现不能制做表格)
通过实际操做发现,iOS系统上上下相差两个像素(也有多是我测距离的偏差)
可是Android上相差比较大,并且不一样的机型相差数目不同java
问了下技术大神,说是line-height对一部分Android手机不起做用,有本身默认的行高,默认行高为22px(这点我没有试验,不知道是否准确)android
line-height:normal;
padding:10px 0;
目前只发现这个方法,没有发现其余的方法,有新的方法将更新,欢迎你们指正。ios
或者:测试
关于line-height你们应该很是熟悉了吧,就是用来作垂直居中的,屡试不爽,基本上没有什么问题,可是最近一个项目,测试提了一个bug,看图吧。spa
从别处窃的图,这个问题只有安卓上才能复现,作了demo,发现应该是font-size的问题,大家能够本身试试,font-size为13px或者奇数时,line-height会有必定的误差,在safari上没有问题,至于缘由,如今还没找到,等找到了再来补充吧。.net
解决办法code
虽然缘由没有找到,可是能够大体猜出是安卓上奇数字号致使line-height均分上下边距的时候出现了误差,那么,咱们就能够经过这方面入手。orm
既然line-height均分不了,那就抛弃line-height吧,看代码blog
很简单吧,将line-height设为0,用padding来进行填充,完美实现,自测没什么问题,若是形成其余问题,欢迎留言指出图片
<meta name="wap-font-scale" content="no">