HTML5新特性
HTML5新特性
- 语义化标签
- 表单增强
- 邮箱表单
- url表单
- 数字Number表单
- 日期选择器
- 颜色选择器表单
- 提交表单按钮
- 多媒体支持
- Canvas和SVG
- 本地存储
- localstorage和sessionstorage的区别
- localStorage:
- sessionStorage:
- 总结:
- 获取地理定位
- 拖拽功能
- websocket
- 最近在学习低代码平台的搭建的时候,用到了拖拽属性,这是HTML5的新特性,所以波煮突发奇想给大家总结一下HTML5的新特性。
语义化标签
- HTML5 引入了许多语义化的标签,使文档结构更加清晰,有助于搜索引擎优化(SEO)和无障碍访问。
<header>
:定义文档或节的头部区域,通常包含导航链接。<nav>
:定义导航链接的部分。<section>
:定义文档中的一个独立部分,通常包含标题和内容。<article>
:定义独立的内容块,如博客文章、新闻报道等。<aside>
:定义与页面内容相关但独立的内容,如侧边栏。<footer>
:定义文档或节的底部区域,通常包含版权信息、联系方式等。
表单增强
- HTML5 提供了更丰富的表单控件和属性,增强了表单的验证和用户体验。
邮箱表单
- 自带正则校验,用起来还是比较方便的
<input type="email" id="email" name="email" required>
url表单
<input type="url" id="url" name="url">
数字Number表单
- 可是设置上限和下限,如果不在这个范围内会给出非法提示
<input type="number" id="number" name="number" min="18" max="99">
日期选择器
- 自带date选择器表单,好评~
<input type="date" id="date" name="date">
颜色选择器表单
- 可视化选择颜色,返回十六进制颜色值
<input type="color" id="color" name="color">
提交表单按钮
- 将表单信息携带在url中
<button type="submit">Submit</button>
多媒体支持
- HTML5 增强了对音频和视频的支持,无需插件即可嵌入多媒体内容。
<video>
:用于在网页中嵌入视频内容。<audio>
:用于在网页中嵌入音频内容。- 其中的
type
为浏览器接收视频或者音频的格式。
如果浏览器不支持视频和音频的播放,则会显示下方代码中的汉字
<video controls>
<source src="movie.mp4" type="video/mp4">
<source src="movie.ogg" type="video/ogg">
你的浏览器不支持这个功能
</video>
<audio controls>
<source src="audio.mp3" type="audio/mpeg">
你的浏览器不支持这个功能
</audio>
</body>
Canvas和SVG
- HTML5 引入了
<canvas>
和<svg>
用于绘制图形和矢量图像。
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #000;">
你的浏览器不支持canvas标签
</canvas>
<script>
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');
ctx.fillStyle = '#FF0000'; //用这个颜色填充
ctx.fillRect(10, 10, 150, 75);
// 填充矩形
</script>
<svg width="100" height="100">
<!-- 画一个圆圈 -->
<circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg>
本地存储
- 通过
localStorage
和sessionStorage
,用于在浏览器中存储数据。 - 通常用于存储用户
token
,但不太建议哈,更建议存在cookie中哈
// 保存数据到 localStorage
localStorage.setItem('username', 'miraculous');
// 从 localStorage 中读取数据
const username = localStorage.getItem('username');
console.log(username); //miraculous
// 保存数据到 sessionStorage
sessionStorage.setItem('sessionData', 'SessionValue');
// 从 sessionStorage 中读取数据
const sessionData = sessionStorage.getItem('sessionData');
console.log(sessionData);
localstorage和sessionstorage的区别
localStorage:
- 数据存储在浏览器中,没有时间限制。
- 数据会一直存在,直到用户或代码显式地删除它们。
- 即使关闭浏览器或重新启动浏览器,数据仍然会保留。
sessionStorage:
- 数据存储在浏览器的会话中,只在当前浏览器标签页的会话期间有效。
- 当用户关闭当前浏览器标签页时,存储在
sessionStorage
中的数据会被自动删除。 - 如果用户关闭整个浏览器窗口(而不是标签页),所有标签页中的
sessionStorage
数据也会被删除。
总结:
- localStorage 适用于需要长期存储且在多个页面或窗口之间共享的数据。
- sessionStorage 适用于只在当前会话中使用且不需要跨标签页共享的数据。
获取地理定位
- HTML5 提供了地理定位 API,可以获取用户的地理位置。
注意:使用该API时需要电脑开启定位服务并给浏览器打开定位许可,否则就会和波煮开始一样无法获取当前定位经纬度。
if ("geolocation" in navigator) {
navigator.geolocation.getCurrentPosition(
(position) => {
console.log("纬度:", position.coords.latitude);
console.log("经度:", position.coords.longitude);
},
(error) => {
console.error("获取位置失败:", error);
},
);
} else {
console.log("浏览器不支持地理定位");
}
拖拽功能
- HTML5 支持拖放功能,允许用户通过拖放操作来移动元素。
- 将DOM元素的
draggable
属性设置为true
即可拖动
<div class="box" style="width: 200px; height: 200px; background-color: red;" draggable="true">
</div>
websocket
- HTML5 支持 Web Sockets,用于实现全双工通信,适合实时应用。
const socket = new WebSocket('ws://example.com/socket');
socket.onopen = () => {
console.log('WebSocket连接成功');
socket.send('Hello, server!');
};
socket.onmessage = (event) => {
console.log('收到了信息:', event.data);
};
socket.onclose = () => {
console.log('WebSocket连接断开');
};
- 总结可能存在疏漏,请各位大佬随时指正。