【前端小站】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

Microsoft Edge WebView2 Runtime(运行库)快速部署 + 调试指南(精简实用、适配开发 + 用户双场景)

Microsoft Edge WebView2 Runtime(运行库)快速部署 + 调试指南(精简实用、适配开发 + 用户双场景)

WebView2运行库 v143.0.3650.139 x64 精简安装(下载) 一、WebView2 Runtime 快速安装部署(用户 / 开发通用,必做) ✅ 1. 系统预装情况 ▸ Windows 11 系统 默认自带 常青版 WebView2 运行库,无需手动安装;▸ Windows 10/7/8.1 需手动安装,缺失则调用 WebView2 控件的软件会弹窗报错「缺少 WebView2 运行环境」。 ✅ 2. 两种官方安装方式(推荐) 方式 1:常青版(Evergreen Runtime)- 首选 ▸ 特点:体积小(引导包仅

By Ne0inhk
【前端实战】构建 Vue 全局错误处理体系,实现业务与错误的清晰解耦

【前端实战】构建 Vue 全局错误处理体系,实现业务与错误的清晰解耦

目录 【前端实战】构建 Vue 全局错误处理体系,实现业务与错误的清晰解耦 一、为什么要做全局错误处理? 1、将业务逻辑与错误处理解耦 2、为监控和埋点提供统一入口 二、Vue 中的基础全局错误处理方式 1、Vue 中全局错误处理写法 2、它会捕获哪些错误? 3、它不会捕获哪些错误? 4、errorHandler 的参数含义 三、全局错误处理的进阶设计 1、定义“可识别的业务错误” 2、在 errorHandler 中做真正的“分类处理” 3、补齐 Promise reject 的捕获能力 4、错误处理的策略化封装 四、结语         作者:watermelo37         ZEEKLOG优质创作者、华为云云享专家、阿里云专家博主、腾讯云“

By Ne0inhk

Vue第四篇:组件通信 + DOM 更新 + 过渡动画

Vue 组件化开发中,组件之间传数据(组件通信)是核心需求,DOM 更新时机、元素动效也是前端开发高频场景。 一、自定义事件:子组件向父组件通信的优雅方式 为什么需要自定义事件? 在父组件中,我们通过props向子组件传递数据。但当子组件需要向父组件传递数据时,就需要自定义事件了。 核心作用 自定义事件是子组件给父组件传数据的专属方式(只能子传父)。原理很简单:父组件给子组件绑定一个自定义事件,子组件触发这个事件并传递数据,事件的回调函数写在父组件里,就能轻松拿到子组件的数据。 两种绑定方式对比 方式1:直接在模板中绑定(简洁) <!-- 父组件 App.vue --><template><div><!-- 通过@绑定自定义事件 --><ChildComponent @child-event=

By Ne0inhk

小白入门:前端前端调用 AI 接口全流程(附具体案例)

很多前端新手在调用 AI 接口时会犯怵:不知道 “怎么怎么传参数?”“流式响应怎么处理?”“不同功能(润色 / 扩写)调用方式不一样吗?” 其实很简单!本文以 “智能文本处理工具” 为例,手把手教你从 0 到 1 调用 AI 接口,包含润色、扩写等功能,看完就能上手。 准备工作:先看懂这 3 个核心文件 在开始前,我们需要明确项目中 3 个关键文件的作用(这些文件你可能已经有了,只是不知道怎么用): * vite.config.js:配置后端接口代理,解决跨域问题 * apiClient.js:封装好的 HTTP 请求工具,帮你发请求 * aiService.js:封装好的 AI 功能函数(

By Ne0inhk