移动端Android line-height不居中

18 篇文章 0 订阅

使用line-height垂直居中时,发现在IOS上显示很正常,但是在安卓机上显示不居中偏上,大约会往上移2px左右,用户体验差。

网上说需要字号大于 12px 才能够正常居中,且无小数点的整数,并且还要字号为偶数,即:

  • 字体大小不要使用奇数字号,带小数点的更不要提了。也就是说被2整除的整数且不可小于12px。 
  • 使用rem的单位时造成(根元素如果动态改变时,根元素字体可能不是整数)。

但现在越来越多的移动界面使用rem适配,不仅可能是奇数还可能不是整数。

常用思路:

1.把字号内外边距等设置为需求大小的2倍,使用transform进行缩放。只能针对 单个或者是一排的布局进行缩放,如果是父级自适应高度且可展示多行的,使用transform是有问题的。因为transform缩放是不影响页面布局的。

2.把字号内外边距等设置为需求大小的2倍,使用zoom进行缩放,可以完美解决。 

3.把line-height设置为0,使用padding值把元素撑开,说是可以完美解决(经过测试,没有用的!)。

 

常用方案如下:

方案一:先放大两倍设置,再用 scale 缩小一倍显示

.content {
    height: 40px;
    line-height: 40px;
    font-size: 20px; 
    /*以上的值均扩大2倍设置,以下缩小2倍显示*/

    transform: scale(0.5);
    transform-origin: 0% 0%;
}

方案二:table布局

.container {
    display: table;
}

.content {
    display: table-cell;
    vertical-align: middle; //列垂直居中
}
    

方案三:不设置height,用内容+padding撑起容器,使其垂直居中

此方案在移动上,整体高度不能太小,否则没效果,特别是rem,换算成px的时候,可能存在小数点,即存在盈亏划分。

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果在设置了`line-height`属性后,发现它没有起作用,可能有以下几种可能的原因和解决方法: 1. 检查是否正确应用了`line-height`属性:确保在应用`line-height`时,选择了正确的元素,并且使用了正确的CSS语法。例如,`line-height`的值应该是一个有效的长度单位(如像素、em、rem等),或者是一个无单位的数字。 2. 检查是否有其他CSS规则覆盖了`line-height`:有时候,其他CSS规则可能会覆盖`line-height`的设置,导致它看起来没有效果。可以使用浏览器的开发者工具检查元素的样式规则,查看是否有其他具有更高优先级或者更具体性的CSS规则影响了`line-height`。 3. 确保元素具有可布局性:某些元素(如行内元素)可能不会受到`line-height`属性的影响。在这种情况下,可以将元素设置为块级元素,或者使用其他CSS属性(如`display`或者`float`)来改变元素的布局。 4. 考虑使用更具体的选择器:如果`line-height`属性依然没有起作用,可以尝试使用更具体的选择器来应用样式。确保选择器能够准确匹配到目标元素,并且没有被其他选择器所覆盖。 5. 检查浏览器兼容性:有时候,某些浏览器可能对`line-height`属性的解析和渲染存在差异。可以查看浏览器的兼容性表格,确认所使用的浏览器是否支持`line-height`属性。 如果以上方法都没有解决问题,可以尝试在提问相关的技术社区或者论坛上寻求帮助,提供更多的细节和代码示例,以便其他开发者能够更好地理解和解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值