爱生命,远离IE.拒绝IE浏览器,Edge改邪归正也不看。
浏览器兼容:
主流浏览器都兼容 HTML5 的新标签,对于 IE8 及以下版本不认识 HTML5的新元素,可以使用 JavaScript 创建一个没有的元素来解决,例如:
<script> document.createElement("header"); </script>
bootstrap模板:
浏览器会进行能力检测:
<!--[if lt IE 9]> <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script> <![endif]-->
就是参考shiv 来解决兼容性问题,打开CDN库:https://www.bootcdn.cn/,直接搜索需要的资源就可以了。。。。。。比如:
TML5 现在已经不是 SGML 的子集,主要是关于图像,位置,存储,多任务等功能的增加。
本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;sessionStorage 的数据在浏览器关闭后自动删除;新的技术webworker, websocket, Geolocation.
新增标签
1、<article> 标记定义一篇文章
2、<header> 标记定义一个页面或一个区域的头部
3、<nav> 标记定义导航链接
4、<section> 标记定义一个区域
5、<aside> 标记定义页面内容部分的侧边栏
6、<hgroup> 标记定义文件中一个区块的相关信息
7、<figure> 标记定义一组媒体内容以及它们的标题
8、<figcaption> 标签定义 figure 元素的标题。
9、<footer> 标记定义一个页面或一个区域的底部
10、<dialog> 标记定义一个对话框(会话框)类似微信
11、<video> 标记定义一个视频
12、<audio> 标记定义音频内容
13、<source> 标记定义媒体资源
14、<canvas> 标记定义画布
15、<menu> 右键菜单
16、<meter> 范围条
17、<progress> 进度条
18、<datalist> 为input标记定义一个下拉列表,配合option
表单类型:
1、email 邮箱地址
2、url URL地址
3、date,time,month,week,datetime,datetime-local 日期类型
4、number 数字(max min step)
5、range 范围滑块(max min step)
6、search 搜索输入框
7、tel 电话号码输入框
8、color 颜色拾取器
表单属性
1、placeholder 输入框默认内容
2、required 必填内容(必须加name)
3、pattern 正则验证(必须加name)
4、autofocus 自动聚焦
5、autocomplete 自动完成(autocomplete="on/off")
6、novalidate 不验证此表单(form属性)
7、multiple 多个值上传
移除的元素:
纯表现的元素:basefont,big,center,font, s,strike,tt,u;
对可用性产生负面影响的元素:frame,frameset,noframes;
支持HTML5新标签:
IE8/IE7/IE6支持通过document.createElement方法产生的标签,可以利用这一特性让这些浏览器支持HTML5新标签,浏览器支持新标签后,还需要添加标签默认的样式。
当然也可以直接使用成熟的框架、比如html5shiv,地址:https://cdn.bootcss.com/html5shiv/r29/html5.min.js。
用语义化代码更直观,而且更方便SEO优化。但是此HTML5新标签在IE6/IE7/IE8上并不能识别,需要进行JavaScript处理。以下就介绍几种方式。
<!--[if lt IE 9]>
<script>
(function() {
if (!
/*@cc_on!@*/
0) return;
var e = "abbr, article, aside, audio, canvas, datalist, details, dialog, eventsource, figure, footer, header, hgroup, mark, menu, meter, nav, output, progress, section, time, video".split(', ');
var i= e.length;
while (i--){
document.createElement(e[i])
}
})()
</script>
<![endif]-->
如果是IE9以下的IE浏览器将创建HTML5标签, 这样非IE浏览器就会忽视这段代码,也就不会有无谓的http请求了。
<!--[if lt IE 9]>
<script type="text/javascript" src="http://cdn.bootcss.com/html5shiv/r29/html5.min.js"></script>
<![endif]-->
上面这段代码仅会在IE浏览器下运行,还有一点需要注意,在页面中调用html5.js文件必须添加在页面的head元素内,因为IE浏览器必须在元素解析前知道这个元素,所以这个js文件不能在页面底部调用。
不管使用以上哪种方法,都要初始化新标签的CSS。因为HTML5在默认情况下表现为内联元素,对这些元素进行布局我们需要利用CSS手工把它们转为块状元素方便布局
/*html5*/
article,aside,dialog,footer,header,section,footer,nav,figure,menu{display:block}
如果IE6/7/8 禁用脚本的用户,那么就变成了无样式的"白板"网页,我们该怎么解决呢?
我们可以参照facebook的做法,即引导用户进入带有noscript标识的 “/?_fb_noscript=1”页面,用 html4 标签替换 html5 标签,这要比为了保持兼容性而写大量 hack 的做法更轻便一些。
<!--[if lte IE 8]>
<noscript>
<style>
.html5-wrappers{display:none!important;}
</style>
<div class="ie-noscript-warning">您的浏览器禁用了脚本,请<a href="#">查看这里</a>来启用脚本!或者<a href="/?noscript=1">继续访问</a>.
</div>
</noscript>
<![endif]-->
这样可以引导用户开启脚本,或者直接跳转到HTML4标签设计的界面。
*请认真填写需求信息,我们会在24小时内与您取得联系。