一、HTML 完全指南:从零开始构建网页

文章目录

    • 前言
    • 一、 HTML 结构
        • 认识 HTML 标签
        • HTML 文件基本结构
        • 标签层次结构
        • 快速生成代码框架
    • 二、 HTML 常见标签详解
        • 2.1 注释标签
        • 2.2 标题标签 (`h1` - `h6`)
        • 2.3 段落标签 (`p`)
        • 2.4 换行标签 (`br`)
        • 2.5 格式化标签
        • 2.6 图片标签 (`img`)
        • 2.7 超链接标签 (`a`)
        • 2.8 表格标签
          • 基本使用
          • 合并单元格
        • 2.9 列表标签
          • 无序列表 (`ul`)
          • 有序列表 (`ol`)
          • 自定义列表(`dl`)
        • 2.10 表单标签
          • `form` 标签
          • `input` 标签
          • `label` 标签
          • `select` 标签
          • `textarea` 标签
        • 2.11 无语义标签:`div` 和 `span`
    • 三、HTML 特殊字符
    • 总结

前言

在现代互联网的世界中,网站已经成为我们日常生活的一部分。从社交媒体到购物平台,从博客到企业官网,每一个网站背后都依赖着一种技术——HTML(超文本标记语言)。作为构建网页的核心语言,HTML不仅为网页提供结构,还使得我们能够在浏览器中看到文本、图片、视频和其他多媒体内容。

对于许多刚接触网页开发的人来说,HTML可能显得陌生且复杂,但它的学习并不像想象中的那么困难, 希望我们可以耐心学习下去。本篇《HTML 完全指南:从零开始构建网页》将带领你从最基础的HTML概念开始,逐步掌握网页构建的核心技巧和最佳实践。无论你是希望建立一个简单的个人博客,还是准备开发一个企业网站,HTML都将是你最重要的起点。

在本篇博客中,我们将通过清晰的步骤和实用的示例,帮助你了解HTML的基本元素、标签、属性以及网页布局的实现方式。即使你没有任何编程经验,也能轻松上手,构建出属于自己的网页。

通过本指南,你将不仅掌握HTML的基础,还能学会如何将这些知识应用到实际开发中,打下扎实的前端开发基础,迈出成为网页开发者的第一步。
在这里插入图片描述

一、 HTML 结构

认识 HTML 标签

HTML(超文本标记语言)是构建网页的基础,几乎所有的网页元素都由 HTML 标签来定义和描述。每个标签都用于指定网页的某一部分的内容或行为,所以我们一定要学好 HTML 标签相关的知识。
这一部分我们先大致了解一些标签,后面会一一讲解每个标签的具体用法。

常见的 HTML 标签包括:

  • <h1><h6>:标题标签,用于创建网页中的标题,数字越小表示标题的层级越高,字体越粗越大。

  • <p>:段落标签,用于标记文本段落。

  • <a>:链接标签,用于创建超链接。

  • <img>:图片标签,用于显示图片。

  • <ul><ol>:无序列表和有序列表标签,用于创建列表。

  • <li>:列表项标签,用于指定列表中的每一项。

注意:

  1. 标签名 (h1) 放到 <> 中。
  2. 大部分标签成对出现,<h1> 为开始标签,</h1> 为结束标签。
  3. 少数标签只有开始标签,称为“单标签”。
  4. 开始标签和结束标签之间,写的是标签的内容。
  5. 开始标签中可能带有"属性",id 属性相当于给这个标签设置一个唯一的标识符(相当于我们的身份证号码)
HTML 文件基本结构

每个 HTML 文件都有一个固定的结构,通常包括以下几部分:

  1. DOCTYPE 声明:告诉浏览器使用哪个 HTML 版本。现在我们常用的是 <!DOCTYPE html>,它表示该文件是 HTML5 格式。HTML 4 的声明会比 HTML 5 的声明复杂好多,相比之下 HTML 4 更方便记忆。

  2. <html></html> 标签:是整个 HTML 文档的根元素(根标签、最顶层标签)。

  3. <head></head> 标签:包含了网页的元数据,如字符集、页面标题、外部链接等,主要是写页面的属性。

  4. <body></body> 标签:网页的主要内容区域,浏览器展示的内容都在这里。

  5. <title></title> 标签:中间的内容会在页面标题中显示出来

HTML 文件基本结构示例:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>网页标题</title></head><body><h1>欢迎来到我的网站</h1><p>这是我的第一篇网页。</p></body>
</html>
标签层次结构

HTML 是一种层次化的语言,意味着标签可以包含其他标签。标签的层次结构可以通过缩进来表示,以便我们清晰地了解各部分之间的关系。

  • 包含与被包含我们可以叫做 父子关系
  • 同级的标签我们可以叫做兄弟关系

例如,HTML 中的<ul>(无序列表)标签可以包含多个 <li>(列表项)标签,展示一个列表。每个标签内的内容可以嵌套其他标签。

标签层次结构示例:

<html><head><title>我的页面</title></head><body><ul><li>项目 1</li><li>项目 2<ul><li>子项目 1</li><li>子项目 2</li></ul></li><li>项目 3</li></ul></body>
</html>

在这个例子中,<ul> 包含了三个 <li>,其中一个 <li> 标签内部又嵌套了一个新的 <ul>,展示了列表的嵌套结构。

其中:

  1. headbodyhtml 的子标签(html 就是 headbody 的父标签)。
  2. titlehead 的子标签,headtitle 的父标签。
  3. headbody 之间是兄弟关系。

帮助:
可以使用 chrome 的开发者工具查看页面的结构
F12 或者右键检查,开启开发者工具,切换到元素标签,就可以看到页面的 HTML 结构细节。

请添加图片描述
请添加图片描述

标签之间的结构,构成了一个 DOM 树。

知识拓展:
什么是 DOM?
DOM(文档对象模型,Document Object Model)是一个平台和语言无关的接口,它提供了一种表示网页结构的方式,使得网页的结构。样式和内容可以通过编程方式动态访问和修改。简单来说,DOM 是浏览器通过解析 HTML 和 XML 文档创建的一个层次化的对象模型,网页中的每一个元素、属性和文本都被表示为一个对象,可以通过 JavaScript 来操作。
DOM 的作用
请添加图片描述

快速生成代码框架

为了快速开始一个 HTML 项目,通常我们可以利用代码编辑器(如 VS Code、Sublime Text 等)提供的快捷功能来生成 HTML 框架。例如,在 VS Code 中输入 ! 然后按 Tab 键,便可以自动生成一个基本的 HTML 文件框架。

快速生成的 HTML 代码框架:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body></body>
</html>

细节解释:

  1. <!DOCTYPE html> 称为 DTD(文档类型定义),描述当前的文件是一个 HTML 5 的文件。
  2. <html lang="en"> 其中 lang 属性表示当前页面是一个"英语页面",这里暂时不用管(个别浏览器会根据此处的声明提示是否进行自动翻译)。
  3. <meta charset="UTF-8"> 描述页面的字符编码方式,没有这一行可能会导致中文乱码。
  4. <meta name="viewport" content="width=device-width,initial-scale=1.0">
    name="viewport" 其中 viewport 指的是设备的屏幕上能用来显示我们的网页的那一块区域。
    content=“width=device-width,initial-scale=1.0” 在设置可视区和设备宽度等宽,并设置初始缩放为不缩放。(这个属性对于移动端开发更重要一些)。

二、 HTML 常见标签详解

2.1 注释标签

HTML 中的注释标签用于添加注释,这些注释不会显示在浏览器中,仅供开发者参考。注释可以帮助我们记录代码说明或暂时隐藏代码。

注释标签:

<!-- 这是一个注释 -->

Ctrl + / 快捷键可以快速进行注释/取消注释

注释的原则

  1. 要和代码逻辑一致。
  2. 尽量使用中文。
  3. 不要传递负能量
2.2 标题标签 (h1 - h6)

标题标签用于创建网页的标题,h1 是最大标题,h6 是最小标题。它们通常用于展示章节、段落标题等信息,h1 应该用于页面的主标题,而 h2h6 可以用于子标题和小标题。

标题标签示例:

<h1>主标题</h1>
<h2>副标题</h2>
<h3>三级标题</h3>
<h4>四级标题</h4>
<h5>五级标题</h5>
<h6>六级标题</h6>

请添加图片描述

2.3 段落标签 (p)

当我们把一段比较长的文本粘贴到 html 中,会发现并没有分成段落。
例如:

css中的1px并不等于设备的1px在css中我们一般使用px作为单位,在桌面浏览器中css的1个像素往往都是对应着电脑屏幕的1个物理像素,这可能会造成我们的一个错觉,那就是css中的像素就是设备的物理像素。但实际情况却并非如此,css中的像素只是一个抽象的单位,在不同的设备或不同的环境中,css中的1px所代表的设备物理像素是不同的。在为桌面浏览器设计的网页中,我们无需对这个津津计较,但在移动设备上,必须弄明白这点。在早先的移动设备中,屏幕像素密度都比较低,如iphone3,它的分辨率为320x480,在iphone3上,一个css像素确实是等于一个屏幕物理像素的。后来随着技术的发展,移动设备的屏幕像素密度越来越高,从iphone4开始,苹果公司便推出了所谓的Retina屏,分辨率提高了一倍,变成640x960,但屏幕尺寸却没变化,这就意味着同样大小的屏幕上,像素却多了一倍,这时,一个css像素是等于两个物理像素的。其他品牌的移动设备也是这个道理。例如安卓设备根据屏幕像素密度可分为ldpi、mdpi、hdpi、xhdpi等不同的等级,分辨率也是五花八门,安卓设备上的一个css像素相当于多少个屏幕物理像素,也因设备的不同而不同,没有一个定论。还有一个因素也会引起css中px的变化,那就是用户缩放。例如,当用户把页面放大一倍,那么css中1px所代表的物理像素也会增加一倍;反之把页面缩小一倍,css中1px所代表的物理像素也会减少一倍。关于这点,在文章后面的部分还会讲到。在移动端浏览器中以及某些桌面浏览器中,window对象有一个devicePixelRatio属性,它的官方的定义为:设备物理像素和设备独立像素的比例,也就是 devicePixelRatio = 物理像素 /独立像素。css中的px就可以看做是设备的独立像素,所以通过devicePixelRatio,我们可以知道该设备上一个css像素代表多少个物理像素。例如,在Retina屏的iphone上,devicePixelRatio的值为2,也就是说1个css像素相当于2个物理像素。但是要注意的是,devicePixelRatio在不同的浏览器中还存在些许的兼容性问题,所以我们现在还并不能完全信赖这个东西,具体的情况可以看下这篇文章。

在网页上展示结果会变成:
请添加图片描述

可以自己动手试试。

段落标签用于定义网页中的段落。文本会被包含在 <p></p> 标签之间,浏览器会自动为每个段落添加空白行。

段落标签示例:

<p>这是一个段落,内容可以是文本、图片或者其他元素。</p>

请添加图片描述

通过段落标签我们来改进一下上面的文本

	<p>css中的1px并不等于设备的1px</p><p>在css中我们一般使用px作为单位,在桌面浏览器中css的1个像素往往都是对应着电脑屏幕的1个物理像素,这可能会造成我们的一个错觉,那就是css中的像素就是设备的物理像素。但实际情况却并非如此,css中的像素只是一个抽象的单位,在不同的设备或不同的环境中,css中的1px所代表的设备物理像素是不同的。在为桌面浏览器设计的网页中,我们无需对这个津津计较,但在移动设备上,必须弄明白这点。在早先的移动设备中,屏幕像素密度都比较低,如iphone3,它的分辨率为320x480,在iphone3上,一个css像素确实是等于一个屏幕物理像素的。后来随着技术的发展,移动设备的屏幕像素密度越来越高,从iphone4开始,苹果公司便推出了所谓的Retina屏,分辨率提高了一倍,变成640x960,但屏幕尺寸却没变化,这就意味着同样大小的屏幕上,像素却多了一倍,这时,一个css像素是等于两个物理像素的。其他品牌的移动设备也是这个道理。例如安卓设备根据屏幕像素密度可分为ldpi、mdpi、hdpi、xhdpi等不同的等级,分辨率也是五花八门,安卓设备上的一个css像素相当于多少个屏幕物理像素,也因设备的不同而不同,没有一个定论。</p><p>还有一个因素也会引起css中px的变化,那就是用户缩放。例如,当用户把页面放大一倍,那么css中1px所代表的物理像素也会增加一倍;反之把页面缩小一倍,css中1px所代表的物理像素也会减少一倍。关于这点,在文章后面的部分还会讲到。</p><p>在移动端浏览器中以及某些桌面浏览器中,window对象有一个devicePixelRatio属性,它的官方的定义为:设备物理像素和设备独立像素的比例,也就是 devicePixelRatio = 物理像素 /独立像素。css中的px就可以看做是设备的独立像素,所以通过devicePixelRatio,我们可以知道该设备上一个css像素代表多少个物理像素。例如,在Retina屏的iphone上,devicePixelRatio的值为2,也就是说1个css像素相当于2个物理像素。但是要注意的是,devicePixelRatio在不同的浏览器中还存在些许的兼容性问题,所以我们现在还并不能完全信赖这个东西,具体的情况可以看下这篇文章。</p>

展示结果为:
请添加图片描述

注意:

  1. p 标签之间存在一个空隙(也就是上面说的浏览器会为每个段落之间添加空白行)。
  2. 当前的 p 标签描述的段落,前面还没有缩进。(未来 CSS 会学)。
  3. 自动根据浏览器宽度来决定排版。
  4. html 内容首尾处的换行,空格均无效。
  5. html 中文字之间输入的多个空格只相当于一个空格。
  6. html 中直接输入换行不会真的换行,而是相当于一个空格。
2.4 换行标签 (br)

br 是 break 的缩写,代表这一行结束进行换行, <br/> 标签用于在页面中插入换行符。它是一个自闭合标签,表示不需要结束标签。当你希望在同一段落中换行时,可以使用 <br/>

换行标签示例:

<p>第一行<br>第二行<br>第三行</p>

请添加图片描述

  1. br 是一个单标签(不需要结束标签)
  2. br 标签不像 p 标签那样带有一个很大的空隙
  3. <br/> 是规范写法,不建议写成 <br>
 <p>在css中我们一般使用px作为单位,<br/>在桌面浏览器中css的1个像素往往都是对应着电脑屏幕的1个物理像素,这可能会造成我们的一个错觉,那就是css中的像素就是设备的物理像素。但实际情况却并非如此,css中的像素只是一个抽象的单位,在不同的设备或不同的环境中,css中的1px所代表的设备物理像素是不同的。在为桌面浏览器设计的网页中,我们无需对这个津津计较,但在移动设备上,必须弄明白这点。在早先的移动设备中,屏幕像素密度都比较低,如iphone3,它的分辨率为320x480,在iphone3上,一个css像素确实是等于一个屏幕物理像素的。后来随着技术的发展,移动设备的屏幕像素密度越来越高,从iphone4开始,苹果公司便推出了所谓的Retina屏,分辨率提高了一倍,变成640x960,但屏幕尺寸却没变化,这就意味着同样大小的屏幕上,像素却多了一倍,这时,一个css像素是等于两个物理像素的。其他品牌的移动设备也是这个道理。例如安卓设备根据屏幕像素密度可分为ldpi、mdpi、hdpi、xhdpi等不同的等级,分辨率也是五花八门,安卓设备上的一个css像素相当于多少个屏幕物理像素,也因设备的不同而不同,没有一个定论。</p>

运行结果如下:
请添加图片描述

2.5 格式化标签

格式化标签用于控制文本的样式,如粗体、斜体等。这些标签可以用来强调某些文本。

  • <b>:表示粗体文字

  • <i>:表示斜体文字

  • <u>:表示下划线文字

  • <strong>:表示加重的文本,语义上强调重要性

  • <em>:表示斜体的强调文本,语义上强调重要性

  • s:表示删除线文字

  • del:表示删除的强调文本,语义上强调重要性

  • ins:表示下划线的强调文本,语义上强调重要性

格式化标签示例:

<strong>strong 加粗</strong>
<b>b 加粗</b><em>倾斜</em>
<i>倾斜</i><del>删除线</del>
<s>删除线</s><ins>下划线</ins>
<u>下划线</u>

请添加图片描述

使用 CSS 也可以完成类似的效果,实际开发中以 CSS 方式为主。

2.6 图片标签 (img)

<img> 标签用于在网页中嵌入图片。它是一个自闭合标签,常用的属性包括 src(图片路径)和 alt(图片描述)。img 标签必须带有 src 属性,表示图片的路径。 图片标签没有闭合标签。

图片标签示例:

<img src="image.jpg" alt="描述图片的文字" />

此时要把 image.jpg 这个图片文件放到和 html 中的同级目录中。

img 标签的其他属性:

  1. alt:替换文本,当文本不能正确显示的时候,会显示一个替换的文字。
  2. title:提示文本,鼠标放到图片上,就会有提示。
  3. width/height:控制宽度高度,高度和宽度一般改一个就行,另外一个会等比例缩放,否则就会图片失衡。
  4. boder:边框,参数是宽度的像素,但是一般使用 CSS 来设定。
<img src="rose.jpg" alt="鲜花" title="这是一朵鲜花" width="500px" height="800px"border="5px">

注意:

  1. 属性可以有多个,不能写到标签之前。
  2. 属性之间用空格分隔,可以是多个空格,也可以是换行。
  3. 属性之间不分先后顺序。
  4. 属性使用“键值对”的格式来表示

拓展知识:
关于目录结构,对于一个复杂的网站,页面资源很多,这种情况可以使用目录把这些文件整理好。
(1)相对路径:以 html 所在位置为基准,找到图片的位置。
同级路径:直接写文件名即可(或者 ././ 代表当前路径。
下一级路径:需要添加文件夹然后再写文件名(如:images/1.png)。
上一级路径:../ 代表上一级路径然后我们就可以这样表示(如:../images/2.png)。
(2)绝对路径:一个完整的磁盘路径,或者网络路径,例如:
磁盘路径:D:\rose.png
网络路径:https://...

2.7 超链接标签 (a)

超链接标签用于创建网页中的链接。通过 <a> 标签,我们可以将用户引导到其他网页、文件或页面上的某个位置。常用的属性是 href,它定义了链接的目标地址。和 img 标签一样 href 也是必须要有的属性,因为它代表点击后会跳转哪个页面。target:打开方式,默认是 _self,在本标签页打开,如果是 _blank 则用新的标签页打开。

超链接标签示例:

<a href="https://www.baidu.com">百度</a>

链接的几种形式:

  • 外部链接:href 引用其他网站网址。
<a href="https://www.baidu.com">百度</a>
  • 内部链接:网站内部之间的链接,写相对路径即可。
    在目录中先创建一个 1.html,再创建一个 2.html
<!-- 1.html -->我是 1.html<a href="2.html">点我跳转到 2.html</a><!-- 2.html -->我是 2.html<a href="1.html">点我跳转到 1.html</a>
  • 空链接:使用 #href 中占位。
<a fref="#">空链接</a>
  • 下载链接:href 对应的路径是一个文件。(可以使用 zip 文件)
<a href="test.zip">下载文件</a>
  • 网页元素链接:可以给图片等任何元素添加链接(把元素放到 a 标签中)
<a href="http://www.sogou.com"><img src="rose.jpg" alt=""></a>
  • 锚点链接:可以快速定位到页面中的位置。
<a href="#one">第一集</a>
<a href="#two">第二集</a>
<a href="#three">第三集</a>
<p id="one">
第一集剧情 <br>
第一集剧情 <br>...
</p><p id="two">
第二集剧情 <br>
第二集剧情 <br>
...
</p><p id="three">
第三集剧情 <br>
第三集剧情 <br>
...
</p>

禁止 a 标签跳转:<a href="javascript:void(0);"> 或者 <a href="javascipt:;">

2.8 表格标签

表格标签用于在网页中创建表格。表格通常由 <table> 标签定义,表格的行由 <tr> 标签定义,表格的单元格由 <td> 标签定义,表头单元格由 <th> 标签定义。

基本使用
<table><tr><th>表头1</th><th>表头2</th></tr><tr><td>数据1</td><td>数据2</td></tr><tr><td>数据3</td><td>数据4</td></tr>
</table>
  • table 标签:表示整个表格。
  • tr 标签:表示表格的一行。
  • td 标签:表示一个单元格。
  • th 标签:表示表头单元格,会居中加粗。
  • thead 标签:表格的头部区域(注意和 th 区分,范围是比 th 要大的)
  • today 标签:表格得到主体区域。

table 包含 trtr 包含 td 或者 th

表格标签有一些属性可以用于设置大小边框等,但是一般使用 CSS 方式来设置。
这些属性都要放到 table 标签中:

  1. align 是表格相对于周围元素的对齐方式。align="center"(不是内部元素的对齐方式)
  2. border :表示边框。1 表示有边框(数字越大,边框越粗),"" 表示没边框。
  3. cellpadding:内容距离边框的距离,默认 1 像素。
  4. cellspacing:单元格之间的距离,默认为 2 像素。
  5. width/height:设置尺寸。
    注意这几个属性,vscode 都提示不出来。
<table align="center" border="1" cellpadding="20" cellspacing="0" width="500"height="500"><tr><td>姓名</td><td>性别</td><td>年龄</td></tr><tr><td>张三</td><td></td><td>10</td></tr><tr><td>李四</td><td></td><td>11</td></tr>
</table>
合并单元格

可以使用 colspan 属性来合并列,使用 rowspan 属性来合并行。

<table><tr><th colspan="2">合并两列的表头</th></tr><tr><td rowspan="2">合并两行的单元格</td><td>数据1</td></tr><tr><td>数据2</td></tr>
</table>

步骤:

  1. 先确定跨行还是跨列。
  2. 找好目标单元格(合并列,左侧是目标单元格;合并行,上方是目标单元格)。
  3. 删除的多余的单元格。
2.9 列表标签

列表标签用于创建有序列表(<ol>)和无序列表(<ul>)。列表项用 <li> 标签定义。
主要使用来布局的,整齐好看。

  • 无序列表[重要]ul li
  • 有序列表[用的不多]ol li
  • 自定义列表[重要]dl 总标签 dt 小标题 dd 围绕标题来说明,上面有几个小标题,下面有几个围绕着标题来展开。
    自定义列表(参考小米官网下方)

注意:

  1. 元素之间的是并列关系。
  2. ul/ol 中只能放 li 不能放其他标签,dl 中只能放 dtdd
  3. li 中可以放其他标签。
  4. 列表带有自己的样式,可以使用 CSS 来修改。(例如前面的小圆点都会去掉)
无序列表 (ul)
<ul><li>项目1</li><li>项目2</li><li>项目3</li>
</ul>
有序列表 (ol)
<ol><li>第一项</li><li>第二项</li><li>第三项</li>
</ol>
自定义列表(dl
<dl><dt>我的老婆们</dt><dd>咬人猫</dd><dd>兔总裁</dd><dd>阿叶君</dd>
</dl>

请添加图片描述

2.10 表单标签

表单标签用于创建交互式的用户输入界面。通过表单,用户可以输入数据,提交给服务器处理。
分成两个部分:

  • 表单域:包含表单元素的区域。重点是 form 标签。
  • 表单控件:输入框,提交按钮等。重点是 input 标签。
form 标签

<form> 标签用于创建一个表单。

<form action="/submit" method="post"><label for="name">姓名:</label><input type="text" id="name" name="name"><input type="submit" value="提交">
</form>

描述了要把数据按照什么方式,提交到哪个页面中。

关于 form 需要结合服务器 & 网络编程来进一步理解,后面再详细研究。

input 标签

<input> 标签用于定义表单控件,如文本框、按钮、复选框等。

<input type="text" placeholder="请输入姓名">
<input type="password" placeholder="请输入密码">
<input type="checkbox"> 同意条款
<input type="radio"><input type="radio">
  1. type(必须有),取值种类有很多,buttoncheckboxtextfileimagepasswordradio 等。
  2. name:给 input 起了个名字,尤其对于单选按钮,具有相同的 name 才能多选一。
  3. value:input 中的默认值。
  4. checked:默认被选中,(用于单选按钮和多选按钮)。
  5. maxlength:设定最大长度。

(1)文本框

<input type="text">

(2) 密码框

<input type="password">

(3)单选框

性别:
<input type="radio" name="sex"><input type="radio" name="sex" checked="checked">

注意:单选框之间必须具备相同的 name 属性,才能实现多选一效果。

(4)复选框

爱好:
<input type="checkbox">吃饭
<input type="chechbox">睡觉
<input type="checkbox">打游戏

(5)普通按钮

<input type="button" value="我是个按钮">

当点击了没反应,需要搭配 JavaScript 使用(后面会重点研究)

(6)提交按钮

<form action="test.html"><input type="text" name="username"><input type="submit" value="提交">
</form>

提交按钮必须放到 form 标签内,点击后就会尝试给服务器发送。

(7)清空按钮

<form action="test.html"><input type="text" name="username"><input type="submit" value="提交"><input type="reset" value="清空">
</form>

清空按钮必须放在 form 中,点击后会将 form 内所有用户输入内容重置。

(8)选择文件

<input type="fiel">

点击选择文件,会弹出对话框,选择文件

label 标签

<label> 标签用于定义表单控件的标签,增强表单可访问性。
搭配 input 使用,点击 lable 也能选中对应的单选/复选框,能够提升用户体验。

  • for 属性:指定当前 label 和哪个相同 id 的 input 标签对应。(此时点击才是有用的)
<label for="username">用户名:</label>
<input type="text" id="username" name="user">
select 标签

<select> 标签用于创建下拉列表。

  • option 中定义 select="selected"表示默认选中
<select><option value="1">选项1</option><option value="2">选项2</option><option value="3" selected="selected">选项3</option>
</select>

注意!如果不设置默认第一个为默认选项

textarea 标签

<textarea> 标签用于创建多行文本框,适用于输入较长的文本。

文本域中的内容,就是默认内容,注意,空格也会有影响。
rowscols 也都不会直接使用,都是用 CSS 来改的。

<textarea rows="4" cols="50">请输入内容...</textarea>
2.11 无语义标签:divspan
  • <div>:用于将网页内容分组,是一个无语义的块级元素,通常用于布局和样式调整。

  • <span>:是一个无语义的行内元素,常用于对部分文本进行样式设置。

这里简单说明:块级元素会独占一行,行内元素不会。

divspan 示例:

<div><p>这是一个段落。</p><span>这是行内元素。</span>
</div>

三、HTML 特殊字符

有些特殊的字符在 html 文件中是不能直接表示的,例如:
空格:&nbsp;
小于号:&lt;
大于号:&gt;
按位与:&amp;

html 标签就是用 < > 表示的,因此如果内容中如果存在 < >,就会发生混淆
其他的特殊参考字符可以参考HTML特殊字符编码对照表

总结

如果看完这篇文章对 html 仍然想要更加深度学习

使用 HTML 构建 Web - 学习 Web 开发 | MDN
HTML(超文本标记语言) | MDN]

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

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

相关文章

基于POI-TL实现动态Word模板的数据填充:【散点图】特殊处理方案

基于POI-TL实现动态Word模板的数据填充:散点图特殊处理方案 在使用POI-TL进行Word模板动态数据填充时,图表生成是一个常见需求。最近在项目中使用POI-TL处理散点图时遇到了一个特殊问题,经过研究后找到了解决方案,特此记录分享。 问题背景 POI-TL作为一款优秀的Java Wor…

使用node-Express框架写一个学校宿舍管理系统练习项目-前后端分离

今天继续分享一个新的练习项目&#xff0c;是使用node做为后端语言&#xff0c;来写的一个前后端分离项目&#xff1a;学校宿舍管理系统。我们如果想掌握一门编程语言&#xff0c;就是需要大量的练习。所以当我们学习到了一些知识&#xff0c;自己想一下 可以拿学到的知识&…

Kafka 运维实战基本操作含命令与最佳实践

1. 基础概览与工具入口 Kafka 发行包的所有 CLI 工具均在 bin/ 目录下。任何工具不带参数运行都会显示所有可用选项。本文命令默认&#xff1a;--bootstrap-server localhost:9092&#xff1b;生产请替换为你的控制面或内网 VIP。 2. 主题管理&#xff08;创建 / 修改 / 删除 /…

贪心算法应用:航班起降问题详解

Java中的贪心算法应用&#xff1a;航班起降问题详解 贪心算法是一种在每一步选择中都采取当前状态下最优的选择&#xff0c;从而希望导致全局最优解的算法策略。在航班起降问题中&#xff0c;贪心算法可以有效地解决机场跑道调度问题&#xff0c;即如何安排航班的起降顺序以最大…

uniapp scroll-view 设置scrollTop无效

当我们使用 scroll-view的scroll-top的时候 默认想让它回到顶部&#xff0c;当我们设置值为0的时候会不生效&#xff0c;在实际运用过程中&#xff0c;发现设置了scroll-top无效&#xff0c;滚动条位置并没有发生变化&#xff0c;是因为微信小程序的官方框架处于性能考虑&#…

网络与通信

1.TCP协议与UDP协议TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;和 UDP&#xff08;User Datagram Protocol&#xff0c;用户数据报协议&#xff09;是 TCP/IP 协议族中两种核心的传输层协议&#xff0c;它们在数据传输方式、可靠性、适…

Node.js中package.json详解

1. name&#xff08;名称&#xff09; 如果你计划发布你的包&#xff0c;package.json 中最重要的字段是 name 和 version&#xff0c;因为它们是必需的。name 和 version 共同组成一个假定完全唯一的标识符。包的更改应伴随版本号的更新。如果你不打算发布包&#xff0c;那么…

代码随想录第14天| 翻转、对称与深度

226.翻转二叉树 &#xff08;优先掌握递归&#xff09; 题目链接/文章讲解/视频讲解&#xff1a;翻转二叉树 交换的是指针&#xff0c;而不是数值&#xff0c;如果用数值做交换&#xff0c;需要交换的节点下面无法很好的操作。 使用递归来实现&#xff0c;但要提前清除是什么顺…

DNS-Windows上使用DNS

DNS-Windows上使用DNS一、查看与修改DNS配置1.1、查看当前DNS服务器设置1.2、临时修改 DNS 服务器&#xff08;命令行&#xff09;二、DNS缓存相关操作2.1、查看DNS缓存内容2.2、 刷新 DNS 缓存&#xff08;清除过期记录&#xff09;三、测试域名解析&#xff08;nslookup 工具…

3dsMax 2026 .NET Core 8 转型下的Maxscript脚本开发:动态编译模块的重构策略与兼容性升级路径

3ds Max 长期以来一直提供出色的 .NET 集成,使 Maxscript 能够无缝利用任何 .NET 库的强大功能。部分开发者在工具中广泛使用了 .NET 功能。 之前,3ds Max 依赖于 .NET Framework 4.8 并且最近更新到了 4.8.1,用于 2025 版本的发布。然而,随着 3ds Max 2026 的推出,Autod…

golang 做webrtc开发核心

在Golang中进行WebRTC开发&#xff0c;核心在于理解WebRTC协议的工作原理以及如何利用Go生态中的库来实现关键功能。以下是Golang WebRTC开发的核心要点&#xff1a; WebRTC基础概念 了解ICE&#xff08;Interactive Connectivity Establishment&#xff09;协议用于NAT穿越掌握…

RabbitMQ 异步化抗洪实战

说明&#xff1a;本文仅展示架构思路与安全片段&#xff0c;所有敏感字段已用占位符&#xff1b;不含可直接复刻的生产细节。数据与接口均为演示/虚拟。0. 背景与目标长耗时/不确定接口&#xff08;如对接第三方机器人平台&#xff09;的同步阻塞&#xff0c;容易造成请求堆积与…

接口返回 2 万条数据,easy-trans导致多了20s耗时排查过程

内网访问排版核料详情功能&#xff0c;用户反馈要等十几秒排查 sql&#xff1a;sql 比较简单排查内存计算&#xff1a;arthus trace 类名 方法名 总耗时2s排查页面渲染是否缓慢&#xff1a;F12 查看接口 等待服务器响应 20s 下载时间 30s, 故不考虑渲染问题排查请求响应日志打…

AIGC入门,手搓大模型客户端与MCP交互

概述 在现代应用开发中&#xff0c;将大语言模型&#xff08;LLM&#xff09;与专用工具服务相结合&#xff0c;可以构建出既能理解自然语言&#xff0c;又能准确执行专业任务的智能代理。本文介绍一个基于 MCP&#xff08;Model Context Protocol&#xff09;协议和 Ollama 本…

深度学习:从预备知识到未来展望

在当今数字化时代&#xff0c;深度学习正以前所未有的速度改变着我们的生活和工作方式。从智能语音助手到自动驾驶汽车&#xff0c;从精准医疗到个性化推荐系统&#xff0c;深度学习的应用无处不在。本文将从深度学习的预备知识入手&#xff0c;探讨其发展历程、关键技术和未来…

软考高级系统架构设计师之构件与中间件技术篇

一、构件的定义 定义1:软件构件是一种组装单元&#xff0c;它具有规范的接口规约和显式的语境依赖。软件构件可以被独立地部署并由第三方任意地组装。 定义2:构件是某系统中有价值的、几乎独立的并可替换的一个部分&#xff0c;它在良好定义的体系结构语境内满足某清晰的功能。…

Node.js 文件上传中文文件名乱码问题,为什么只有Node会有乱码问题,其他后端框架少见?

问题现象当用户上传包含中文字符的文件时&#xff0c;在服务器端获取到的文件名可能变成类似 ‹•–‡.txt 这样的乱码&#xff0c;而不是预期的中文文件名。为什么只有Node会乱码&#xff1f;很多后端框架&#xff08;如 Java Spring Boot、Python Django、PHP Laravel&#x…

学习英语音标 (从汉语角度看英语音标发音差异)

仅供参考, 跟着教学视频看不懂时再来看以下引导 以下只写容易出错的音标 发音视频: https://www.jiwake.com/yinbiaofayin/ 音标规则单词ɜː类似汉语e, 饿~urgeə类似汉语e, 饿goɔː类似汉语o, 哦~walkɒ类似汉语o, 哦washɪ/iː/的短语, 不止发声短,舌头不用隆起itʃ类似汉…

论文笔记(九十一)GWM: Towards Scalable Gaussian World Models for Robotic Manipulation

GWM: Towards Scalable Gaussian World Models for Robotic Manipulation文章概括摘要1. 引言2. 相关工作3. 高斯世界模型&#xff08;Gaussian World Model&#xff09;3.1. 世界状态编码&#xff08;World State Encoding&#xff09;3.2. 基于扩散的动态建模&#xff08;Dif…

apache phoenix sql 命令大全详解

这是一份非常详细的 Apache Phoenix SQL 命令大全和详解。Phoenix 作为 HBase 上的 SQL 层&#xff0c;其语法大部分与标准 SQL 兼容&#xff0c;但也有许多针对 HBase 的特性扩展。核心概念 在开始之前&#xff0c;请记住 Phoenix 的两个核心概念&#xff1a; 主键&#xff08…