HTML5.1和HTML5.2
HTML5.1和HTML5.2
2014年,Html5正式规范被提出,至此距离HTML4.01已经过去了10多个年头了。HTML5的出现让web进入了新的时代,它不仅废除了一些存在问题的旧标签,还引入了许多新的标签和API,新的标签增强了语意,虽然通过 div
和 css
你也可以构建整个页面,但是div本身没有任何的语意,这对之后的阅读不友好,使用语义化标记,可以提高代码的可读性,让浏览器更好地优化网页(尤其在移动终端), 以及让搜索引擎爬虫更好地理解网页。例如header
、footer
、article
和session
等。其他的标签如video
则是为了在移动设备上更好的支持多媒体。另外的如localstore
和Geolocation API
之类的为开发者提供了便利。
之后的两年里,W3C推出了关于HTML的两次更新,这被人称为HTML5.1。之后W3C开始着手发展HTML5.2草案,也许我们能在2017年看到HTML5.2的标准被推出。
整体上HTML5.1并没有什么特别大的更新,而且各大浏览器厂商也没有多少支持。( ͡° ͜ʖ ͡°) 这里调了几点谈一谈更新处。
- 新增加的特性
picture
标签和srcset
属性 一个picture
标签下可包含若干个source
和一个img
,该标签的出现是为了实现响应式图片。
srcset
这个属性也可以直接用于img
,对于响应式图片,然而我选择object-position
,object-fit
(¬、¬)
2. details
和summary
这两个标签允许我们向一段内容添加扩展信息。可以通过单击元素来显示或隐藏一个附加信息块。 默认情况下是隐藏附加信息的。
这里summary
是会显示在details
内容的最上面,即使你在summary
前面加入其他内容,最终也会显示summary
之下。当然你写多个sunmmary
也只会显示一个。
3. menuitam
menu
标记来定义菜单,里面包含了一个或者多个menuitem
元素, 然后利用 contextmenu 属性将其绑定到任何元素上。感觉挺鸡肋的一个标签 ๑乛◡乛๑ ,感觉没什么用,还要绑定到其他元素上,还没有chrome插件的那个自定义右键菜单实用。现在只有firefox支持,chrome和opera要使用这个得开启实验性功能。
4. onrejectionhandled
和onunhandledrejection
这两个是web api里面的用来追踪Promise的rejection
5. history.scrollRestoration
history.scrollRestoration
有两个值 auto和manual,默认为auto,就和现在的机制一样,将history.scrollRestoration
设置成manual后,浏览器将不再记录滚动的位置。
6. a
和area
中增加rel=noopener
通过链接打开新的页面,新的页面存在一个opener属性保留了对父页面的引用,子页面可以通过opener来将父页面跳走
如果`a`中打开方式不为`_blank`则没有问题 <br/>
7. 还有一些比如`frame`支持全屏、`links`添加rev、`script`和`style`增加nonce之类的就不一一介绍了。
- 移除的特性
- appCache 对就是那个manifest ๑乛◡乛๑
- command API 虽然页面上不能用了,但是可以在控制台使用
input type="range"
的multiple
属性(不明所以)-
navigator.yieldForStorageUpdates()
和Storage mutex
这个
Storage mutex
是个什么东西呢?从字面意思上来说,应该是和互斥有关。一个用户代理可能有一个store mutex
,这东西通常用来控制一些可分享的状态,比如cookies。 - 还有一些不觉明厉的东西,有兴趣可以查资料了解下
- 改变的特性
header
和footer
可以嵌套使用option
可以为空img
宽度可以为0- mousewheel改名为wheel
- fileCallback 改成 blobcallback.(没用过,不知道干啥的)
area
元素如果href重复了,那么alt
不允许为空- 等等
在2016年底,w3c工作组开始HTML5.2草案的工作。
现在HTML5.2草案中主要包括以下内容
- 允许
div
元素作为dl
的直接子元素 - 移除
showModalDialog
模式 - 在
html
元素中增加manifest
属性(╮( ̄▽ ̄)╭ ) - 允许currentScript返回SVGScriptElement
- 重置
textarea
应该重置它的dirty value flag
menu
的toolbar
type可能会被移除keygen
将可能被移除