HTML5新特性
HTML5 具有以下新特性:
语义化标签
使用具有明确含义的标签
<header>(网页头部);
<nav>(导航栏);
<article>(独立内容块);
<section>(内容区块);
<aside>(侧边栏)
<footer>(网页尾部);
这样有利于 SEO(搜索引擎优化),方便其他设备解析网页,也利于团队开发和维护,增加代码可读性。语义化标签主要针对搜索引擎,新标签可复用,但需要注意的是,在 IE9 中需要转化为块级元素,例如:header,nav,main{display:block;} 。
增强型表单
新增了多种表单类型:
如邮箱验证(<input type="email">);
数值输入(<input type="number" min="9" max="12">,可限制输入数值范围);
文件导入(需配合 JavaScript 代码使用,上传多个文件可添加 multiple 属性,上传图片可添加 enctype 属性)、图片按钮等。
Web 存储
提供了更好的机制来存储客户端网络数据,包括会话存储(sessionStorage)和本地存储(localStorage)。会话存储的数据只在当前会话有效,浏览器窗口关闭时数据会被删除;本地存储的数据会一直存在,除非手动删除,即使浏览器窗口关闭后再次打开,数据仍然可用。
用于绘画的 canvas 元素
可使用脚本(通常是 JavaScript)在网页上绘制图像。
用于媒介回放的 video 和 audio 元素
支持原生的音频和视频播放,可通过相关属性和方法进行操作
如 autoplay(自动播放);
controls(显示控件);
loop(循环播放);
muted(静音、poster(规定视频下载时显示的图像);
preload(预加载)、src(资源 URL)等。
但需注意多媒体标签在不同浏览器下存在兼容性问题,例如谷歌浏览器禁止了音频和视频的自动播放,若要自动播放视频需添加 muted 属性使其静音播放。
新的输入类型和表单控件
新的输入类型包括 email(限制用户输入必须为 email 格式)、number(限制为数字类型)、tel(手机号码)、search(搜索框)、color(生成颜色选择表单)、date(日期类型)、time(时间类型)、month(月类型)、week(周类型)等;新的表单控件有 datalist(数据列表)、progress(进度条)、meter(度量衡)等;表单属性包括 autocomplete(自动完成)、placeholder(提示文本)、autofocus(自动聚焦)、required(必填)、multiple(可多选文件提交)等。
地理定位(Geolocation)
通过 navigator.geolocation 对象来获取用户的当前位置,该对象公开了 getCurrentPosition()、watchPosition() 和 clearWatch() 三种方法。其中,getCurrentPosition() 用于获得用户的当前位置;watchPosition() 会在用户设备位置发生变化时持续获取位置信息,并返回一个 watch ID,可通过 clearWatch() 方法并传入该 watch ID 来停止获取位置。
拖放(Drag and Drop)
HTML5 Drag and Drop API 提供了对浏览器拖放操作的原生支持,使得实现拖放功能更加容易。
其他特性
如正则表达式(可使用 pattern 属性整合防止用户输入错误信息的功能)、数据列表元素(<datalist> 元素可实现自动补齐功能)、下载属性(可强制下载页面而非加载)、DNS 的预先加载处理、链接网页的预先加载处理等。
此外,HTML5 还移除了一些元素,如纯表现的元素(basefont、big、center、font、s、strike、tt、u)以及对可用性产生负面影响的元素(frame、frameset、noframes)。
在处理 HTML5 新标签的兼容问题时,可以使用 document.createElement 来创建新标签,对于低版本的 IE 浏览器(如 IE9 及以下),还可以使用垫片 html5shiv.js 来解决兼容性问题。DOCTYPE 声明也是区分 HTML 和 HTML5 的明显标志,HTML5 只需写 <!DOCTYPE html>,而 HTML4 或之前的版本声明较为复杂。
随着浏览器的不断更新,对 HTML5 特性的支持也越来越完善。但在实际开发中,仍需注意不同浏览器对某些特性的支持可能存在差异,需要进行充分的测试和兼容性处理。