web标准与浏览器前缀

目录

  • W3C
  • web标准:是敌还是友
    • 人员结构
    • 标准制订的流程
  • css3,css4的传说
    • css3
  • 浏览器前缀:失败的产物
  • 关于渐进增强和优雅降级

W3C

万维网最初是由欧洲核子研究组织的一个项目发展起来的,在那里蒂姆·伯纳斯-李开发出第一个万维网的雏形,之后于1994年10月,蒂姆·伯纳斯-李出走欧洲核子研究组织,并成立W3C
当时不同的浏览器厂商实现的网页标准不同,山头林立的市场导致网页显示方式不一致,开发者的心智负担极大,W3C联盟试图让所有的供应商实施一套由联盟选择的核心原则和组件

web标准:是敌还是友

与大众的理解大相径庭的是,W3C并不“生产”标准

实际上,W3C充当的是一个论坛的角色:W3C通过工作组的形式,将某项技术的相关各方集合在一起,由他们共同制定标准。在这个过程中,W3C制定了整个平台的规则,并监督整个进程,但这些技术规范并非由W3C的工作人员所编写

人员结构

结构

从上图中我们可以看到W3C人员主要由三部分组成:

  1. 公司代表
    在W3C中,绝大部分人员来自会员公司,事实上,这些来自浏览器厂商,研究机构,主流网站的会员公司是web标准的推动者和W3C的资金主要来源,web标准的兴旺他们也是直接受益者
  2. 特邀专家
    特邀专家是指那些被邀请参与标准制定的Web开发者。在真正获得这样的殊荣之前,他们需要证明自己在解决难题时能够持续不断地投入,在参与讨论时能够体现出深厚的技术背景
  3. W3C工作人员
    这些工作人员才是真正在W3C内工作的人,他们为工作组和W3C之间的交流提供便利

可能很多人认为W3C手握标准,号令天下,浏览器厂商唯唯诺诺,不敢不从,这其实是误解,在web标准上,会员公司的话语权往往比W3C更大,这一点从上面那张图中我们也能看出来

标准制订的流程

每项规范从启动到成熟都必须经历以下几个阶段

  1. 编辑草案
    这是一项规范的最初样子,在这个阶段对规范没有任何要求,内容可以天马行空,工作组也不会批准,但它是所有规范都必须要经历的一个阶段
  2. 首个公开工作草案
    这草案的首个公开版本,工作组应该做好准备以迎接公众的反馈
  3. 工作草案
    经过多次迭代后的稳定版的草案,浏览器厂商也是从这一步开始支持
  4. 候选推荐规范
    此时的草案比较适合实现和测试,一项规范只有具备一套完整的测试套件和两个独立的实现之后,才有可能继续推进到下一阶段
  5. 提名推荐规范
    到达这个步骤后如无意外这个规范成为W3C推荐规范只是时间问题,这同样也是其他W3C会员对这个规范提出异议的最后环节
  6. 正式推荐规范
    成为W3C推荐标准

css3,css4的传说

CSS1的规范发表于1996年,内容十分的少,用一个html就能完全表示,到了1998年,CSS2问世,它带来了更严谨的语法,更丰富的样式,此时的CSS已经十分复杂,靠人脑已无法完全记忆,人们意识到,此时的CSS已无法作为一个规范来发展,庞杂的内容导致人们难以修改和阅读,每个CSS属性都必须具备两个独立实现,但这几乎是不可能的

所以CSS工作组决定,将原本的CSS规范分散成多个不同的规范,每个规范独立发展,拥有着独立版本号

其中有些工作组基于CSS2.1的版本号升级成了CSS3,如

  1. CSS语法(http://w3.org/TR/css-syntax-3)
  2. CSS层叠与继承(http://w3.org/TR/css-cascade-3)
  3. CSS颜色(http://w3.org/TR/css3-color)
  4. CSS字体(http://w3.org/TR/css3-fonts)
  5. CSS背景与边框(http://w3.org/TR/css3-background)

有些工作组是在分散之后才成立的,版本号从1开始,如:

  1. CSS变形(http://w3.org/TR/css-transforms-1)
  2. CSS伸缩盒布局(http://w3.org/TR/css-flexbox-1)
  3. CSS网格布局(http://w3.org/TR/css-grid-1)

css3

虽然“CSS3”这个术语广为人知,但它并未在任何官方规范中正式定义

与CSS 2.1或更早版本的CSS 1形成对比,通常情况下,当人们提及“CSS3”时,他们指的是一个非正式的规范集合,包括第三版的CSS规范和一些仍标记为版本1的新规范。尽管对于哪些规范应该被归类为CSS3有一定共识,但随着CSS各模块在近年以不同速度发展,我们已经越来越难以把这些规范以CSS3、CSS4这样的方式来划分了,而且这样也难以被大众理解和接受

浏览器前缀:失败的产物

在制订规范的过程中,工作组往往希望能获得来自开发者的反馈,但开发者对于不能应用于生产的属性并不感兴趣,如果一个特性在早期制订阶段就被开发者们应用于生产环境,那么工作组就会被早期的实验性特性困住了手脚,而一旦特性变动,那么早期使用这些特性的项目都会出现问题

为了解决这个问题,人们提出了浏览器前缀这个解决方案,这个方案是指每个浏览器都可以实现这些实验性的(甚至是私有的、非标准的)特性,但要在名称前面加上自己特有的前缀。最常见的前缀分别是Firefox的-moz-、IE的-ms-、Opera的-o-以及Safari和Chrome的-webkit-
当开发者发现那些加了前缀就能实现以前需要大费周章才能实现效果的特性时,滥用开始了,社区上铺天盖地的推荐他们,互联网上的教程会写到他们
然而,不久后开发者们就发现,在使用这些神奇的新特性时,如果只写出当下有效的浏览器前缀,就意味着以后要经常回来打补丁,每当又一个浏览器实现了这个新特性时,他们都需要多加一行
为了一劳永逸,开发者会尽可能的加上所有可能的浏览器前缀,再把无前缀的版本放在最后,以图一劳永逸。我们最终写出的代码可能就是这样的:

-moz-border-radius:10px;
-ms-border-radius:10px;
-o-border-radius:10px;
-webkit-border-radius:10px;
border-radius:10px;

这里面有两条声明是完全多余的:-ms-border-radius和-o-border-radius这两个属性从来没有在任何浏览器中出现过,因为IE和Opera从一开始就是直接实现border-radius这个无前缀版本的

如今的浏览器厂商已经很少以前缀的方式来实验性地实现新特性了。取而代之的是,这些实验性特性需要通过配置开关来启用,可以宣布的是,浏览器前缀已经彻底成为了一个失败的产物,不过我们还需要很长的时间,才能从浏览器前缀所引发的涟漪效应中解脱出来

关于渐进增强和优雅降级

渐进增强,即英文中的"progressive enhancement",是一种网页开发策略,它从为低版本浏览器构建基本功能的页面开始,确保网页的核心功能可用,然后再为高级浏览器添加更丰富的效果和交互,以提升用户体验
而优雅降级,即英文中的"graceful degradation",则是另一种策略,它先为现代浏览器构建完整的功能,再对低版本浏览器做适配,确保基本功能的可用性

.transition { /*渐进增强写法*/
  -webkit-transition: all .5s;
     -moz-transition: all .5s;
       -o-transition: all .5s;
          transition: all .5s;
}
.transition { /*优雅降级写法*/
          transition: all .5s;
       -o-transition: all .5s;
     -moz-transition: all .5s;
  -webkit-transition: all .5s;
}

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

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

相关文章

超声波清洗机有用吗?四大主流超声波清洗机终极PK大测评!

超声波清洗机是通过产生的超声波对于液体不断动作的一个过程,水分子在超声波的震动下互相碰撞挤压,从而发生空化作用对物体表面的污迹进行乳化剥离!相比手洗的方式,超声波能够深入夹缝清洁,清洁程度非常高!…

充电学习—8、Type-C TCPC TCPCI

TCPC是usb Type-C port controller; 通用串行总线C型端口控制器 TCPCI是tcpc控制器接口规范; TCPC是个功能块,其中含有VBUS和VCONN的电源控制功能,CC信号的处理 逻辑,PD应用中的BMC物理层和协议层(PD信息…

FlowUs:打造沉浸式协作体验感受

直观的用户体验 从我个人的角度来看,FlowUs的界面设计非常符合现代审美,简洁而不失功能性。每次打开FlowUs,我都能迅速找到我需要的功能,这大大提升了我的工作效率。 实时协作的流畅性 在FlowUs中,我最喜欢的功能之一就…

13.4 内存管理

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

c++参考std::string自己设计类hstring

目录 一、前言 二、设计需求 三、设计思想 1.功能一 1.功能二 四、设计过程 1.类hstring搭建 2. 实现有参构造函数 3. 实现副本构造函数 4.完整代码 五、结束语 一、前言 在c中有很多的库,但是在有些时候呢,我们一定要学会自己去设计库&#…

抖音素材网站平台有哪些?素材下载网站库分享

在这个视觉信息充斥的时代,抖音已经成为众多自媒体人展示才华的舞台。要在众多创作者中脱颖而出,不仅需要独特的创意,还需要优质的素材来支持你的内容制作。今天,我将介绍几个为抖音视频提供高品质素材的网站,包括国内…

Python构造TCP三次握手、传输数据、四次挥手pcap数据包并打乱顺序

Python构造数据包,包含: TCP三次握手、 传输数据、 四次挥手 实现 随机乱序TCP数据包 from scapy.all import * from scapy.all import Ether, IP, TCP, UDP, wrpcap from abc import ABC, abstractmethod import random import dpkt from scapy.all…

训练营第四十二天| 583. 两个字符串的删除操作72. 编辑距离647. 回文子串516.最长回文子序列

583. 两个字符串的删除操作 力扣题目链接(opens new window) 给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符。 示例: 输入: "sea", "eat"输出: …

QT6不自动生成pro文件

安装了QT的新版本结果他不自动生成pro文件了导致下次打开很复杂 记得在创建时选择qmake,因为新版默认cmake

宝塔软件默认安装位置

自带的JDK /usr/local/btjdk/jdk8Tomcat 各个版本都在bttomcat这个文件夹下面,用版本区分。tomcat_bak8是备份文件 /usr/local/bttomcat/tomcat8nginx /www/server/nginxnginx配置文件存放目录 /www/server/panel/vhost/nginxredis /www/server/redismysql /…

财讯杂志财讯杂志社财讯编辑部2024年第6期目录查询

财税研究 “互联网税务”模式在企业税务管理中的应用 陈飞; 1-3 国有企业税务稽查的问题与对策研究 梁涵瑜; 4-6 税务师事务所执业质量内部控制优化路径及风险防范 万晓玲; 7-9《财讯》投稿:cnqikantg126.com 基于全过程的新能源电力投资企业税务筹…

宝塔面板使用技巧(pure-FTP)上传文件和文件夹默认权限644的修改

前言 科技在进步各种各样的开源软件和库让我们应接不暇,我估计现在所有做php开发的人员都知道宝塔面板,我就经常用,但是不知道大家出现过一个问题不就是在我们开发过程中需要实时的给服务器上传我们开发的文件那么就涉及到了宝塔自带的pure-F…

BC-Linux 8.6最小化安装的服务器启用GNOME图形化界面

本文记录了BC-Linux 8.6最小化安装的服务器如何启用GNOME图形化界面的过程。 一、服务器环境 1、系统版本 [rootlocalhost ~]# cat /etc/os-release NAME"BigCloud Enterprise Linux" VERSION"8.6 (Core)" ID"bclinux" ID_LIKE"rhel fe…

央国企财务专家的“专家课”——中国总会计师协会联合实在智能举办RPA专项培训

近日,中国总会计师协会正式举办了为期五天的「财务数字化思维与实用IT技能提升」专项培训,吸引了来自中铁十五局集团有限公司、中国航空工业规划设计院、中核核电运行管理有限公司、中国北方车辆有限公司、一汽物流有限公司等国企、事业单位及民营企业共…

eclipse宝刀未老

Theia 是一个高度可定制的、开源的、基于 Web 的集成开发环境(IDE)框架。它由 Eclipse Foundation 主导,旨在为云和本地环境提供现代化的、全功能的 IDE 解决方案。Theia 的核心目标是提供一个灵活的平台,开发者可以根据自己的需求…

【ARM】MDK自动备份源文件

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决MDK在编写文档的时候需要找回上一版代码的问题。 2、 问题场景 目前大部分情况下对于源代码的管理都是使用的Git等第三方的代码管理平台。这样的第三方代码管理平台都是针对与代码的版本更新进行管理。对于本地…

帕金森患者宜居环境指南,温馨舒适助康复

🌸帕金森病,优质的居住环境能极大地提升患者的生活质量。今天,就为大家分享一下帕金森患者宜居环境的几个关键点,希望每位患者都能拥有一个温馨舒适的康复空间。 🛋️首先,布局要合理。对于帕金森患者来说&…

XMLXXE实体注入

XML&XXE实体注入 原理 XML被设计为传输和存储数据,XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素,其焦点是数据的内容,其把数据从HTML分离,是独立于软件和硬件的信息传输工具。等同于JSO…

【面试干货】Java方法重写的规则

【面试干货】Java方法重写的规则 1、Java方法重写的规则2、示例代码3、总结 💖The Begin💖点点关注,收藏不迷路💖 在Java中,方法重写(Overriding)是面向对象编程中的一个核心概念,它…

具备智能灵敏度校准并可Pin to Pin替代TSM12的电容式触摸芯片GTX312L

电容式触摸芯片 - GTX312L是一款具有智能灵敏度校准功能的12通道电容式触摸芯片,采用I2C通信协议,对各种噪音和环境的变化可靠性有保障,低功率发动机可以增加产品的使用时间,内部控制寄存器可以使用I2C读写接口。 GTX312L具有内部…