关于web标准
从我去年接触前端,到现在,我似乎都没有特意去研究过web标准。我只知道传统上推崇结构样式行为分离,js、css、html各司其职,
不推荐在文档的节点上写类似<p onclick=“fn()”>的事件绑定,而是js中获取节点再绑定事件;
不推荐在js里操作css样式,而是通过改变DOM节点的类名实现效果,等等。
这些都是实践中大家遵循的“规范”,然而Web标准,实际上说了哪些内容?
为什么会有WEB标准?
W3C提到:
由于存在不同的浏览器版本,web 开发者常常需要为耗时的多版本开发而艰苦工作。当新的硬件(比如移动电话)和软件(比如微浏览器)开始浏览 web 时,这种情况开始会变得更加严重。
为了 web 更好地发展,对于开发人员和最终用户而言非常重要的事情是,在开发新的应用程序时,浏览器开发商和站点开发商共同遵守标准。
web 的不断壮大,使得越来越有必要依靠标准实现其全部潜力。web 标准可确保每个人都有权利访问相同的信息。如果没有 web 标准,那么未来的 web 应用,包括我们所梦想的应用程序,都是不可能实现的。
同时,Web 标准也可以使站点开发更快捷,更令人愉快。为了缩短开发和维护时间,未来的网站将不得不根据标准来进行编码。开发人员不必为了得到相同的结果,而挣扎于多版本的开发。
嗯,所以说白了就是为了 消除各大厂商在实现web功能时各行其是导致的浏览器兼容性问题。
在开发者层面上,则是让开发者的代码可以在不同厂商、不同版本的客户端被正常访问。
突然想到最近看到的一些公司的招聘还要求兼容IE5、IE6,我就一阵哆嗦。
WEB标准有哪些东西?
百度上说
WEB标准不是某一个标准,而是一系列标准的集合。网页主要由三部分组成:结构(Structure)、表现(Presentation)和行为(Behavior)。对应的标准也分三方面:结构化标准语言主要包括XHTML和XML,表现标准语言主要包括CSS,行为标准主要包括对象模型(如W3C DOM)、ECMAScript等。
所以,当我们在学习前端三把剑的时候,我们已经在不知不觉地遵守了部分WEB标准,因为标记语言、脚本语言本身也在不断标准化。
当我们开始学习html的时候,书本上、教程网站上会告诉我们:
html标签往往是成对存在的,标签要闭合,像<img /> <br />这样的标签要加“/”表示闭合。
标签名要小写,html特性大小写不敏感,特性的值要加双引号。
這些是结构层面的标准。
事实上,至今的WEB标准还真不少:HTML4.0(当然现在大家更多提到的是H5)、css2.0、xhtml1.0(号称更严谨的html),ECMAScript等等。
但是标准并不等于事实标准。
因为标准中的一些较新内容并未有被各个浏览器实现。
像ES6,和ES5相比确实有些激进,以至于像promise、解构赋值之类的,只有部分浏览器原生实现了。所以大家不得不通过babel转码。
而作为开发者,我们更多时候只要遵循语言本身的规范,合理使用标记语言,让标签语义化,在构建页面时遵循三者分离,在写逻辑时少用兼容性不好的api,页面就挺符合web标准了。
另外,当我们说web标准兼容性好时,其实指的是向后兼容性好。对于旧版本的浏览器,支撑成度不一,所以有时候我们想使用一些新api时,需要给页面代码添加polyfill。
关于web标准的更多相关文章
- web标准之道——笔记
字体设置 sans和sans-serif为通用字体,具体哪个字体被最终应用由浏览器决定,通用字体只有在其他字体都无效时才会被当作代替方案.通用字体应该放在最后面 sans衬线字体 容易阅读,一般使用在 ...
- 【转载】跟随 Web 标准探究DOM -- Node 与 Element 的遍历
跟随 Web 标准探究DOM -- Node 与 Element 的遍历 这个是 Joyee 2014年更新的,可能是转战github缘故,一年多没有跟新了.这篇感觉还挺全面,就转载过来,如以前文章一 ...
- 深入理解Web标准(网站标准)
深入理解Web标准(网站标准) 我觉得一名Web前端应该好好理解Web标准到底是什么,为什么要在我们的实际实践中遵循Web标准. 什么是Web标准.百度百科的解释是: WEB标准不是某一个标准,而 ...
- 我所理解的RESTful Web API [Web标准篇]
REST不是一个标准,而是一种软件应用架构风格.基于SOAP的Web服务采用RPC架构,如果说RPC是一种面向操作的架构风格,而REST则是一种面向资源的架构风格.REST是目前业界更为推崇的构建新一 ...
- asp.net开发与web标准的冲突问题
Visual Studio .net从2003到现在的2008,一路走来慢慢强大……从以前的vs2003能自动改乱你的html代码到现在在vs2008中都能直接对html代码进行w3c标准验证并提示了 ...
- 对WEB标准以及W3C的理解与认识
按照习惯的理解,这两个概念似乎都是指的一个东西(就是咱们在这个版里讨论的这些个"高深理论“^_^).但我认为,事实上从技术的角度上讲,这两个事物几乎没有任何相关性.web标准简而言之就是将页 ...
- 细谈WEB标准
最近有些朋友很是疑惑web标准是什么,我在这里先做一个总结,有更好的见解的可以私信给我! 首先切入正题之前先谈一下什么叫DOCTYPE,DOCTYPE是document type(文档类型)的简写,主 ...
- Web标准中用于改善Web应用程序性能的各种方法总结
提起Web应用程序中的性能改善,广大开发者们可能会想到JavaScript与DOM访问等基于各种既存技术的性能改善方法.最近,各种性能改善方法被汇总成为一个Web标准. 本文对Web标准中所包含的各种 ...
- Web标准和搜索引擎优化技术
1.Web标准不是某一个标准,而是一系列标准的集合.出来网页内容之外,网页主要由三部分组成:结构(Structure).表现(Presenttation)和行为(Behavior).对应的标准也分三方 ...
- 对Web标准的理解。可用性和可访问性
一Web标准 简单的说,就是HTML.CSS.JavaScript这三者分离.WEB标准不是某一个标准,而是一系列标准的集合.网页主要由三部分组成:结构(Structure).表现(Presentat ...
随机推荐
- 使用openmp进行共享内存编程
预处理指令pragma:在系统中加入预处理器指令一般是用来允许不是基本c语言规范部分的行为.不支持pragma的编译器会忽略pragma指令提示的那些语句,这样就允许使用pragma的程序在不支持它们 ...
- Metasploit渗透测试环境搭建
渗透测试实验环境搭建 下载虚拟机镜像 5个虚拟机镜像,其中Linux攻击机我选择用最新的kali Linux镜像,其余的均使用本书配套的镜像. 网络环境配置 VMware虚拟网络编辑器配置: 将VMn ...
- 2019-2020-1 20199325《Linux内核原理与分析》第十一周作业
实验简介: Set-UID 是 Unix 系统中的一个重要的安全机制.当一个 Set-UID 程序运行的时候,它被假设为具有拥有者的权限.例如,如果程序的拥有者是root,那么任何人运行这个程序时都会 ...
- Add text to 'Ready Page' in Inno Setup
https://stackoverflow.com/questions/1218411/add-text-to-ready-page-in-inno-setup
- MySQL事务与并发
很多程序员都学过MySQL,而且也会写SQL语句.但仅仅会写还远远不够,在面试中以及在工作中,还必须要会事务和并发. 一.事务 事务是满足 ACID 特性的操作,可以通过 Commit 提交事务, ...
- Linux网络服务第三章远程访问及控制
1.笔记 655355:端口限制 监听地址:对外提供服务的地址 AllowUsers:仅允许用户登录 DenyUsers:仅禁止用户登录 AllowUsers-用户名-公网地址 ssh/id_rsa. ...
- 【React踩坑记六】create-react-app创建的react项目通过iP地址访问(实现局域网内访问)
同项目组的小伙伴想用自己的电脑访问我电脑上开发阶段的create-react-app创建的react项目. 试过了了各种内网穿透工具ngrok以及localtunnel等. 奈何打开效率实在太过于龟速 ...
- Ceph 12.2.0 实践osd 智能分组功能
以前我们需要对ssd和hdd进行分组的时候,需要大量的修改crush map,然后绑定不同的存储池到不同的 crush 树上面,现在这个逻辑简化了很多.以上是官方宣传听起来很不错等到12.2.0稳定版 ...
- Xapian实战(三):索引
参考资料: Xapian:Document, Value和Term Xapian:Database Xapian机制简要介绍 1. Xapian中各类要点总结 @ Database Database ...
- 01 微信小程序入门
一. 小程序介绍 微信小程序是腾讯于2017年1月9日推出的一种不需要下载安装即可在微信平台上使用的应用,主要提供给企业.政府.媒体.其他组织或个人的开发者在微信平台上提供服务. 微信小程序和微信的原 ...