HTML 5
w3c已经好久没有更新HTML的最新标准了,据传2017年年底,HTML5.2将推出,不知道又会有哪些惊喜之处。只要获得浏览器厂商支持,HTML从源头上就可以帮助多数前端工程师省去费力写JavaScript的麻烦,写到这,我默默看了看浏览器市场报告,IE76~8还存在15%以上的市场额,只能感慨生不逢时。
逢年初,记录下H5的部分新特性,等年底5.2推出有个对照。
安全性
Brave的流行,从另方面烘托了网页安全性已经成为用户目前关注的重要性能之一。5.1同样不甘落后。
防止钓鱼
a标签target=’_blank’,新打开的页面可以更改window.opener.location加载到钓鱼网站,通过恶意js代码,做一些不可见人的勾当。5.1中rel=‘noopener’属性,则隔离了这一行为。1<a href="javascript:" target="_blank" rel="noopener"></a>脚本和样式文件随机数加密
5.1提供的另外一项安全措施则是通过nonce添加在script或者style引入标签中,通过一组随机数,仅针对一次页面请求有效。1<script nonce=""></script>
布局
header/footer/article/aside/section/nav…
这些标签的出现,代替只有div可用的HTML4,更加语义化.123456789101112<article><header><h2>this is a header</h2><aside><header><h2>this is a aside</h2><p><a href="javascript:">well well well</a></p></header></aside></header><footer>made by mickeyZaku </footer></article>全屏
H5的另一个特性,引入声光电,可以播放音视频,因此有一个大众化的问题,是否支持全屏(allowfullscreen)播放。这个特性将会被保留。1<iframe title="Video" src="http://mickeyZaku.github.io" allowfullscreen></iframe>响应
一听这两字就激动了,may the force with w3c!不需要css就能响应了。当然还只是再图片中,而且仔细一看代码,除了让html代码变得臃肿外,也没少敲几个字12345678910111213141516171819202122232425262728<!--使用src-set,x也可以用w替代--><img src="img/low-res.jpg" srcset="img/low-res.jpg 1x,img/medium-res.jpg 2x,img/high-res.jpg 3x"><!--常用的判断尺寸加载图片--><img src="img/low-res.jpg"sizes="(max-width: 25em) 60vw, 100vw"srcset="img/low-res.jpg 1x,img/medium-res.jpg 2x,img/high-res.jpg 3x"><!--使用picture,更加像css的html,wtf,我再说什们呢--><picture><source media="(max-width: 25em)" srcset="img/small/low-res.jpg 1x,img/small/medium-res.jpg 2x,img/small/high-res.jpg 3x"><source media="(max-width: 60em)" srcset="img/large/low-res.jpg 1x,img/large/medium-res.jpg 2x,img/large/high-res.jpg 3x"><img src="img/default/medium-res.jpg"></picture>
更加人性化的部分特性
图片
5.1中图片的操作更加灵活1234567<!--零宽度,至少不用再让浏览器reset了,img也可以用来进行计数了--><img src="" alt="" width="0" height="0"><!--图片标题的灵活运用,figcaption标签已经可以用在任何图片中了--><figure><img src="" alt=""><figcaption>pic1</figcaption></figure>表单
多了几项比较人性化的,更加人机交互的功能12345678910111213141516<!--required 校验表单--><input type="password" name="password" required /><!--空选项,用于用户友好--><select name="" ><option value="null"></option></select>添加扩展信息,信息本身再页面中时隐藏的,但可大大加大table等的语义化<table><sumamary>this is description for table</sumamary><tr><td></td></tr></table><!--日历选项--><input type="week" name="year_week"><input type="month">拼写检查
不多说,属性spellcheck 取值可以为空字符串、true 和 false 。如果指定其状态为 true,就表示元素将会接受对其的拼写和语法检查。element.forceSpellCheck() 将强制用户代理在文本元素上报告检查出来的拼写和语法错误,即使用户从来没将输入聚焦在该元素上。123<p spellcheck="true"><input type="text"/></p>