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连接断开');
};
 
- 总结可能存在疏漏,请各位大佬随时指正。
 
