当前位置: 首页 > 科技观察

适合前端开发!Chrome-Edge-Firefox-Safari决定携手解决网页兼容性问题!

时间:2023-03-21 17:45:27 科技观察

浏览器制造商苹果、谷歌、微软和Mozilla以及软件公司Bocoup和Igalia正在合作创建一个名为Interop2022的网络兼容性规范,以使网络技术和代码在不同的设备和浏览器上工作有一个统一的渲染效果(适合前端开发)。有史以来第一次,所有主要的浏览器供应商和市场上的利益相关者齐聚一堂,共同解决浏览器兼容性问题。以前,相互竞争的浏览器厂商在Web技术的兼容性问题上常常意见不一,尤其是在IE还活着的时候,一个前端页面三套代码的情况非常普遍。在过去几年中,随着监管机构在竞争问题上向苹果和谷歌施压,顶级浏览器制造商开始更频繁地合作,而不是专注于自己的浏览器特定功能。2019年,谷歌和微软联合推出了名为Compat2021的Web兼容性标准,推动了CSSgrid和CSSflexbox的发展。Mozilla参与了该计划的讨论,但Apple及其WebKit团队并不同意。不参与此计划。新的Interop2022规范整体偏向15个领域,其中10个领域是基于去年CSS2021状态调查和GitHub投票的结论。大多数前端开发人员认为,这些领域将特别难以解决跨浏览器的兼容性问题。Processing:CascadeLayers(级联层)有了这个标准,网站可以创建一个“frame”层和一个“custom”层,然后将所有第三方框架的CSS样式赋值给frame层,在custom层写自定义样式,并且自定义层的所有CSS样式都可以比框架层有更高的优先级(忽略选择器)。颜色空间和函数在Web开发的早期,sRGB颜色空间用于以十六进制、rgb()、rgba()或hsl()表示颜色。但是随着显示技术的发展,sRBG已经不够了,所以Interop2022包含了对三种扩展色彩空间(LAB、LCH、P3)的支持测试,以及通过函数在CSS中写颜色的两种方式:color-mix和color-contrast:color-mix():获取两种颜色并返回在指定颜色空间中按指定量混合它们的结果。color-contrast():从颜色列表中选择与指定单色的对比度最高的颜色。Containment(CSScontain属性)contain属性用于识别和测量特定容器的大小,然后根据该容器的大小应用不同的样式。有点像媒体查询@media,但它不是测量视口大小,而是测量容纳内容的框的大小。DialogElement(对话框元素)Dialog元素可以创建一个覆盖窗口,即对话框。例如,::backdrop伪元素可以设置模态框下方背景的样式。在此博客上了解对话框元素。表单修复(FormFixes)表单的一些操作方面,包括外观属性、禁用表单控件

上的事件,以及对输入元素、表单提交和表单验证的错误处理。Scrolling(滚动控件)这篇文章是关于页面滚动的兼容性。Scrollsnap提供了控制界面滚动方式和内容显示方式的工具。CSS中的scroll-behavior属性设置滚动框在由导航或CSSOMScrollAPI触发滚动时的行为方式。overscroll-behaviorCSS属性决定浏览器到达滚动区域边界时的行为。子网格(Subgrid)子网格使得在网格上放置网格容器的后代元素变得容易,在跨复杂布局排列项目时不必担心DOM结构。比如下面三个card组件的header和footer是对齐的,尽管每张card都有自己的grid(网格),这是因为每张card都是跨越父grid的三行item,然后使用child的gridSubgrid将这些行继承到每张卡片中。TypographyandEncodings(字体设计和编码)TypographyandEncoding包含了一系列影响网络排版的测试,包括font-variant-alternates、font-variant-position、icunit和CJK(中文、日文和韩文)文本编码.字体功能是优化排版的强大属性,但前提是它们是跨浏览器兼容的。ViewportUnits(窗口单位)新的视口单位考虑了包含标题栏的布局,引入了最大、最小和动态的视口单位,比如100svh指的是100%的最小可能视口高度,100lvh指的是100%的可能的视口高度最大可能的视口高度,100dvh指的是100%动态视口高度-该值将随着用户滚动而改变。类似地,svw、lvw和dvw用于宽度单位。WebCompat(Web兼容)浏览器中的特定错误可能不会导致某些网站无法按预期呈现,或者浏览器可能与Web标准不同,从而导致网站或Web应用程序的用户体验不佳,Interop2022旨在兼容性测量是用于捕获和解决这些问题。以上是10个新的web兼容规范,另外还有5个继承自Compat2021的规范标准:AspectRatio(屏幕纵横比)Flexbox(弹性盒模型)Grid(网格)StickyPositioning(粘性定位)TheTransforms(变形盒模型)规范的一部分已经很常用了,这里就不再介绍了。从根本上说,Interop2022是一个不断发展的指标,用于评估浏览器与上述Web标准的兼容性。Interop2022dashboard有一个评分系统,评估主要浏览器的整体兼容性:这个东西全年不断更新,它还显示主要浏览器的工程师实时修复错误、实现新功能和更新的进度。改进测试,以及每个标准的项目进度: