苹果刘海屏适配

博客探讨了如何使用CSS处理刘海屏和非刘海屏设备的适配问题,通过@media查询和@supports规则来调整元素的padding,以确保在不同设备上显示效果的一致性。同时,文章比较了constant(safe-area-inset-top)和env(safe-area-inset-top)的使用情况,讨论了它们的优缺点,并提供了针对不同iPhone型号的具体适配代码示例。
摘要由CSDN通过智能技术生成

https://juejin.cn/post/6844903967625854990

https://juejin.cn/post/6844903974491930637

原有代码检测导致如果新增加机型需要手动增加适配

@media only screen and (device-width: 375px) and (device-height: 812px) {
     .#{$container} {
          padding-top: 22px;
      }
  }

用此代码检测

@supports ((height: constant(safe-area-inset-top)) or (height: env(safe-area-inset-top))) and (-webkit-overflow-scrolling: touch) {

非刘海屏手机,也会支持,然后设置元素的padding对已有代码侵入性比较大,不能自定义设置增加,需要整体包一层。

这里用env(safe-area-inset-top),的距离在刘海屏手机会比较大。故而未采用。

故还是采用@media query查询的方式

//iphoneX、iphoneXs
    @media only screen and (device-width: 375px) and (device-height: 812px) {
        .#{$container} {
            padding-top: 22px + $defaultTop;
            // padding-top: 22px;
            // padding-top: constant(safe-area-inset-top);
            // padding-top: env(safe-area-inset-top);
        }
    }

    //iphone Xs Max
    @media only screen and (device-width: 414px) and (device-height: 896px) {
        .#{$container} {
            padding-top: 22px + $defaultTop;
            // padding-top: constant(safe-area-inset-top);
            // padding-top: env(safe-area-inset-top);
        }
    }

    //iphone XR
    @media only screen and (device-width: 414px) and (device-height: 896px) {
        .#{$container} {
            padding-top: 22px + $defaultTop;
            // padding-top: constant(safe-area-inset-top);
            // padding-top: env(safe-area-inset-top);
        }
    }

     // iphone 12
     @media only screen and (device-width: 390px) and (device-height: 844px) {
        .#{$container} {
            padding-top: 22px + $defaultTop;
        }
    }

     // iphone 12max
     @media only screen and (device-width: 428px) and (device-height: 926px) {
        .#{$container} {
            padding-top: 22px + $defaultTop;
        }
    }

env() CSS 函数以类似于 var 函数和 custom properties 的方式将用户代理定义的环境变量值插入你的 CSS 中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值