【前端小站】HTML 标签:网页骨架,从空白到惊艳,全靠这些 HTML 标签搞事情

【前端小站】HTML 标签:网页骨架,从空白到惊艳,全靠这些 HTML 标签搞事情

请添加图片描述

半桔个人主页
 🔥 个人专栏: 《前端扫盲》《手撕面试算法》《C++从入门到入土》

🔖为什么有人总是赞美生活的丰富多彩?我想这是因为他们善于品尝生活中随时出现的意外。 ​ -余华-


文章目录

前言

HTML(HyperText Markup Language,超文本标记语言)是构建网页的基石,是每一位前端开发者踏入 Web 世界的关键钥匙。它通过一系列语义化与功能性的标签,为网页搭建起清晰的 “结构骨架”,让文本、图片、表单等各类内容得以有序呈现,是网页与用户交互的 “第一层语言”。

对于想要系统学习 HTML 的初学者,或是需要回顾基础的开发者而言,本文将围绕 HTML 的核心标签体系展开讲解。

我们会从最基础的初始 HTML 结构标签入手,逐步深入到文本标签(标题、段落、强调类等)、媒体与交互标签(图片、超链接)、表格标签列表标签(无序、有序、自定义)、表单标签(容器、输入控件、辅助标签等)的使用方法与场景,最后也会涉及无语义标签的相关知识。通过对这些内容的学习,你将全面掌握 HTML 构建网页结构的核心能力,为后续学习 CSS(美化网页样式)、JavaScript(实现网页交互)奠定坚实的基础。

一. HTML结构

1.1 初始HTML标签

  • HTML代码都是由标签组成的。

标签就是类似于<body>内容</body>,这种形式的字段,比如下面百度的主页:

请添加图片描述

可以看到就是由众多标签组成的。

关于标签可以分为两类:

  1. 双标签:有开始,有结束;比如<body>内容....</body>,其中的<body>就是开始标签,而/body就是结束标签;
  2. 单标签:只有开始,比如,图片标签<img>
  • 在双标签之间放的是标签对应的内容,而在标签内部则可以设置标签的属性;

关于有哪些标签以及如何进行使用,在后面会详细进行介绍。

1.2 标签的层次

标签之间的结构关系,组成了一颗DOM树的结构,就是一颗多叉树。

请添加图片描述
  • 因此多叉树的节点中有哪些关系,标签就有那些关系.

其中有几个规定:

  1. html标签是根标签,所有标签都是它的子标签;
  2. <head>是网页属性,配置标签,<body>是网页主体内容标签,他们是父子标签。

在进行前端编写时,我们通常会采用vscode作为我们的开发工具,此处推荐几个好用的插件:

  1. Auto Rename Tag:可以自动将双标签进行对称修改处理,修改一侧另一侧会自动修改;
  2. Live Server:可以让我们修改后的HTML界面,直接在网页中查看变化,不再需要手动刷新网页了;
  3. view-in-browser:让我们一键打开浏览器,查看HTML网页效果。

通过输入!然后按回车,可以让我们快速自动生成HTML代码框架:

请添加图片描述

下面我将对其中的字段进行一个简单的介绍:

  1. <!DOCTYPE html>:一个文档类型说明,告诉浏览器当前HTML文档使用的是HTML5规范;
  2. <html lang="en">:告诉浏览器,当前文档中主要内容是英文;
  3. <meta charset="UTF-8">:文档的字符编码采用的是UTF-8
  4. <meta name="viewport" content="width=device-width, initial-scale=1.0">:是关于移动设备适配使用的。

二. HTML文本标签

以下是一张关于常见文本标签的列表:

名称说明
标题<h1>标题名</h1>通过修改数字,来指定标签级别
段落<p>内容</p>
加粗<strong>内容</strong><b></b>
倾斜<em>内容</em><i></i>
删除线<del>内容</del><s></s>
下划线<ins>内容</ins><u></u>

2.1 标题标签

  • 语法:<h1>标题名称</h1>:一级标签;
  • <h2>,<h3>...<h6>,最多可以到六级标题。

效果演示:

<body><h1>这是一个一级标题</h1><h2>这是一个二级标题</h2><h3>这是一个三级标题</h3><h4>这是一个四级标题</h4><h5>这是一个五级标题</h5><h6>这是一个六级标题</h6></body>
请添加图片描述

2.2 段落标签

  • 语法:<p>段落内容</p>,段落标签属于块标签,不会和其他标签内容共占一行。
<body><p>这是第一段</p><p>这是第二段</p><p>这是第三段</p></body>
请添加图片描述

如果一个段落中内容过长,可能会导致一个段落占据多行的情况,比如下面:

请添加图片描述

此时如果我们想要在一个段落的中间对内容进行换行操作,此时就可以使用换行标签

<br>/ 

这是一个单标签,专门用来进行换行操作的:

<body><p>这是第一段,这是第一段,这里有一个换行标签<br/>,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段,这是第一段</p><p>这是第二段</p><p>这是第三段</p></body>
请添加图片描述

2.3 强调标签

2.3.1 加粗

  • 语法:<strong>内容</strong><b>内容</b>,该标签属于行内标签;

效果演示:

<body><strong>第一个加粗字段</strong><strong>第二个加粗字段</strong></body>
请添加图片描述
  • <strong><b>标签都能让文本在视觉上呈现 “加粗” 效果,它们的核心区别在于 “语义”(含义)
  • <strong>是对语义化的 “强调重要性”,而<b>仅仅是进行加粗操作;比如:屏幕阅读器(帮助视障用户浏览网页的工具)会通过语调变化强调<strong>包裹的内容,让用户感知到其重要性;

2.3.2 倾斜

  • 语法:<em>内容</em><i>内容</i>,该标签与上面标签一样,也是一个行内标签。

效果演示:

<body><em>第一个倾斜字段</em><em>第二个倾斜字段</em></body>
请添加图片描述

2.3.3 删除线

  • 语法:<del>内容</del><s>内容</s>是一个行内标签。

效果演示:

<body><del>第一个删除线</del><del>第二个删除线</del></body>
请添加图片描述

2.3.4 下划线

  • 语法:<ins>内容</ins><u>内容</u>是一个行内标签。
<body><ins>第一个下划线</ins><ins>第二个下划线</ins></body>
请添加图片描述

三. 媒体与交互标签

此处重点介绍两个:

名称说明
图片<img>
超链接<a></a>

3.1 图片标签

  • 语法:<img src="图片路径">

关于图片标签有很多可以进行设置的属性,下面进行重点介绍:

属性说明
src图片路径
alt图片路径不对时,显示的文案提示
title提示文本,鼠标放在图片上,进行提示
height/width图片的高度/宽度
border图片边框大小
对于alt效果演示:
<body><imgsrc="./"alt="没有找到图片"></body>
请添加图片描述
  • height , width , border的单位都是px,并且对于height, width来说,一般只设置一个,另一个会等比例进行缩放。

对于title , height , width , border效果演示:

<body><imgsrc="./头像.jpg"height="100px"title="这是一个头像"border="1px"></body>
请添加图片描述

3.2 超链接标签

  • 语法:<a>跳转提示</a>.

与图片一样,超链接标签也有一些属性可以进行设置:

属性说明
href超链接跳转的地址
target跳转的方式,_self本页面跳转,_blank新标签页打开
效果演示:
<body><ahref="https://banju.blog.ZEEKLOG.net/"target="_blank">点击,跳转到我的主页</a></body>
  • 关于<a>标签中间的内容,不仅仅可以是文字,也可以是图片。

四. 表格标签

表格标签就是<table></table>但是其内部又衍生出来了,很多标签:

名称说明
表格属于容器,<table>内容</table>
表格中的一行属于容器,<tr>内容</tr>
一个单元格<td>内容</td>
指定表格头部区域属于容器,<thead>内容</thead>
表头单元格默认会居中加粗,<th>内容</th>

4.1 表格的使用

表格标签使用起来,相对复杂一点,一下是一个使用方法演示:

<body><table><thead><th>姓名</th><th>年龄</th><th>性别</th></thead><tr><td>张三</td><td>17</td><td>女</td></tr><tr><td>李四</td><td>34</td><td>男</td></tr><tr><td>王五</td><td>31</td><td>男</td></tr></table></body>

效果演示:

请添加图片描述
  1. 其中的<table></table>表示一个容器,中间存放的内容都属于有一个表格内容;
  2. <thead></thead>表示表格的头部区域,th是表示头部的每一个单元格;
  3. <tr></tr>表示表格的每一行,而<td></td>则是表格一行中的每一单元格。

4.2 表格的属性

对于表格来说,也有一些常用的属性可以进行设置:

属性说明
cellspacing每个单元格之间的距离
cellpadding内容距离边框的距离,默认是1
当然表格也可以设置边框。

效果演示:

<body><tableborder="1px"cellspacing="0"cellpadding="10"><thead><th>姓名</th><th>年龄</th><th>性别</th></thead><tr><td>张三</td><td>17</td><td>女</td></tr><tr><td>李四</td><td>34</td><td>男</td></tr><tr><td>王五</td><td>31</td><td>男</td></tr></table></body>
请添加图片描述

五. 列表标签

名称说明
无序列表容器<ul>...</ul>
有序列表容器<ol>...</ol>
列表项<li>...</li>
自定义列表容器<dl>...</dl>
自定义列表解释项<dt>...</dt>
自定义列表说明项<dd>...</dd>
  • 无序列表:<ul>(容器)+ <li>(列表项)
  • 有序列表:<ol>(容器)+ <li>(列表项)
  • 定义列表:<dl>(容器)+ <dt>(术语)+ <dd>(解释)

5.1 无序列表

  • 无序列表:<ul>(容器)+ <li>(列表项)
    效果演示:
<body><ul><li>内容1</li><li>内容2</li><li>内容3</li></ul></body>
请添加图片描述

对于无序列表,有一个经常设置的属性:

  • type:表示列表项目前面符号的内容,有三个:disc实心圆,square方块,circle空心圆。

5.2 有序列表

  • 有序列表:<ol>(容器)+ <li>(列表项)
    使用方法与上面类似,此处就不进行展示了。
  1. 其中可以对列表起始位置的数值进行设置:start=
  2. 也可以设置顺序列表排列的符号类型:type=,可以选择1使用数字,a使用小写字母,A使用大写字母,i使用小写阿拉伯数字,I使用大写阿拉伯数字。

5.3 自定义列表

  • 定义列表:<dl>(容器)+ <dt>(术语)+ <dd>(解释)
<body><dl><dt>这是一个自定义列表</dt><dd>内容1</dd><dd>内容2</dd><dd>内容3</dd></dl></body>
请添加图片描述

六. 表单标签

可以使用表单标签实现与服务器进行交互。

名称说明
表单域,容器<from>...</from>
输入控件<input>...
下拉菜单<select>...</select>
下拉选项<option>...</option>
多行文本<textarea></textaarea>

6.1 表单容器标签

<form>唯一的表单容器标签,通过属性控制表单行为:

  • action:指定表单数据提交的服务器地址(URL);
  • method:指定提交方式(getpost);

6.2 输入控件标签

6.2.1 输入框

  • 语法:input

其中关于输入,可以输入很多类型,通过type=属性进行控制:

  1. 文本输入:text输入单行文本, password输入密码:
    效果演示:
<body><formaction=""> 账号<inputtype="text"><br/> 密码<inputtype="password"></form></body>
请添加图片描述
  1. 数值输入:type="number"(仅允许数字)、type="range"(滑块选择数值);
<body><formaction=""> 年龄<inputtype="number"><br/> 1<inputtype="range">100 </form></body>
请添加图片描述
  1. 媒体输入:type="file"(文件上传)、type="image"(图片按钮,可提交表单),该属性比较简单,此处就不再进行演示了;
  2. 选择输入:type="radio"(单选按钮,互斥选择),type="checkbox"(复选框,可多选);
<body><formaction=""> 性别:<inputtype="radio">男<inputtype="radio">女 </form></body>
请添加图片描述

此时就可以进行选择了,当时如果直接这样进行设置,两个可以同时进行选择,但是我们希望的是只能选择一个。

  • 此时就需要对数据框进行唯一标识,使用name=来让两个选项具有一个标识;
  • 还可以使用checked来让一个作为默认选项。
<body><formaction=""> 性别:<inputtype="radio"name="gender"checked="checked">男<inputtype="radio"name="gender">女 </form></body>

当然也可以使用ckeckbox表示多选。

6.2.2 多行文本输入

  • 语法:使用<textarea></textarea>

其中可以设置文本框的宽度和高度,使用cols/rows

效果演示:

<body><formaction=""><textareaname=""id=""cols="30"rows="10">请输入内容....</textarea></form></body>
请添加图片描述

6.2.3 下拉选择器

  • 语法:使用<select></select>来进行实现,其中<option></option>表示对应的选项。

效果演示:

<body><formaction=""><selectname=""id=""><optionvalue="">选项1</option><optionvalue="">选项2</option><optionvalue="">选项3</option><optionvalue="">选项4</option></select></form></body>
请添加图片描述

6.3 表单辅助标签

标签关联:<label>

  • 为表单控件绑定文本说明,点击文本可聚焦到对应的控件(尤其适合复选框、单选按钮),通过 for 属性与控件的 id 关联。

例如,上面我们写的性别选择:

<body><formaction=""> 性别:<inputtype="radio"name="gender"checked="checked">男<inputtype="radio"name="gender">女 </form></body>

现在如果我们希望,在点击中文汉字的时候也能进行也能实现选择,就可以使用lable来进行实现。

<body><formaction=""> 性别: <inputtype="radio"name="gender"checked="checked"id="male"><labelfor="male">男</label><inputtype="radio"name="gender"id="female"><labelfor="female">女</label></form></body>

6.4 按钮标签

**<button>**最灵活的按钮,可包含文本、图标等内容,通过 type 属性定义行为:

  • type="submit":默认值,点击提交表单;
  • type="reset":点击重置表单(清空输入);
  • type="button":无默认行为,需配合脚本使用(如弹窗)。

关于按钮标签,要搭配JS进行使用,后续会专门写一篇博客讲JS。

<body><formaction=""><buttontype="button">一个按钮</button><buttontype="submit">现在提交</button><buttontype="reset">重置</button></form></body>

七. 无语义标签

无语义标签分为两种:<div></div><span></span>

其中<div>是块标签,独占一行,而<span>是行内标签,不独占一行。

  • 无语义标签没有固定的用途,可以该标签做任何事情,一般负责网页布局。

下面补充几个HTML中的特殊字符:

  1. &nbsp:空格,在HTML中多个空格相连,浏览器会将其合并为一个,所以可以使用&nbsp来保证多个空格同时显示;
  2. &li:小于符号;
  3. &gt:大于符号;
  4. amp:按位与符号。

Read more

openclaw多节点访问 Gateway 的方法

openclaw多节点访问 Gateway 的方法 1. Gateway 端配置 网络绑定:若节点通过局域网访问,Gateway 需绑定到 LAN 接口(gateway.bind: “lan” 或指定 IP),不能仅绑定到 loopback(127.0.0.1)。若通过 SSH 隧道或 Tailscale 等 VPN 访问,Gateway 可保持 loopback 绑定,因为流量会转发到本地。 认证:推荐使用 Token 认证。在 gateway.auth 中设置 mode: “token” 并配置 token。确保 Token 与节点端一致。

By Ne0inhk
Flutter 三方库 flad_cli 的鸿蒙化适配指南 - 实现 Dart 工程的自适应模板扫描与脚手架自动化、支持端侧资源一键生成与代码架构规约校验实战

Flutter 三方库 flad_cli 的鸿蒙化适配指南 - 实现 Dart 工程的自适应模板扫描与脚手架自动化、支持端侧资源一键生成与代码架构规约校验实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 flad_cli 的鸿蒙化适配指南 - 实现 Dart 工程的自适应模板扫描与脚手架自动化、支持端侧资源一键生成与代码架构规约校验实战 前言 在进行 Flutter for OpenHarmony 的企业级项目矩阵开发时,如何保证上百个模块的目录结构、基础依赖、甚至是 import 规约保持高度一致?手动复制粘贴模板显然不可持续。flad_cli 是一个专为 Dart 项目设计的极简脚手架(Scaffold)命令行工具。它能根据预设规则自动生成或扫描工程文件。本文将探讨如何在鸿蒙端利用此工具构建极致的工业化开发流水线。 一、原直观解析 / 概念介绍 1.1 基础原理 flad_cli 建立在“代码生成(Code Gen)”与“扫描(

By Ne0inhk

OpenClaw gateway start 报 401 Invalid API key?一个环境变量的坑

今天折腾了半小时,终于搞明白为什么 openclaw gateway start 一直报 HTTP 401: Invalid API key,而 openclaw gateway run 却能正常工作。 记录一下,免得以后又踩。 问题现象 用 openclaw gateway run 前台运行,一切正常,能正常对话。 但换成 openclaw gateway start(systemd 后台服务),就报错: HTTP 401: Invalid API key 明明配置文件里 API key 写得好好的,为什么会这样? 原因分析 run 和 start 的区别: * run — 前台运行,

By Ne0inhk
Flutter 三方库 stream_channel 的鸿蒙化适配指南 - 实现具备跨端通讯抽象与协议分层治理的流通道架构、支持端侧多维异步指令流管道化实战

Flutter 三方库 stream_channel 的鸿蒙化适配指南 - 实现具备跨端通讯抽象与协议分层治理的流通道架构、支持端侧多维异步指令流管道化实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 stream_channel 的鸿蒙化适配指南 - 实现具备跨端通讯抽象与协议分层治理的流通道架构、支持端侧多维异步指令流管道化实战 前言 在进行 Flutter for OpenHarmony 的复杂通讯系统(如实现自定义的二进制协议、跨进程 IPC 或与嵌入式设备进行长连接)开发时,如何将原始的、读写分离的 IO 映射为统一、双工的指令流?stream_channel 是一款专注于流通讯抽象的核心库。它将一个 Stream(入站)和一个 StreamSink(出站)封装为单一、可组合的对象。本文将探讨如何在鸿蒙端构建极致、清亮的流通讯底座。 一、原直观解析 / 概念介绍 1.1 基础原理 该库建立在“双工通道(

By Ne0inhk