【温故而知新】HTML5新标签canvas、MathML

一、概念

HTML5是HTML的最新版本,它引入了许多新的元素和功能,以适应现代网页开发的需求。以下是HTML5的一些主要特点:

  1. 新增语义元素:HTML5引入了许多新的语义元素,如<header>、<footer>、<article>、<section>等,这些元素有助于提高网页的结构化和可访问性。
  2. 媒体支持:HTML5引入了<audio><video>元素,使得开发者可以在网页上直接嵌入音频和视频内容,而不需要依赖第三方插件。
  3. Canvas绘图:HTML5引入了<canvas>元素,使得开发者可以使用JavaScript在网页上绘制图形和动画。
  4. 语义化标签:HTML5的语义化标签使得网页的结构更加清晰和易于理解。例如,使用<nav>元素表示导航链接,使用<article>元素表示独立的内容等。
  5. 交互性:HTML5提供了更多的API和事件处理程序,使得开发者可以创建更加交互式的网页和应用。例如,拖放功能、文件上传和下载、地理定位等。
  6. 离线和存储:HTML5提供了离线存储和会话存储功能,使得开发者可以在用户的设备上存储数据,以便在离线时使用。
  7. 更好的表单控制:HTML5改进了表单元素和输入类型,使得表单的验证和输入更加方便和智能。

HTML5是一个非常强大的工具,它为开发者提供了更多的功能和灵活性,使得他们可以创建出更加丰富、交互性更强、功能更全面的网页和应用。

二、新标签

标签 描述
<article> 定义页面独立的内容区域。
<aside> 定义页面的侧边栏内容。
<bdi> 允许您设置一段文本,使其脱离其父元素的文本方向设置。
<command> 定义命令按钮,比如单选按钮、复选框或按钮
<details> 用于描述文档或文档某个部分的细节
<dialog> 定义对话框,比如提示框
<summary> 标签包含 details 元素的标题
<figure> 规定独立的流内容(图像、图表、照片、代码等等)。
<figcaption> 定义
元素的标题
<footer> 定义 section 或 document 的页脚。
<header> 定义了文档的头部区域
<mark> 定义带有记号的文本。
<meter> 定义度量衡。仅用于已知最大和最小值的度量。
<nav> 定义导航链接的部分。
<progress> 定义任何类型的任务的进度。
<ruby> 定义 ruby 注释(中文注音或字符)。
<rt> 定义字符(中文注音或字符)的解释或发音。
<rp> 在 ruby 注释中使用,定义不支持 ruby 元素的浏览器所显示的内容。
<section> 定义文档中的节(section、区段)。
<time> 定义日期或时间。
<wbr> 规定在文本中的何处适合添加换行符。
<audio> 定义音频内容
<video> 定义视频(video 或者 movie)
<source> 定义多媒体资源 <video> 和 <audio>
<embed> 定义嵌入的内容,比如插件。
<track> 为诸如<video> 和 <audio>元素之类的媒介规定外部文本轨道。
<datalist> 定义选项列表。请与 input 元素配合使用该元素,来定义 input 可能的值。
<keygen> 规定用于表单的密钥对生成器字段。
<output> 定义不同类型的输出,比如脚本的输出。
<canvas> 标签定义图形,比如图表和其他图像。该标签基于 JavaScript 的绘图 API

三、canvas

Canvas是HTML5的一个功能,它是一个可以用于绘制图形、动画和游戏等的元素。以下是一个简单的Canvas案例代码,可以在页面上绘制一个矩形:

<!DOCTYPE html>
<html>
  <head>
    <title>Canvas Example</title>
    <style>
      #canvas {
     
        border: 1px solid black;
      }
    </style>
  </head>
  <body>
    <canvas id="canvas" width="400" height="300"></canvas>

    <script>
      var canvas = document.getElementById("canvas");
      var ctx = canvas.getContext("2d");

      // 设置绘制矩形的颜色和大小
      ctx.fillStyle = "red";
      ctx.fillRect(50, 50, 200, 100);

      // 在矩形上绘制文字
      ctx.font = "20px Arial";
      ctx.fillStyle = "white";
      ctx.fillText("Hello, Canvas!", 70, 100);
    </script>
  </body>
</html>

在这个例子中,我们首先创建了一个Canvas元素,并设置了它的宽度和高度。然后通过JavaScript获取到这个Canvas元素的上下文(context),并设置了绘制矩形的颜色和大小,使用fillRect()方法绘制了一个红色的矩形。最后,使用fillText()方法在矩形上绘制了一段文字。

四、SVG

SVG(Scalable Vector Graphics,可伸缩矢量图形)是一种基于XML语法的矢量图形格式,它可以用于在网页上绘制丰富的矢量图形和动画。以下是一个简单的SVG案例代码,可以在页面上绘制一个圆形:

<!DOCTYPE html>
<html>
  <head>
    <title>SVG Example</title>
  </head>
  <body>
    <svg width="400" height="300">
      <circle cx="200" cy="150" r="100" fill="red" />
      <text x="180" y="160" fill="white">Hello, SVG!</text>
    </svg>
  </body>
</html>

在这个例子中,我们使用了<svg>标签创建了一个SVG元素,并设置了它的宽度和高度。在SVG元素中,我们使用<circle>标签创建了一个圆形,cxcy属性用于设置圆心的坐标,r属性用于设置半径,fill属性用于设置填充颜色。然后,使用<text>标签创建了一段文字,xy属性用于设置文字的起始位置,fill属性用于设置文字的颜色。

SVG的语法相对简单,可以通过直接在HTML文件中嵌入SVG代码来绘制图形。除了基本的图形元素,SVG还支持路径、图像、渐变等更多高级特性,可以实现更复杂的图形和动画效果。

五、MathML

MathML(Mathematical Markup Language,数学标记语言)是一种基于XML语法的数学标记语言,用于在网页中表示和展示数学公式和符号。以下是一个简单的MathML案例代码,可以在页面上显示一个简单的数学公式:

<!DOCTYPE html>
<html>
  <head>
    <title>MathML Example</title>
  </head>
  <body>
    <math xmlns="http://www.w3.org/1998/Math/MathML">
      <mrow>
        <mi>x</mi>
        <mo>+</mo>
        <mi>y</mi>
      </mrow>
      <mo>=</mo>
      <mn>5</mn>
    </math>
  </body>
</html>

在这个例子中,我们使用了<math>标签来创建一个MathML元素,并在其中使用了一系列MathML标签来表示数学公式。<mrow>标签用于创建一个行,并在其中使用<mi>标签表示变量或标识符,<mo>标签表示运算符,<mn>标签表示数字。通过组合这些标签,我们可以构建出复杂的数学公式。

MathML也支持更多的数学元素和属性,用于表示更复杂的数学表达式和结构。在支持MathML的浏览器中,MathML代码会被解析和渲染成可视化的数学公式。

相关推荐

  1. 故而HTML5标签canvas、MathML

    2024-01-19 16:58:02       31 阅读
  2. 故而HTML5 WebSocket

    2024-01-19 16:58:02       23 阅读
  3. 故而HTML5的Video/Audio

    2024-01-19 16:58:02       29 阅读
  4. 故而HTML5存储localStorage/sessionStorage

    2024-01-19 16:58:02       41 阅读
  5. 故而HTML5的Web Worker

    2024-01-19 16:58:02       37 阅读
  6. 故而HTML5 应用程序缓存

    2024-01-19 16:58:02       33 阅读
  7. 故而HTML5拖放/地理定位/浏览器支持

    2024-01-19 16:58:02       29 阅读
  8. 故而】探讨下对vue的mixin的理解

    2024-01-19 16:58:02       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-19 16:58:02       14 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-19 16:58:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-19 16:58:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-19 16:58:02       18 阅读

热门阅读

  1. Mybatis源码总结

    2024-01-19 16:58:02       30 阅读
  2. Linux常见指令

    2024-01-19 16:58:02       27 阅读
  3. python 二次封装Modbus库实现设备间Modbus通信

    2024-01-19 16:58:02       31 阅读
  4. 业务题06

    2024-01-19 16:58:02       31 阅读
  5. C++中实现多线程和分布式

    2024-01-19 16:58:02       31 阅读
  6. 部署智能合约到 polygon 上(Web3项目三实战之三)

    2024-01-19 16:58:02       35 阅读
  7. 初始Spring(适合新手)

    2024-01-19 16:58:02       22 阅读
  8. cmake 链接动态库命令

    2024-01-19 16:58:02       34 阅读
  9. k8s学习路线

    2024-01-19 16:58:02       23 阅读
  10. Android.bp

    2024-01-19 16:58:02       31 阅读
  11. mac安装miniconda

    2024-01-19 16:58:02       31 阅读