文章目录

  • 前言
      • **一、语义化标签(Semantic Elements)**
      • **二、多媒体支持(Audio & Video)**
      • **三、图形与绘图(Canvas & SVG)**
        • **1. `<canvas>`**
        • **2. SVG 内联支持**
      • **四、表单增强(Form Features)**
        • **1. 新输入类型**
        • **2. 新属性**
      • **五、本地存储(Web Storage)**
      • **六、地理定位(Geolocation)**
      • **七、拖放 API(Drag & Drop)**
      • **八、Web Workers**
      • **九、WebSocket**
      • **十、其他重要更新**
      • **总结**


前言

HTML5 是一次重大的标准升级,引入了大量新特性和 API,旨在支持现代富媒体应用和更语义化的 Web 结构。以下是核心更新功能的详细说明及示例:


一、语义化标签(Semantic Elements)

目的:增强内容的结构化描述,提升 SEO 和无障碍访问能力。
新增标签

  • <header>:页面或区块的头部
  • <nav>:导航链接
  • <section>:文档独立区块
  • <article>:独立内容(如博客/新闻)
  • <aside>:侧边栏或附属内容
  • <footer>:页面或区块的底部
  • <main>:文档主要内容
  • <figure> + <figcaption>:媒体与标题组合
  • <mark>:高亮文本

示例

<body><header><h1>网站标题</h1><nav><a href="/home">首页</a> | <a href="/about">关于</a></nav></header><main><article><h2>文章标题</h2><p>正文内容...</p><figure><img src="image.jpg" alt="示例图片"><figcaption>图片说明</figcaption></figure></article><aside><h3>相关链接</h3><ul>...</ul></aside></main><footer><p>© 2023 版权信息</p></footer>
</body>

二、多媒体支持(Audio & Video)

目的:原生支持音视频播放,无需 Flash 等插件。
标签

  • <video>:嵌入视频
  • <audio>:嵌入音频
    属性controls(显示控制条)、autoplayloopmutedposter(视频封面)

示例

<video controls width="600" poster="preview.jpg"><source src="movie.mp4" type="video/mp4"><source src="movie.webm" type="video/webm">您的浏览器不支持视频播放
</video><audio controls><source src="audio.mp3" type="audio/mpeg">您的浏览器不支持音频播放
</audio>

三、图形与绘图(Canvas & SVG)

1. <canvas>

目的:通过 JavaScript 动态绘制 2D/3D 图形。
示例:绘制红色矩形

<canvas id="myCanvas" width="200" height="100"></canvas>
<script>const ctx = document.getElementById("myCanvas").getContext("2d");ctx.fillStyle = "#FF0000";ctx.fillRect(0, 0, 150, 75);
</script>
2. SVG 内联支持

目的:直接嵌入矢量图形。
示例:绘制圆形

<svg width="100" height="100"><circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg>

四、表单增强(Form Features)

1. 新输入类型
  • email:邮箱验证
  • url:URL 验证
  • number:数字输入
  • range:滑块(<input type="range" min="0" max="100">
  • date/time:日期时间选择器
  • search:搜索框
  • color:颜色选择器
2. 新属性
  • placeholder:输入提示
  • required:必填字段
  • autofocus:自动聚焦
  • pattern:正则验证(如 pattern="[A-Za-z]{3}"
  • datalist:输入建议列表

示例

<form><label>邮箱:<input type="email" required placeholder="user@example.com"></label><label>日期:<input type="date"></label><label>音量:<input type="range" min="0" max="100"></label><label>浏览器:<input list="browsers"><datalist id="browsers"><option value="Chrome"><option value="Firefox"></datalist></label><input type="submit">
</form>

五、本地存储(Web Storage)

目的:替代 Cookie,提供更大容量的本地存储。

  • localStorage:永久存储(直到手动清除)
  • sessionStorage:会话级存储(关闭标签页失效)

示例

// 存储数据
localStorage.setItem("username", "Alice");// 读取数据
alert(localStorage.getItem("username")); // 输出 "Alice"// 删除数据
localStorage.removeItem("username");

六、地理定位(Geolocation)

目的:获取用户地理位置(需用户授权)。
示例

navigator.geolocation.getCurrentPosition(position => {alert(`纬度:${position.coords.latitude},经度:${position.coords.longitude}`);},error => {console.error("定位失败:", error);}
);

七、拖放 API(Drag & Drop)

目的:原生支持元素拖拽操作。
步骤

  1. 设置元素 draggable="true"
  2. 监听事件:dragstart, dragover, drop

示例

<div id="drag-target" draggable="true">拖拽我</div>
<div id="drop-area">放置区域</div><script>const target = document.getElementById("drag-target");const dropArea = document.getElementById("drop-area");target.addEventListener("dragstart", e => {e.dataTransfer.setData("text", e.target.id);});dropArea.addEventListener("dragover", e => {e.preventDefault(); // 允许放置});dropArea.addEventListener("drop", e => {e.preventDefault();const data = e.dataTransfer.getData("text");e.target.appendChild(document.getElementById(data));});
</script>

八、Web Workers

目的:在后台线程运行脚本,避免阻塞主线程。
示例

// 主线程
const worker = new Worker("worker.js");
worker.postMessage("开始计算"); // 发送数据
worker.onmessage = e => alert(e.data); // 接收结果// worker.js
self.onmessage = e => {const result = doHeavyCalculation(); // 耗时计算self.postMessage(result); // 返回结果
};

九、WebSocket

目的:实现全双工实时通信(如聊天室)。
示例

const socket = new WebSocket("wss://example.com/socket");socket.onopen = () => {socket.send("Hello Server!");
};socket.onmessage = e => {console.log("收到消息:", e.data);
};

十、其他重要更新

  1. 离线应用(Application Cache)
    通过 manifest 文件缓存资源(已废弃,推荐使用 Service Worker)。
  2. 语义化文本标签
    <time>(日期时间)、<meter>(度量值)、<progress>(进度条)。
  3. 增强的 <iframe>
    新增 sandbox 属性限制 iframe 行为(如禁止脚本)。
  4. 原生模态框
    <dialog> 元素:
    <dialog open>这是一个对话框!</dialog>
    

总结

HTML5 通过语义化标签、多媒体支持、Canvas/绘图、表单增强、本地存储、地理定位等特性,彻底变革了 Web 开发范式,使其从文档展示平台升级为功能强大的应用平台。这些特性与现代 CSS3 和 JavaScript API 结合,构成了现代 Web 技术的基石。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/86145.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/86145.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/86145.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React 全面入门与进阶实战教程

文章目录 一、认识 React1.1 核心特点 二、快速搭建 React 项目2.1 使用 Create React App2.2 使用 Vite 创建更轻量的 React 项目2.3 项目结构概览 三、React 核心语法基础3.1 JSX&#xff1a;React 的模板语法3.2 函数组件与 Props3.3 useState&#xff1a;定义响应式状态3.4…

牛津大学开源视频中的开放世界目标计数!

视频中的开放世界目标计数 GitHub PaPer Niki Amini-Naieni nikianrobots.ox.ac.uk Andrew Zisserman azrobots.ox.ac.uk 视觉几何组&#xff08;VGG&#xff09;&#xff0c;牛津大学&#xff0c;英国 ​ 图 1&#xff1a;视频中的目标计数&#xff1a;给定顶行的视频&#…

什么是Sentinel?以及优缺点

Sentinel 是阿里巴巴开源的分布式系统流量控制组件&#xff0c;主要用于服务限流、熔断降级、系统负载保护等场景&#xff0c;帮助提高微服务系统的稳定性和可靠性。它以流量为切入点&#xff0c;通过对流量的监控与控制&#xff0c;保障服务在高并发或异常情况下的可用性。 S…

2025 MWC 上海盛大开幕,聚焦AI、5G-Advanced及开放API

全球商业领袖与政策制定者齐聚一堂,共同探讨中国在API创新中的引领地位与产业发展势头 2025年6月18日,上海——GSMA 2025 MWC 上海今日在上海浦东嘉里大酒店举行开幕式,正式拉开帷幕。本届为期三天的盛会在上海新国际博览中心(SNIEC)举行,汇聚约400位演讲嘉宾与思想领袖,带来主…

使用Python脚本进行日常管理

在IT行业&#xff0c;特别是在系统运维领域&#xff0c;效率和准确性是至关重要的。随着技术的发展&#xff0c;手动处理大量的服务器和网络设备变得越来越不可行。因此&#xff0c;自动化运维成为了解决这一问题的有效手段。Python&#xff0c;作为一种广泛使用的编程语言&…

HCIA-数据通信基础

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 本篇笔记是根据B站上的视频教程整理而成&#xff0c;感谢UP主的精彩讲解&#xff01;如果需要了解更多细节&#xff0c;可以参考以下视频&#xff1a;…

安全版V4.5密码加密算法由SM3改为MD5

文章目录 环境文档用途详细信息 环境 系统平台&#xff1a;Linux x86-64 Red Hat Enterprise Linux 7 版本&#xff1a;4.5 文档用途 本文档用于指导瀚高数据库安全版V4.5的密码加密算法由SM3改为MD5 详细信息 1、用默认三权用户和普通用户登录数据库&#xff0c;修改密码…

MyBatis中#{}和${}的深度解析:SQL注入与动态拼接的终极抉择

MyBatis中#{}和${}的深度解析&#xff1a;SQL注入与动态拼接的终极抉择 摘要&#xff1a;在MyBatis的Mapper.xml文件中&#xff0c;#{}和${}这两个看似简单的符号&#xff0c;却隐藏着SQL安全与性能的核心秘密。本文将深入剖析它们的底层差异&#xff0c;并通过真实场景演示如何…

AWS多项目架构完全指南:基于App Runner的安全中转服务设计

引言:云原生架构的演进之路 在数字化转型浪潮中,企业常常面临这样的挑战:如何在保证安全隔离的前提下,快速为多个项目部署服务,并实现与现有系统的无缝集成?本文将以真实案例为基础,详细介绍如何利用AWS App Runner、Transit Gateway和VPC连接器等现代化服务,构建高可…

Selenium操作指南

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 大家好&#xff0c;今天带大家一起系统的学习下模拟浏览器运行库Selenium&#xff0c;它是一个用于Web自动化测试及爬虫应用的重要工具。 Selenium测试直接运行在…

基于Qt开发的ModbusTcp主站软件开发教程​——从协议原理到工业级实现

目录 第一章 环境配置与库集成1. 安装Qt与Modbus模块2. 第三方库兼容性(备选方案)第二章 Modbus TCP协议与Qt类解析1. 协议核心要点2. Qt关键类说明第三章 主站连接管理与通信初始化1. 连接建立与断线重连2. 请求超时与响应机制第四章 数据读写操作实战1. 读取保持寄存器(功…

什么是缺口箱线图?如何绘制?

大家好&#xff0c;我是带我去滑雪&#xff01; 箱线图是一种用于展示数据分布特征的统计图表&#xff0c;又称为盒状图或盒须图。它主要通过一个“箱子”和延伸出的“须”来展示一组数据的中位数、上下四分位数、最大值、最小值以及异常值。箱子的中线表示中位数&#xff0c;上…

在visual studio中为C++程序安装缺失开源库

在visual studio中测试一个代码时出现include了一个之前没用过的开源库的情况&#xff0c;因为之前C用的少&#xff0c;这个问题比较基础&#xff0c;也没有找到能用的教程&#xff0c;就在这里记录一下解决过程&#xff0c;以备不时之需。 显然C和Visual Studio的组合不如pych…

CentOS加密技术全指南

文件系统加密 LUKS (Linux Unified Key Setup) 全盘加密配置方法 安装前加密&#xff08;Anaconda安装向导选项&#xff09; 在安装CentOS时选择"Encrypt my data"选项设置强密码&#xff08;建议20字符&#xff0c;混合大小写、数字和特殊符号&#xff09;密钥槽管…

纯血HarmonyOS5 打造小游戏实践:绘画板(附源文件)

OS 应用整体架构与技术栈 该绘图应用采用了鸿蒙系统推荐的ArkUI框架进行开发&#xff0c;基于TypeScript语言编写&#xff0c;充分利用了鸿蒙系统的图形渲染和文件操作能力。应用整体架构遵循MVVM&#xff08;Model-View-ViewModel&#xff09;模式&#xff0c;通过State装饰…

数据分析和可视化:Py爬虫-XPath解析章节要点总结

重要知识点 XPath 概述&#xff1a;XPath 是一门可以在 XML 文件中查找信息的语言&#xff0c;也可用于 HTML 文件。它功能强大&#xff0c;提供简洁明了的路径表达式和多个函数&#xff0c;用于字符串、数值、时间比较等。1999 年成为 W3C 标准&#xff0c;常用于爬虫中抓取网…

深入理解PHP中的生成器(Generators)

创建一个生成器非常简单。你只需要像定义普通函数一样定义它&#xff0c;但是使用yield关键字来产出值。例如&#xff0c;以下是一个简单的斐波那契数列生成器&#xff1a; function fibonacci() {$num1 0;$num2 1;while (true) {yield $num1;$temp $num1 $num2;$num1 $n…

ubuntu 系统 pgm图片和png相互转化

ubuntu 系统 pgm图片和png相互转化。 安装转化工具&#xff1a; sudo apt-get install imagemagick pgm转为png指令如下: convert input.pgm output.png png转为pgm指令如下: convert input.png output.pgm

leetcode:98. 验证二叉搜索树

学习要点 加深纯递归算法的理解 题目链接 98. 验证二叉搜索树 - 力扣&#xff08;LeetCode&#xff09; 题目描述 解法&#xff1a;纯递归 vector<int> v;void dfs(TreeNode* root){if(root nullptr){return;}dfs(root->left);v.push_back(root->val);dfs(root…

如何确定IP的缺省子网掩码是多少?

IP地址 201.100.200.1 的缺省子网掩码由其 IP地址类别 决定。以下是判断步骤&#xff1a; 1. 确定IP地址类别 IPv4地址分为 A、B、C、D、E 五类&#xff0c;根据第一个字节&#xff08;前8位&#xff09;的范围划分&#xff1a; A类&#xff1a;1.0.0.0 ~ 126.255.255.255&am…