个人网页项目展示:Omkar39.github.io

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:Omkar39.github.io是一个个人网页项目,使用HTML技术构建,并托管在GitHub上。该项目展示了网页开发的基础语言HTML的多种应用,包括布局、文本格式化、链接、图像插入、列表、表格、表单元素、以及HTML5的新特性。CSS和JavaScript也可能被用于增加样式和交互性。深入了解该项目将有助于理解Web开发的基础知识。 Omkar39.github.io

1. HTML基础结构与核心概念

HTML(HyperText Markup Language)作为构建互联网网页的基础,其核心概念涉及了构建页面所需的元素和语义。HTML文档由元素组成,这些元素通过标签(Tag)来定义。标签通常成对出现,即一个开始标签和一个结束标签,包裹内容形成一个独立的结构单元。例如, <html> 标签是所有HTML文档的根元素。

在这一章中,我们会从最基础的HTML结构入手,讲解如何使用HTML骨架标签(如 <head> <body> )来构建一个标准的网页文档。我们将深入探讨HTML文档类型声明(Doctype)的作用,以及如何使用元数据标签(如 <meta> )来控制网页的字符集、视口设置等关键信息。接下来,我们会通过实例和最佳实践,介绍如何利用HTML5引入的新特性来丰富页面内容和提高可访问性。通过本章内容,读者将获得构建稳固的HTML基础结构所必需的知识和技能。

2. HTML文本与链接的组织

2.1 标题标签的使用和意义

2.1.1 各级标题标签的定义和作用

在HTML文档中,标题标签用来定义内容的层次和结构,它们是 <h1> <h6> 的一系列标签,其中 <h1> 是最重要的标题,而 <h6> 是最不重要的。每个页面通常只有一个 <h1> 标签,用来表示页面的主要主题,而其他从 <h2> <h6> 的标签则表示从属主题或者次要内容的层次。

标题标签不仅为阅读者提供内容的结构信息,而且对于搜索引擎优化(SEO)至关重要。搜索引擎使用标题标签作为判断页面内容主题和相关性的依据之一,因此合理地使用标题标签可以提升页面在搜索引擎结果中的排名。

2.1.2 如何正确使用标题标签提升页面结构

正确使用标题标签的关键在于理解内容的层次并恰当地反映出来。以下是一些使用标题标签的建议:

  • 确保页面中只有一个 <h1> 标签,并且其内容清晰准确地代表页面的主要主题。
  • 使用 <h2> <h6> 标签来创建次级主题的层次,不要跳过标题级别,这样有助于构建清晰的文档结构。
  • 尽量不要使用标题标签来控制字体大小,应通过CSS样式表来实现字体样式的变化。
  • 避免使用标题标签来格式化非标题内容,如粗体或者大号字体的文本。

2.2 段落与文本的格式化技巧

2.2.1 段落标签与换行标签的应用

HTML中的段落是通过 <p> 标签来定义的。每个 <p> 标签定义了一个新的段落,浏览器会自动在每个段落之间添加一些空间。这有助于文本的阅读和理解。

当需要插入换行时,应使用 <br> 标签。与 <p> 标签不同, <br> 标签是一个空元素,意味着它不需要闭合标签。通常, <br> 用于文本中需要明确断行但又不希望开始一个新的段落时。

2.2.2 文本格式化标签详解与应用实例

HTML提供了多种用于文本格式化的标签,以适应不同情况下的文本展示需求。以下是一些常用格式化标签的介绍和应用实例:

  • <strong> <em> 标签用于强调文本。 <strong> 标签中的文本通常会以粗体显示,而 <em> 标签中的文本则会以斜体显示。
  • <mark> 标签用于高亮显示文本,常用于标记搜索结果中的一部分。
  • <small> 标签用于设置较小的文本。
  • <sub> <sup> 标签分别用于定义下标和上标文本。

2.3 链接的创建与管理

2.3.1 创建基本超链接的方法

创建超链接是HTML中非常基本的操作,通过 <a> 标签可以创建一个指向另一个网页或资源的链接。 <a> 标签中的 href 属性用来指定链接的目标地址。例如:

<a href="***">访问示例网站</a>

在这个例子中,当用户点击“访问示例网站”时,他们将被导航到 ***

2.3.2 锚点链接与邮件链接的高级用法

除了基本超链接之外,还有一些高级用法可以丰富网页的交互性:

  • 锚点链接 :可以链接到同一页面内的不同部分。通过为目标元素添加 id 属性,然后在 <a> 标签的 href 属性中指定目标元素的 id ,就可以创建一个锚点链接。例如:
<h2 id="section1">章节1</h2>
<a href="#section1">跳转到章节1</a>
  • 邮件链接 :允许用户通过点击链接来打开默认的电子邮件客户端并创建一个新邮件。通过在 <a> 标签的 href 属性中使用 mailto: 协议,可以实现这个功能。例如:
<a href="mailto:***">发送邮件给我</a>

点击上述链接后,浏览器会打开用户的邮件客户端并创建一个新邮件,收件人地址已经设置为 ***

3. HTML中视觉元素的集成

在构建网页时,视觉元素的集成对于提供丰富的用户体验至关重要。本章节将深入探讨如何在HTML文档中插入和管理图像、列表和表格。

3.1 图像的插入与优化

图像不仅能够美化页面,还能提供信息和增强用户的互动体验。为了有效地使用图像,开发者需要了解图像标签的使用方法,属性设置,以及如何处理图像的尺寸、路径和替代文本。

3.1.1 图像标签的使用和属性设置

图像在HTML中是通过 <img> 标签进行插入的。它是一个空标签,意味着它不包含任何内容,例如文本或子标签。为了正确使用图像标签,我们需要了解几个关键属性:

  • src :图像的来源地址。
  • alt :替代文本,用于图像无法显示时提供说明。
  • title :鼠标悬停时显示的提示文本。
  • width height :图像的宽度和高度。
  • loading :指示浏览器是否预加载图像,如 lazy 表示延迟加载。

下面是一个使用图像标签的简单例子:

<img src="image.jpg" alt="描述性文本" title="悬停文本" width="500" height="600">

参数解释:

  • src 属性指定了图像文件的路径。
  • alt 属性提供了一个文本替代,这在图像无法加载时非常有用,同时也有利于搜索引擎优化(SEO)和屏幕阅读器对视障用户的阅读。
  • title 属性增加了鼠标悬停时的提示功能。
  • width height 属性可以用来调整图像的尺寸,以适应页面布局。

代码逻辑分析:

在上述代码中,我们通过 src 属性引入了名为 image.jpg 的图像资源。 alt 属性包含了描述性文本,确保图像在无法显示的情况下,用户能够理解图像的内容。 title 属性则允许用户通过悬停鼠标在图像上获取额外信息。通过指定 width height 属性,我们可以控制图像在页面上显示的具体尺寸。

3.1.2 图像的尺寸、路径和替代文本的处理

图像的尺寸应该以两种方式来指定:一是通过HTML的 width height 属性,二是通过图像编辑软件。正确设置图像尺寸可以加快页面加载时间,因为小尺寸的图像文件较小。

图片路径

图像文件可以存储在本地服务器上,也可以存储在互联网上的任何位置。相对路径是相对于当前HTML文件的位置指定路径,而绝对路径则从网站的根目录开始指定。

替代文本(Alt Text)

替代文本是图像的重要组成部分,不仅仅用于图像不可用时的显示,还对搜索引擎优化(SEO)和可访问性(无障碍网页设计)有重要作用。在描述图像内容时,应该简洁明了,并且尽可能地使用关键词。

在图像的使用中,需要注意版权和授权问题,确保网站使用的图像不侵犯他人的版权。

代码块例子:

<img src="images/nature.jpg" alt="风景图片" title="美丽的自然风光" width="300" height="200">

在这个例子中,图像文件 nature.jpg 被假定存储在与HTML文件同一目录下的 images 文件夹中。图像被描述为“风景图片”,并且鼠标悬停时会显示“美丽的自然风光”的提示文本。图像的尺寸被设置为宽度300像素,高度200像素。

逻辑分析:

通过上述代码的使用,我们可以为网页添加有意义和功能性的图像元素。代码中通过 src 属性指定了图像的路径, alt title 属性为图像提供了额外的描述和提示信息,而 width height 属性确保了图像在页面上的正确显示尺寸。正确地使用和管理图像,是创建交互式和SEO友好的网页不可或缺的一部分。

3.2 列表的制作方法与应用

列表是HTML文档中常用的一种结构化数据的表现形式。通过有序列表、无序列表和定义列表,开发者可以以清晰和一致的方式向用户提供信息。

3.2.1 有序列表、无序列表和定义列表的实现

有序列表(Ordered List)

有序列表使用 <ol> 标签定义,并且每个列表项使用 <li> 标签进行包裹。列表项通常会以数字或字母顺序显示。

<ol>
  <li>第一个列表项</li>
  <li>第二个列表项</li>
  <li>第三个列表项</li>
</ol>
无序列表(Unordered List)

无序列表使用 <ul> 标签定义,并且每个列表项同样使用 <li> 标签包裹。与有序列表不同的是,无序列表项前通常使用圆点、方块或其他符号进行标记,而不是数字或字母。

<ul>
  <li>一个项目</li>
  <li>另一个项目</li>
  <li>再一个项目</li>
</ul>
定义列表(Definition List)

定义列表使用 <dl> 标签定义,每个定义的术语用 <dt> 标签表示,定义的描述用 <dd> 标签包裹。定义列表常用于术语和其描述的场景。

<dl>
  <dt>HTML</dt>
  <dd>超文本标记语言</dd>
  <dt>CSS</dt>
  <dd>层叠样式表</dd>
  <dt>JavaScript</dt>
  <dd>一种脚本语言</dd>
</dl>

逻辑分析与参数说明:

以上列表类型的实现,它们的共同目的是提供清晰的信息展示和组织。有序列表强调列表项的顺序,无序列表强调列表项的分组,而定义列表则常用于展示术语和定义。

在实现时, <ul> <ol> 是列表容器,需要闭合,而 <li> 则是列表项,也需要闭合。在定义列表中, <dl> 是容器, <dt> 用于标识术语, <dd> 用于描述术语。

3.2.2 列表在页面布局中的创新用法

在现代Web设计中,列表不仅仅是列出信息,还可以用来实现多种布局和设计效果。

水平菜单栏

可以通过无序列表和CSS样式结合,创建水平的导航菜单。例如:

<ul class="menu">
  <li><a href="#home">首页</a></li>
  <li><a href="#about">关于我们</a></li>
  <li><a href="#services">服务</a></li>
</ul>

通过CSS进行样式设计,可以将列表项显示在同一行,并为链接添加下划线、颜色、字体大小等样式来创建吸引人的导航栏。

列表项内嵌复杂内容

列表项可以包含除纯文本之外的其他HTML元素,例如嵌套列表、图片、链接等。这使得创建复杂的布局和嵌套结构成为可能。

<ul>
  <li>章节一
    <ul>
      <li>子章节1.1</li>
      <li>子章节1.2</li>
    </ul>
  </li>
  <li>章节二
    <ul>
      <li>子章节2.1</li>
      <li>子章节2.2</li>
    </ul>
  </li>
</ul>

在这个例子中,我们创建了一个具有嵌套列表的结构,可以用于创建目录或具有层次性的页面布局。

3.3 表格的构建与数据展示

表格是HTML文档中用于组织和展示数据的传统方式。正确地构建和设计表格,可以使数据展示更清晰、更易于理解。

3.3.1 表格的基本构成和标签

构建表格的基本元素包括 <table> , <tr> , <th> , 和 <td>

  • <table> :用于定义整个表格。
  • <tr> :用于定义表格中的行。
  • <th> :用于定义表头单元格,通常加粗居中显示。
  • <td> :用于定义表格中的标准单元格,用于显示数据。

一个基础的表格构建例子如下:

<table border="1">
  <tr>
    <th>姓名</th>
    <th>年龄</th>
    <th>职业</th>
  </tr>
  <tr>
    <td>张三</td>
    <td>28</td>
    <td>软件工程师</td>
  </tr>
  <tr>
    <td>李四</td>
    <td>25</td>
    <td>产品经理</td>
  </tr>
</table>

在上述代码中, border="1" 是一个属性,用于在早期HTML文档中显示边框。但在实际开发中,通常使用CSS来控制表格边框的样式。

3.3.2 表格样式设计和合并单元格的技巧

为了提高数据的可读性和美观性,表格通常会应用CSS进行样式设计。例如,可以设置边框、背景色、对齐方式、宽度和高度等。

table {
  border-collapse: collapse;
  width: 100%;
}

th, td {
  border: 1px solid black;
  padding: 8px;
  text-align: left;
}

合并单元格

合并单元格使用 rowspan colspan 属性,可以将多个行或列合并为一个单元格。这对于创建具有复杂布局的表格非常有用。

<table>
  <tr>
    <th>姓名</th>
    <th>职业</th>
    <th colspan="2">联系方式</th>
  </tr>
  <tr>
    <td>张三</td>
    <td>软件工程师</td>
    <td>电话:***</td>
    <td>邮箱:***</td>
  </tr>
</table>

在上述代码中,我们创建了一个包含姓名、职业和联系方式的表格。其中,“联系方式”列通过 colspan="2" 合并了两列,以便能够容纳两种不同的联系信息。

通过上述内容的介绍,我们可以了解到HTML中的视觉元素集成不仅仅是简单的标签使用,还包括对标签属性的深入了解以及样式设计的技巧。合理地集成和应用这些视觉元素,可以极大地提升网页的互动性和用户体验。在接下来的章节中,我们将继续探讨HTML5的布局与交互新特性,以及CSS和JavaScript的集成应用,进一步提升Web页面的性能和互动性。

4. HTML5的布局与交互新特性

4.1 容器与布局设计的进化

4.1.1 HTML5新增的语义化元素

HTML5 的引入彻底改变了网页布局和文档结构的设计方式。新增的语义化元素不仅为开发者提供了更丰富的标记选择,还改善了文档的可读性和可维护性。下面列举了一些在 HTML5 中新增的语义化元素:

  • <header> :定义文档或节的页眉。
  • <nav> :包含页面的主要导航链接。
  • <article> :定义页面独立内容部分。
  • <section> :用于对文档中的内容进行分段。
  • <aside> :定义侧边栏内容,通常与周围内容间接相关。
  • <footer> :定义文档或节的页脚。

这些元素的使用,使得页面的结构更加清晰,也方便搜索引擎和辅助技术进行内容的解析和理解。例如,使用 <header> <footer> 可以清晰地标记出页面的头部和尾部,而 <article> <section> 则有助于定义独立的内容块。

4.1.2 Flexbox与CSS Grid布局的应用

随着布局技术的发展,CSS Flexbox 和 Grid 为网页设计提供了更多的灵活性和强大的布局能力。HTML5与这些布局技术的结合,使得复杂布局的实现变得更加简单和高效。

Flexbox布局 :提供了一种更灵活的方式来排列项目,可以轻松地实现项目的水平或垂直居中、换行、方向切换等布局效果。它的核心是 display: flex; 声明,这使得容器变为一个弹性容器。

.flex-container {
  display: flex;
  justify-content: space-around; /* 子项沿主轴均匀分布 */
  align-items: center; /* 子项沿交叉轴居中 */
}

CSS Grid布局 :是一个二维布局系统,可以同时控制行和列,非常适合于创建复杂的网格布局。它通过在父元素上声明 display: grid; 来启用,并通过 grid-template-columns grid-template-rows 属性定义列和行的结构。

.grid-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 定义三列,每列占用可用空间的一部分 */
  grid-gap: 10px; /* 定义网格间隔 */
}

Flexbox 和 CSS Grid 的引入大大简化了对复杂布局的设计和实现,它们的响应式特性也有助于提高网页在不同设备上的适配性。

4.2 内联框架的使用与限制

4.2.1 iframe标签的定义和属性

内联框架( iframe )是 HTML 中一种用于在网页内嵌入另一个独立的 HTML 页面的元素。它有着诸多用途,比如嵌入第三方网页内容或实现广告展示等。

一个基本的 iframe 标签如下:

<iframe src="***" width="500" height="600"></iframe>

这里 src 属性指向要嵌入页面的 URL, width height 属性定义了框架的大小。

4.2.2 安全性和性能问题的考量

尽管 iframe 在某些场景中非常有用,但它也存在一些需要关注的问题:

  1. 安全问题 :由于 iframe 可以嵌入任意页面,恶意代码可能通过 iframe 加载攻击用户。使用 sandbox 属性可以提高安全性,限制 iframe 内容的行为。

  2. 性能问题 :加载外部资源的 iframe 会增加页面的加载时间和资源消耗。优化 iframe 的加载策略,比如使用 lazy-loading (延迟加载)或 loading="lazy" 属性来减少初始负载。

  3. 用户体验问题 :搜索引擎可能难以爬取嵌入在 iframe 中的内容,导致 SEO 不理想。确保重要内容不在 iframe 中,或者提供替代内容。

  4. 布局挑战 iframe 可能会造成布局上的挑战,因为它在文档流中占有一席之地。使用 CSS 控制 iframe 的样式可以帮助解决这些问题。

由于这些限制,开发者在使用 iframe 时应权衡利弊,考虑是否采用其他现代技术,比如 JavaScript 的动态内容加载或 CSS 的 Flexbox 和 Grid 布局,以达到相似的目的。

4.3 表单元素的创建与数据处理

4.3.1 各种表单输入元素的应用

表单是网页中用于数据收集和交互的重要元素。HTML5 扩展了表单元素的功能,提供了更多的表单输入类型,以便于收集不同类型的数据。下面是一些常用的 HTML5 表单元素:

  • <input type="text"> :单行文本输入框。
  • <input type="password"> :用于输入密码的文本框。
  • <input type="email"> :文本框,用于输入电子邮件地址。
  • <input type="number"> :用于输入数字的文本框。
  • <input type="date"> :日期选择器。
  • <input type="checkbox"> :复选框。
  • <input type="radio"> :单选按钮。

这些元素通过不同的 type 属性提供特定的功能,增加了与用户的交互方式,使得数据收集更加直观和方便。

4.3.2 表单数据的验证和提交机制

HTML5 引入了客户端验证机制,这使得在不提交表单的情况下就能对输入的数据进行检查,从而提高用户体验。使用 required pattern min max 等属性可以直接在表单元素上进行验证。

<input type="email" name="email" required pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$">

这里, required 表示这个字段是必须填写的,而 pattern 属性则定义了一个正则表达式,用于验证用户输入的电子邮件地址格式。

表单数据的提交机制同样重要,HTML5 允许开发者通过 JavaScript 来控制数据提交的过程,例如拦截提交事件、进行数据的预处理等。此外, <form> 标签中的 onsubmit 事件处理器可以用于执行复杂的验证逻辑。

document.querySelector('form').onsubmit = function(event) {
  if (!this.checkValidity()) {
    event.preventDefault(); // 阻止表单默认提交行为
  }
};

在上述代码段中, checkValidity() 方法会检查表单内每个输入元素的验证状态,如果表单有效,返回 true ;如果无效,返回 false 并阻止表单的提交。

HTML5 的表单元素和属性提供了更多的控制和验证能力,通过利用这些功能,可以构建出更加健壮和用户友好的表单体验。

5. CSS与JavaScript的集成应用

在现代Web开发中,CSS和JavaScript是构建动态、交互式网页不可或缺的技术。CSS负责网页的样式和布局,而JavaScript则提供了行为和交互能力。本章将探讨如何将CSS和JavaScript集成到HTML中,并通过实际案例展示它们的综合应用。

5.1 CSS样式的基本应用和选择器

5.1.1 样式表的创建和链接方法

在页面中应用CSS的最常见方式是通过外部样式表。创建一个外部CSS文件,可以将样式与内容分离,便于管理和维护。创建样式表的步骤如下:

  1. 创建一个CSS文件,如 styles.css
  2. 在HTML文档的 <head> 部分使用 <link> 标签引入该CSS文件:
<head>
  <link rel="stylesheet" type="text/css" href="styles.css">
</head>

5.1.2 各类CSS选择器及其应用场景

CSS选择器用于选中HTML文档中的元素,并对其应用样式。以下是一些常见选择器:

  • 类选择器: .<class_name> 适用于所有具有指定类的元素。
  • ID选择器: #<id_name> 用于选中具有特定ID的单个元素。
  • 属性选择器: [attribute="value"] 选中具有特定属性值的元素。
  • 伪类选择器: :hover , :active , :focus 等,用于定义元素的特殊状态样式。

例如:

/* 类选择器 */
.red-text {
  color: red;
}

/* ID选择器 */
#main-heading {
  font-size: 24px;
}

/* 属性选择器 */
input[type="text"] {
  border: 1px solid #ccc;
}

/* 伪类选择器 */
a:hover {
  text-decoration: none;
}

5.2 JavaScript基础与页面交互

5.2.1 JavaScript在HTML中的嵌入方式

JavaScript可以通过多种方式嵌入到HTML页面中:

  • 内联脚本:直接在HTML元素中使用 on<event> 属性(如 onclick )。
  • 内部脚本:在HTML文档中使用 <script> 标签定义。
  • 外部脚本:将JavaScript代码保存在外部文件中,然后通过 <script> 标签的 src 属性引入。

例如,使用 <script> 标签引入外部JavaScript文件:

<script src="script.js"></script>

5.2.2 常用的DOM操作和事件处理

DOM(文档对象模型)是HTML文档的结构化表示,JavaScript可以通过DOM操作页面元素。以下是几个DOM操作的例子:

  • 获取元素: document.getElementById() document.querySelector()
  • 创建元素: document.createElement()
  • 修改内容: element.textContent element.innerHTML
  • 添加/删除事件监听器: element.addEventListener() element.removeEventListener()

事件处理则是JavaScript与用户的互动方式,如点击、按键等。以下是一个简单的事件处理示例:

// script.js
document.addEventListener("DOMContentLoaded", () => {
  const button = document.querySelector("button");
  button.addEventListener("click", () => {
    alert("Button clicked!");
  });
});
<!-- index.html -->
<button id="myButton">Click me!</button>

5.3 综合案例:创建一个互动式的Web页面

5.3.1 从概念到实现的完整过程

我们来构建一个简单的互动式网页,它包含一个按钮,当用户点击按钮时,页面上的某段文本会发生变化。这个过程涉及HTML结构的搭建、CSS样式的应用,以及JavaScript的交互实现。

HTML结构:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Interactive Web Page</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <div id="content">
    <h1 id="greeting">Hello World!</h1>
    <button id="changeText">Change Text</button>
  </div>
  <script src="script.js"></script>
</body>
</html>

CSS样式:

/* styles.css */
#content {
  text-align: center;
  padding: 20px;
}

#changeText {
  padding: 10px 20px;
  cursor: pointer;
  margin-top: 10px;
}

JavaScript实现:

// script.js
document.addEventListener("DOMContentLoaded", () => {
  const changeTextButton = document.getElementById("changeText");
  const greeting = document.getElementById("greeting");
  changeTextButton.addEventListener("click", () => {
    greeting.textContent = "Hello, there!";
  });
});

5.3.2 性能优化和跨浏览器兼容性处理

在实际开发中,性能优化和跨浏览器兼容性是非常重要的。以下是几个优化和兼容性处理的建议:

  • 使用CSS前缀 :为CSS规则添加浏览器特定的前缀,以确保在不同浏览器中的一致性。
  • 压缩CSS和JavaScript :使用工具(如 UglifyCSS 和 UglifyJS)减小文件大小,提高加载速度。
  • 使用类库和框架 :例如 jQuery 可以简化DOM操作和事件处理,且很多类库和框架都提供了跨浏览器兼容的代码。
  • 避免使用内联样式 :尽量使用外部或内部CSS文件,以提高缓存效果和可维护性。
  • 进行性能测试 :使用工具(如 Google PageSpeed Insights 或 WebPagetest)测试和分析页面加载性能。
  • 使用polyfills :对于较旧浏览器不支持的现代Web特性,可以使用polyfills来添加支持。

通过遵循上述建议,我们可以确保我们的互动式Web页面既具有良好的用户体验,又能在各种环境下稳定运行。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:Omkar39.github.io是一个个人网页项目,使用HTML技术构建,并托管在GitHub上。该项目展示了网页开发的基础语言HTML的多种应用,包括布局、文本格式化、链接、图像插入、列表、表格、表单元素、以及HTML5的新特性。CSS和JavaScript也可能被用于增加样式和交互性。深入了解该项目将有助于理解Web开发的基础知识。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

猜你喜欢

转载自blog.csdn.net/weixin_42433737/article/details/143087439