设置网页在Safari15浏览器顶部状态栏的颜色

22664次阅读 1809人点赞 作者: WuBin 发布时间: 2022-10-21 15:26:22
扫码到手机查看

设置safari顶部状态栏颜色

苹果最近发布了 Safari 浏览器的 15 版本,这个版本首先把地址栏移到底部,方便切换不同的标签页和输入网址,特别是对于大屏手机来说,可能一开始使用的时候会有点习惯问题,习惯性往上输入网址,习惯了之后,会特别方便。

另外还有一个特别大的功能改进是支持设置顶部状态栏的颜色了,设置了顶部状态栏颜色之后:

这样设置之后感觉网页和浏览器整体融为一体,特别是 Safari 15 还支持下拉加载刷新,原生 APP 的感觉更明显【左上1图】。

另外桌面版的 Safari 浏览器也是支持这个功能,前提是 Mac 系统的 Safari 浏览器也要升级到 15:

经过我测试,实现的方式主要有3种:

通过safari私有meta

Safari 15 顶部状态栏的颜色这个功能是通过使用的 theme-color 这个 meta 标签来实现的。只要你在你的网页的头部加入下面这行代码即可:

<meta name="theme-color" content="#0a1992">

如果你的网页支持暗黑模式,希望两种模式设置的顶部状态的颜色不同,可以加入一下两行代码:

<meta name="theme-color" content="#1972F8" media="(prefers-color-scheme: light)">
<meta name="theme-color" content="#1C4D98" media="(prefers-color-scheme: dark)">

其中的颜色值根据自己的需求修改。

在safari中打开:http://code.wubin.work/code/css/safari-status-bg/ios-safari-meta.html

通过修改body颜色

先用safari看效果:http://code.wubin.work/code/css/safari-status-bg/ios-safari-body.html

注意,如果是通过JS动态修改body的背景色,那么是不会让状态栏变背景色的!
body{
       background: gray;
}

在页面顶部的元素修改

这个是最麻烦的一种情况,跟bug一样。

首先看公共样式:

#top {
            position: fixed;
            width: 100%;
            left: 0px;
            top: 0px;
            background: #176dd4;
            z-index: 999;
}

当顶部只有一个元素的时候:

<div id="top">
        <div>top-当top中只有一行div元素的时候</div>
</div>

safari打开效果:http://code.wubin.work/code/css/safari-status-bg/ios-top-div-1.html

发现顶部背景色不会变化,然后我们在#top中继续添加元素。

当顶部包含2个以及多个元素的时候:

<div id="top">
        <div>top-当top中有两个元素的时候,会将底部状态栏变色</div>
        <div>只有当top中有两个及以上的元素,且元素非浮动的状态下,才会让顶部状态栏显示top的css定义的颜色</div>
        <div>开始只有一个元素,动态动态添加的元素无效,只有开始就写在top中的才有效。</div>
        <div>当动态隐藏后,顶部状态栏依然会显示top的css背景色。</div>
</div>

safari打开效果:http://code.wubin.work/code/css/safari-status-bg/ios-top-div-2.html

发现当元素增多的时候,safari顶部状态栏的背景色变化了!

这时候,当我将第一个例子改一下:

<div id="top">
        <p>top-当top中只有一行p元素的时候</p>
</div>

此时我不重置浏览器的默认样式,发现这时候的状态栏背景色也变了!!

safari效果:http://code.wubin.work/code/css/safari-status-bg/ios-top-div-p.html

如果这时候我们将所有元素的margin和padding都去掉,再来看效果:

添加样式:

*{padding: 0;margin: 0;}

safari效果:http://code.wubin.work/code/css/safari-status-bg/ios-top-div-p-1.html

发现又变回去了!!

所以得出结论:safari的顶部背景色,如果需要通过固定在顶部的元素背景控制的话,需要的条件有很多,而且后续苹果会不会修复这个问题都不确定,还是推荐使用第一种方式解决吧!

当然,经过测试,如果各种效果一起使用,其显示优先级为:方法1>方法3>方法2

相关资料

点赞 支持一下 觉得不错?客官您就稍微鼓励一下吧!
关键词:theme-color,safari状态栏
推荐阅读
  • uniapp实现被浏览器唤起的功能

    当用户打开h5链接时候,点击打开app若用户在已经安装过app的情况下直接打开app,若未安装过跳到应用市场下载安装这个功能在实现上主要分为两种场景,从普通浏览器唤醒以及从微信唤醒。

    9664次阅读 631人点赞 发布时间: 2022-12-14 16:34:53 立即查看
  • Vue

    盘点Vue2和Vue3的10种组件通信方式

    Vue中组件通信方式有很多,其中Vue2和Vue3实现起来也会有很多差异;本文将通过选项式API组合式API以及setup三种不同实现方式全面介绍Vue2和Vue3的组件通信方式。

    4342次阅读 322人点赞 发布时间: 2022-08-19 09:40:16 立即查看
  • JS

    几个高级前端常用的API

    推荐4个前端开发中常用的高端API,分别是MutationObserver、IntersectionObserver、getComputedstyle、getBoundingClientRect、requ...

    14542次阅读 951人点赞 发布时间: 2021-11-11 09:39:54 立即查看
  • PHP

    【正则】一些常用的正则表达式总结

    在日常开发中,正则表达式是非常有用的,正则表达式在每个语言中都是可以使用的,他就跟JSON一样,是通用的。了解一些常用的正则表达式,能大大提高你的工作效率。

    13594次阅读 496人点赞 发布时间: 2021-10-09 15:58:58 立即查看
  • 【中文】免费可商用字体下载与考证

    65款免费、可商用、无任何限制中文字体打包下载,这些字体都是经过长期验证,经得住市场考验的,让您规避被无良厂商起诉的风险。

    12136次阅读 971人点赞 发布时间: 2021-07-05 15:28:45 立即查看
  • Vue

    Vue3开发一个v-loading的自定义指令

    在vue3中实现一个自定义的指令,有助于我们简化开发,简化复用,通过一个指令的调用即可实现一些可高度复用的交互。

    16475次阅读 1315人点赞 发布时间: 2021-07-02 15:58:35 立即查看
  • JS

    关于手机上滚动穿透问题的解决

    当页面出现浮层的时候,滑动浮层的内容,正常情况下预期应该是浮层下边的内容不会滚动;然而事实并非如此。在PC上使用css即可解决,但是在手机端,情况就变的比较复杂,就需要禁止触摸事件才可以。

    15243次阅读 1240人点赞 发布时间: 2021-05-31 09:25:50 立即查看
  • Vue

    Vue+html2canvas截图空白的问题

    在使用vue做信网单页专题时,有海报生成的功能,这里推荐2个插件:一个是html2canvas,构造好DOM然后转canvas进行截图;另外使用vue-canvas-poster(这个截止到2021年3月...

    30010次阅读 2359人点赞 发布时间: 2021-03-02 09:04:51 立即查看
  • Vue

    vue-router4过度动画无效解决方案

    在初次使用vue3+vue-router4时候,先后遇到了过度动画transition进入和退出分别无效的情况,搜遍百度没没找到合适解决方法,包括vue-route4有一些API都进行了变化,以前的一些操...

    26052次阅读 2003人点赞 发布时间: 2021-02-23 13:37:20 立即查看
交流 收藏 目录