118.浏览器支持和修复Safari浏览器的Flexbox漏洞

news/2024/5/14 5:56:26/文章来源:https://blog.csdn.net/weixin_42952508/article/details/131509155

在我们之前的文章中,我们介绍了测试的步骤
在这里插入图片描述

虽然现在大部分新版本的浏览器都能支持99%的CSS属性,但是不排除的是仍然有一些用户使用老的IE浏览器或者版本较低的浏览器去浏览我们的网页,这样我们的网站可能无法按照我们的预期工作;

● 我们可以使用工具去检测浏览器是否可以支持某些CSS属性
在这里插入图片描述

● 我们只需要输入相关的CSS属性就能给我们结果
在这里插入图片描述

● 例如,现在我们在导航添加一个很新的CSS属性,这个会让背景变得模糊

background-color: rgba(255, 255, 255, 0.6);
backdrop-filter: blur(10px);

在这里插入图片描述

● 但是例如老版本的safari浏览器不支持,我们需要加另外的参数

   -webkit-backdrop-filter: blur(10px);backdrop-filter: blur(10px);

● 这里我们没有苹果设备,无法测试,但是理论上是没问题的

我们可以看到有些CSS属性,需要添加供应商参数才能使其生效

在这里插入图片描述

● 除此之外,我们可以添加一段JS来实现兼容的效果

function checkFlexGap() {var flex = document.createElement("div");flex.style.display = "flex";flex.style.flexDirection = "column";flex.style.rowGap = "1px";flex.appendChild(document.createElement("div"));flex.appendChild(document.createElement("div"));document.body.appendChild(flex);var isSupported = flex.scrollHeight === 1;flex.parentNode.removeChild(flex);console.log(isSupported);if (!isSupported) document.body.classList.add("no-flexbox-gap");
}
checkFlexGap();这是一个 JavaScript 函数,用于检测浏览器是否支持 flexbox 的 row-gap 和 column-gap 属性。该函数创建了一个 div 元素,并将其样式设置为 flex 布局,然后将两个 div 元素添加到该元素中。接着,将该元素添加到文档中,并检查其 scrollHeight 是否为 1。如果 scrollHeight 为 1,则表示浏览器支持 flexbox 的 row-gap 和 column-gap 属性,否则将在文档的 body 元素上添加一个类名为 "no-flexbox-gap",用于标识浏览器不支持该属性。最后,该函数会将创建的 div 元素从文档中移除。

● 还需要再媒体查询中添加一段CSS代码

.no-flexbox-gap .main-nav-list li:not(:last-child) {margin-right: 4.8rem;
}.no-flexbox-gap .list-item:not(:last-child) {margin-bottom: 1.6rem;
}.no-flexbox-gap .list-icon:not(:last-child) {margin-right: 1.6rem;
}.no-flexbox-gap .delivered-faces {margin-right: 1.6rem;
}.no-flexbox-gap .meal-attribute:not(:last-child) {margin-bottom: 2rem;
}.no-flexbox-gap .meal-icon {margin-right: 1.6rem;
}.no-flexbox-gap .footer-row div:not(:last-child) {margin-right: 6.4rem;
}.no-flexbox-gap .social-links li:not(:last-child) {margin-right: 2.4rem;
}.no-flexbox-gap .footer-nav li:not(:last-child) {margin-bottom: 2.4rem;
}@media (max-width: 75em) {.no-flexbox-gap .main-nav-list li:not(:last-child) {margin-right: 3.2rem;}
}@media (max-width: 59em) {.no-flexbox-gap .main-nav-list li:not(:last-child) {margin-right: 0;margin-bottom: 4.8rem;}
}

这段 CSS 代码是用来解决 flexbox 的 row-gap 和 column-gap 属性在某些浏览器中不被支持的问题。它使用了一个类名 .no-flexbox-gap,然后为这个类名下的一些元素设置了间距,以达到类似 row-gap 和 column-gap 的效果。其中使用了 margin-right 和 margin-bottom 属性来分别控制元素之间的水平和垂直间距。另外,它还使用了媒体查询来在不同的屏幕尺寸下改变间距的大小。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_326385.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[HNOI2008] 越狱

1.介绍 原题链接(回去补上,教练把锣鼓禁了qwq谴责这种行为!!!) 一句话题意:房间1到房间n中,求存在相邻两个房间的宗教相同的可能性总和 就这?省选?哪个省的?湖南的?我…

学习小波分析的一些资料

Papers Wavelets and Subband Coding (2007) - M. Vetterli, J. Kovačević Tutorials A Really Friendly Guide to Wavelets (1999) - C. Valens [CiteSeerX][Mirror]A Practical Guide to Wavelet Analysis (1998) - C. Torrence , G. P. Compo [CiteSeerX]Basics of Wav…

hadoop --- MapReduce

MapReduce定义: MapReduce可以分解为Map (映射) Reduce (规约) , 具体过程: Map : 输入数据集被切分成多个小块,并分配给不同的计算节点进行处理Shuffle and Sort:洗牌和排序,在 Map 阶段结束后&#xf…

日本 NFT 项目概览与特点总结

日本的 NFT 市场 日本的 NFT 市场起源于与国内动漫和娱乐偶像的合作,重点关注本土文化,文化成为日本 NFT 项目的重要基石。 关键要点: 日本的 NFT 产业具有三个特点:广泛的知识产权(IP)、低 FUD 水平以及…

看完就会,从抓包到接口测试的全过程解析

一、为什么抓包 从功能测试角度 通过抓包查看隐藏字段 Web 表单中会有很多隐藏的字段,这些隐藏字段一般都有一些特殊的用途,比如收集用户的数据,预防 CRSF 攻击,防网络爬虫,以及一些其他用途。这些隐藏字段在界面上…

在idea中使用Git技术

1.配置git环境 打开idea,点击file->setting->搜索git, 将git的安装路径填写进去 2.去gitee创建一个远程仓库 3.拉入一个.gitignore文件,过滤掉不需要管理的文件 4.在idea进行如下操作 5.选择要提交的内容 目前只是保存在了本地仓库 6.推送到远端…

28-大文件上传(了解)

一、是什么? 🚗🚗🚗不管怎样简单的需求,在量级达到一定层次时,都会变得异常复杂。 文件上传简单,文件变大就复杂 上传时,以下几个注意点会影响用户体验 服务器处理数据的能力请求超…

Mycat2 使用教程(三)原始数据导入分库分表【MySQL分库分库分表】

Mycat2 使用教程(三)原始数据导入分库分表【MySQL分库分库分表】 本文主要描述mycat2完成分库分别数据源配置后,将数据导入的过程mysql 分库分表如果是新项目,则不用考虑本文内容mycat2如何配置分库分表?见上文 1.计…

5个网站帮你找到免费优质的视频素材

5个免费可商用视频素材网站,建议收藏! 潮点视频 https://shipin520.com/shipin-mb/all-def-267-all-all-all-all-all-0-1.html?from_code2510 潮点视频是一个提供优质高清、无水印的视频素材网站,站内有大量的AE模板、PR模板、实拍素材、视…

自定义 MVC 框架思想

目录 一、MVC设计模式 1. 什么是MVC 2. 三层架构与MVC的区别 二、自定义MVC框架 1. 为什么要学习自定义MVC框架 2. 自定义MVC的工作原理 3. 自定义MVC框架的优势 三、自定义MVC实例流程 1. mvc三层架构的弊端 2. 自定义MVC的工作流程 2.1 子控制器(…

打包时未添加livepusher模块

我们的项目采用的是混入开发,html5, 使用到了安卓离线打包,其中使用到了livepusher模块,本来没什么难事的,很简单的一个问题,但是中文的官方文档却介绍错了包名,一直在郁闷为啥不行,痛苦啊。本来…

计算机基础--->数据结构(7)【红黑树】

文章目录 二三树二三树的性质二三树一个简单的插入例子二三树的特点 红黑树红黑树的特点红黑树的节点红黑树的插入操作1. 左旋2. 右旋颜色翻转3. 颜色翻转插入实例 二三树 二三树与红黑树的性质非常相似,但是二三树能更直观的让人理解构建过程 二三树的性质 二三树是…

skywalking linux安装部署

SkyWalking APM tar 下载 结合自己的es版本下载对应的tar 地址:https://archive.apache.org/dist/skywalking/ 由于我使用的是es7所以下载对应版本 拷贝对应链接使用wget下载 wget https://archive.apache.org/dist/skywalking/8.7.0/apache-skywalking-apm-es7…

信息安全概述笔记

保密性、完整性、可用性是传统的信息安全的原则和目标,目前随着信息安全问题的日益严峻,信息安全的原则和目标衍生为诸如可控性、不可否认性等其他的原则和目标。 保密性(Confidentiality):确保信息只能由那些被授权使用的人获取…

【论文笔记】Skill-based Meta Reinforcement Learning

【论文笔记】Skill-based Meta Reinforcement Learning 文章目录 【论文笔记】Skill-based Meta Reinforcement LearningAbstract1 INTRODUCTION2 RELATED WORKMeta-Reinforcement LearningOffline datasetsOffline Meta-RLSkill-based Learning 3 PROBLEM FORMULATION AND PRE…

IDEA远程操作HDFS

IDEA远程管理HDFS 本地环境配置 Windows 解压到本地磁盘 配置环境变量 添加winutils.exe和hadoop.dll Hadoop本身对Windows的支持并不友好,如果需要完整使用,需要将winutils.exe和hadoop.dll两个文件移动到%HADOOP_HOME%\bin目录 修改hadoop-e…

MySQL的存储引擎与基本使用讲解

目录 一、前言 1.MySQL的介绍 二、存储引擎 1.什么是存储引擎 2.常见存储引擎 2.1.InnoDB(MySQL默认引擎) 2.1.1.四种隔离级别 2.2.MyISAM存储引擎 2.3.Memory存储引擎 3.ACID事务 三、CRUD操作 1.插入数据 2.查询数据 3.修改数据 4.删除数据 四、数据库 1.默认…

小白开酒吧前要知道的几个知识(四)

第七、岗位分工 酒吧一定要分工明确,各司其职。每一个岗位都有着自己的职责,每一个环节都有所关联,每天上班前需要提前安排好各岗位的工作。团队需要一个规章制度,毕竟没有规矩不成方圆,建立岗位相关的工作制度以及责…

html---链接跳转案例

目录 一、要求:设置一个网页如下图所示,可实现首页、列表页、详情页、登录页链接 二、实现:实现代码及截图如下 三、寄语 一、要求:设置一个网页如下图所示,可实现首页、列表页、详情页、登录页链接 二、实现&…

弃购邮件:用这一招帮您赢回失去的客户

弃购邮件:用这一招帮您赢回失去的客户 弃购邮件是发送给将产品添加至购物车却没有结算的顾客(即弃单顾客)的邮件。 这是一种十分有效的顾客留存策略。 在线客户放弃购物车的频率比您想象的要高。他们没有完成购买的原因有很多。但是&#xff…