position和transform使元素居中的方法 (转载)

position和transform使元素居中的方法 (转载)

1. position & transform: translate(-50%, -50%) 实现块元素百分比居中

css3:

.parent {
  positioin: relative;
}
.child {
  positioin: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

页面宽高正常显示和页面宽高缩放显示时,都保持,上下左右居中显示

2. transform:translate (-50%,-50%) 造成的文字模糊和解决方案

这是因为transform时div的宽度或者高度并不是偶数,移动50%之后,像素点并不是整数,出了小数,和显示像素没有对上。
解决方案是使用flex完成垂直居中,设置排列方向为column,并设置justify-content: center,最后用text-align: center完成水平居中。方能保证文字显示清晰。

优化方法:

  1. 将transform: translate(-50%, -50%)改成transform: translate3d(-50%, -50%, 0)可以解决抖动,但仍然模糊。
  2. 将元素的高度设置为偶数可解决;
  3. 将transform: translate(-50%, -50%)中的y轴单位改成px也可以解决
  4. 改成transform: translate(-50%, -52%)也可以解决(如果52%不行则从51%每个百分比尝试)
    以上方法能较大程度优化问题,但仔细查看仍有细微抖动,最后用了第四种方法。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值