当前位置: 首页 > news >正文

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>

在这里插入图片描述

本地存储

  • 通过localStoragesessionStorage,用于在浏览器中存储数据。
  • 通常用于存储用户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 数据也会被删除。

总结:

  1. localStorage 适用于需要长期存储且在多个页面或窗口之间共享的数据。
  2. 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连接断开');
};
  • 总结可能存在疏漏,请各位大佬随时指正。

相关文章:

  • 在springboot项目中调用第三方天气api服务
  • js中 剩余运算符(Rest Operator )(...)和展开运算符(Spread Operator)(...)的区别及用法
  • 基于open3d的一些常见点云操作
  • 【数据结构_4】顺序表
  • Adobe After Effects的插件--------Optical Flares之面板属性
  • KWDB创作者计划—KWDB场景创新:多模态数据融合与边缘智能的产业实践
  • 中厂算法岗面试总结
  • 【SLAM】在ORB_SLAM2的ROS模式下使用RealSense D435相机
  • R语言——直方图
  • (自用)若依生成左树右表
  • 【WORD】批量将doc转为docx
  • 搬运机器人的基本工作场景及原理
  • 202526 | 消息队列MQ
  • Pytorch深度学习框架60天进阶学习计划 - 第41天:生成对抗网络进阶(三)
  • 51c自动驾驶~合集17
  • jetpack之jetpack的概括和其中组件的简单使用
  • STM32 HAL库 HC - SR04 超声波测距模块驱动实现
  • IoT安全透视:D-Link DWR-932B固件全面逆向漏洞挖掘全面解析
  • 使用Python计算汉密尔顿路径
  • Python实现贪吃蛇二
  • 伊朗外长:伊美第四轮间接谈判将于5月3日举行
  • 阿斯利康中国区一季度收入增5%,或面临最高800万美元新罚单
  • 青海西宁市城西区副区长于媛媛主动投案,接受审查调查
  • 金砖国家外长会晤发表主席声明,强调南方国家合作
  • 见证上海援藏30年成果,萨迦非遗珍品展来沪
  • 美军空袭也门拘留中心,已致68人死亡