关于 iPhone 设置背景图屏幕居中显示失败

问题

正常情况下,用background以下设置可以使背景图居中在屏幕中间,不随滚动条往下滑动
但是,听反馈说在 iPhone 手机上,那个背景图是整个篇幅的居中

示例代码

.background {
    background-image: url(./logo.jpeg);
    background-position: center;
    background-attachment: fixed;
    background-repeat: no-repeat;
    background-size: 50%;
}
<div class="background">
        <p>在国内汽车市场有着各种各样的车型,有时尚的,自然也有复古的,但往往复古车型的价格并不便宜。今天介绍的这款车型可以称得上是非常复古,也相当可爱,并且还拥有德国与英国两种血统。没错,今天介绍的这款新车就是宝马的子品牌MINI(图片|配置|询价)。我们所介绍的新车就是MINI,具体配置为2023款1.5TCOOPER弧光特别版,新车的厂家指导价27.38万元。值得一提的是,这款新车是今年刚刚上市的新款,也同样是一辆全进口的新车。</p>
        <p>在国内汽车市场有着各种各样的车型,有时尚的,自然也有复古的,但往往复古车型的价格并不便宜。今天介绍的这款车型可以称得上是非常复古,也相当可爱,并且还拥有德国与英国两种血统。没错,今天介绍的这款新车就是宝马的子品牌MINI(图片|配置|询价)。我们所介绍的新车就是MINI,具体配置为2023款1.5TCOOPER弧光特别版,新车的厂家指导价27.38万元。值得一提的是,这款新车是今年刚刚上市的新款,也同样是一辆全进口的新车。</p>
        ......
    </div>

正确效果(安卓手机√)

安卓手机效果

原因

background-attachment:fixed; 在 iPhone 上失效了。

Fixed-backgrounds have huge repaint cost and decimate scrolling performance, which is, I believe, why it was disabled.
固定背景导致重绘的成本很高,并且滚动表现也不尽人意,所以在一些移动端是被禁止的。                            —— stackoverflow

解决方案

background-attachment:fixed;position:fixed;替代,并且背景图写在元素::before

.background::before {
    content: "";		/* content 一定要有,不然 ::before 不生效 */
    background-image: url(./logo.jpeg);
    background-position: center;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-repeat: no-repeat;
    background-size: 50%;
}

iPhone 上能看到效果了,但是听说(毕竟我没有 iPhone )效果还是会有点问题,背景图会抖动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值