前端自学入门:HTML 基础详解与学习路线指引
在互联网的浪潮中,前端开发如同构建数字世界的基石,而 HTML 则是前端开发的 “入场券”。对于许多渴望踏入前端领域的初学者而言,HTML 入门是首要挑战。本指南将以清晰易懂的方式,带大家深入了解 HTML 基础,并梳理前端学习路线,助力大家迈出坚实的第一步。
前端学习路线
前端学习是一个循序渐进的过程,以下是常见的学习路线:
一、HTML 基础详解
0. 系统结构
在网络应用中,存在两种常见架构:
B/S 架构(Browser/Server,浏览器 / 服务器架构):通过浏览器与服务器交互。浏览器支持 HTML、CSS、JavaScript 语言,服务器则常用 C、C++、Java、Python 等语言。其优势在于升级维护方便,只需更新服务器端代码,适用于企业内部系统;但缺点是数据从服务器获取,速度较慢,用户体验相对欠佳。
C/S 架构(Client/Server,客户端 / 服务器架构):通过客户端软件与服务器交互。优点是运行速度快、用户体验好;然而,升级和维护成本较高。
由于不同浏览器对网页的解析存在差异,因此开发时需考虑世界五大主流浏览器(Chrome、Firefox、Safari、Edge、Opera)的兼容问题 。
1. 简介
HTML 全称为 “Hyper Text Markup Language(超文本标记语言)”,是构建网页的标准语言。它并非编程语言,而是用于描述网页内容和结构的标记语言。“超文本” 涵盖了流媒体、图片、声音、视频等丰富内容。HTML 由 W3C(世界万维网联盟)制定规范,中文帮助文档可在W3school查询。
HTML 通过标签来定义网页内容,格式为<标签符>内容</标签符>。学习 HTML 的核心,就是掌握各类标签的用法,从而搭建网页的 “骨架”。且 HTML 不区分大小写。
2. 结构
HTML 的基本结构如下:
<!DOCTYPE html> <!--文档声明,加上表示HTML5语法-->
<html><head></head> <!--页头--><body></body> <!--页身-->
</html>
在 VSCode 编辑器中,可通过输入!+回车快速生成基本结构。
3. head 标签
head 标签用于存放网页的元信息,通常只有特定标签能置于其中,主要包括以下 5 种:
title 标签
定义网页标题,显示在浏览器的标题栏或标签页上。
<html><head><title>jimmy的个人网页</title></head>
</html>
meta 标签:
用于定义页面的特殊信息,如关键字、描述、编码等,主要供搜索引擎抓取。
<html><head><meta name="keyword" content = "这是个人网站" /><meta name="description" content = "这里记录我的学习情况" /><meta name="author" content = "Jimmy" /><!--定义编码,在html5中可以直接简写为<meta charset="utf-8" />--> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <!--6s后自动跳转到指定网站--><meta http-equiv="refresh" content="6;url=http://www.baidu.com"/></head>
</html>
link 标签:
用于引入外部样式文件(CSS 文件),实现网页样式与结构分离。
<html><head><link type = "text/css" rel="stylesheet" href="css/index.css"/></head>
</html>
style 标签:
可直接在页面中编写 CSS 样式,对网页进行样式设置。
<html><head><style type="text/css">/*这里写CSS样式*/</style></head>
</html>
script 标签:
用于定义页面的 JavaScript 代码,也可引入外部 JavaScript 文件,实现网页的交互功能。
<html><head><script>/*这里写javascript代码*/</script></head>
</html>
4. body 标签
body 标签是网页内容的实际载体,包含文本、图片、超链接、音频、视频等元素,是用户直接可见的部分。
标题标签:HTML 提供了 6 级标题标签,用于划分网页内容的层次结构。
<html><head><meta charset="utf-8"/><title>h标签</title></head><body><h1>这是一级标题</h1><h2>这是二级标题</h2><h3>这是三级标题</h3><h4>这是四级标题</h4><h5>这是五级标题</h5><h6>这是六级标题</h6></body>
</html>
段落标签:标签用于定义段落,会自动换行且段落间有间距。如需在段落内换行,可使用
标签。
标签可保留代码中的格式,按原样显示在网页上。
<!DOCTYPE html>
<html>
<head><meta charset="utf-8" /><title>换行标签</title>
</head>
<body><h3>静夜思</h3> <p>床前明月光,疑是地上霜。<br/>举头望明月,低头思故乡。</p>
</body>
</html>
<!DOCTYPE html>
<html><head><meta charset='utf-8'/><title>预留格式</title></head><body><pre>床前明月光,疑是地上霜。举头望明月,低头思故乡。</pre></body>
</html>
文本标签:用于设置文本的各种样式,如加粗、斜体、上标、下标等。
粗体标签:strong、b
斜体标签:i、em、cite
上标标签:sup
下标标签:sub
中划线标签:s
下划线标签:u
大字号标签:big
小字号标签:small
字体标签:font
这里你不用全部记忆,需要用的时候去查询文档即可,只需简单记住有哪些功能。注意:这些标签是可以嵌套在p标签内
表格
table表示表格,tr代表行,td代表一行中的一个小格子,rowspan表示占几行(也可以称作合并单元格),colspan表示占几列(合并单元格)。th和td一样也是一个小格子,只是多了加粗居中,可以认为是head。
table也可以分为3部分,thead,tbody,tfoot。并不是必须的,但是有益于后期js代码编写以及维护
<html><head><title>table</title></head><body><table border="1px" width="30%" height ="100px"><!--头部--><thead><tr align = "center"><td colspan="2">a</td></tr></thead><tr><td>c</td><td rowspan="2">d</td></tr><tr><td>e</td></tr></table></body></html>
表单
最重要的应用就是接收用户信息。第一个代码片段是普通的表单,第二个代码片段是将表单嵌套在表格中。其中需要注意的是所有内容一定要包含在form中,这样才会提交的action地址。在input中必须写上name才会被提交。
提交格式:action?name=value&name=value&name=value…(注意form的提交方法有两种,一种是post请求,一种是get请求,两者的区别是post请求不会在地址栏上显示表单信息,而get会显示)
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>form</title></head><body><form action="服务器地址" method="post">name:<input type="text" name="username" /><br />password:<input type="password" name="userpwd" /><br /><!-- type=“submit”时具有提交表单的能力--><input type="submit" value="submit"/></form></body>
</html>
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body><form action="https://198.1.1.1" method="post"><table><tr><td>name:</td><td><input type="text" name="username" /></td></tr><tr><td>password:</td><td><input type="password" name="userpwd" /></td></tr><tr><td colspan="2"><input type="submit" value="login" /><input type="reset" value="reset" /></td></tr></table></form></body>
</html>
思考与总结
一、HTML 学习的方法论思考
避免贪多求全,聚焦核心标签:正如开篇强调的,HTML 标签数量众多,初学者若试图一次性掌握所有标签,不仅效率低下,还容易陷入知识过载的困境。实际开发中,80% 的需求仅需 20% 的常用标签就能实现。例如,div 用于布局划分、p 呈现段落文本、a 创建超链接、img 插入图片,这些基础标签构成了网页的基本骨架。在学习初期,应将精力集中于核心标签,后续随着项目需求再逐步拓展标签库。
文档查阅与实践结合:官方文档是学习 HTML 最权威的资料,但直接阅读文档容易枯燥且缺乏直观理解。建议采用 “实践 - 查阅 - 优化” 的学习模式。例如,在尝试创建表格时,先动手编写基础代码,遇到属性或功能疑惑时,再查阅 MDN 文档获取详细解释,最后根据文档指导优化代码结构。这种方式既能加深记忆,又能培养独立解决问题的能力。
善用工具提升效率:现代开发离不开高效工具的辅助。VSCode 作为主流编辑器,其丰富的插件生态极大提升了开发效率。例如,“Live Server” 插件可实现代码保存后自动刷新页面,方便实时预览效果;“HTML CSS Support” 插件能提供智能代码补全,减少语法错误。合理利用这些工具,可将更多精力投入到知识学习与逻辑思考中。
二、HTML 标签特性与应用场景总结
标签语义化的重要性:HTML5 引入了大量语义化标签,如 header、nav、section、article、footer 等,这些标签不仅能清晰表达网页结构,还对搜索引擎优化(SEO)和无障碍访问(Accessibility)具有重要意义。例如,使用 article 包裹独立内容,搜索引擎可更好地理解页面主题,屏幕阅读器也能更准确地向视障用户传达信息。在实际开发中,应避免过度使用无意义的 div,优先选择语义化标签提升代码质量。
块级元素与行内元素的布局逻辑:块级元素与行内元素的特性差异是 HTML 布局的核心。块级元素默认独占一行,常用于划分网页区域;行内元素可与其他行内元素共处一行,主要用于文本修饰和小范围内容展示。掌握这一特性,有助于理解如何使用 div 和 span 进行灵活布局。例如,使用 div 搭建网页整体框架,使用 span 修饰段落内的特定文字,两者相互配合实现复杂的页面结构。
表单元素的交互设计考量:表单是网页与用户交互的重要媒介,设计时需充分考虑用户体验与数据安全性。例如,合理设置 input 的 type 属性,选择合适的输入类型(如 text、password、email 等),可提高输入准确性;使用 required 属性强制用户填写必要字段,避免无效数据提交;在涉及敏感信息时,务必采用 post 请求方式,防止数据在 URL 中泄露。
三、前端知识体系的关联性与延伸
HTML 与 CSS、JavaScript 的协同关系:HTML 负责网页的内容结构,CSS 赋予网页视觉样式,JavaScript 实现网页的交互功能,三者相辅相成,共同构建完整的前端应用。例如,通过 HTML 搭建网页框架,使用 CSS 设置背景颜色、字体样式、元素间距等外观效果,再借助 JavaScript 实现按钮点击事件、数据动态加载等交互逻辑。理解三者的分工与协作,是成为优秀前端开发者的关键。
从 HTML 基础到前端框架的进阶路径:当前端知识储备达到一定程度后,学习 Vue.js、React 等前端框架是必然趋势。这些框架基于 HTML、CSS、JavaScript 进行了高度封装和优化,能大幅提升开发效率和应用性能。例如,Vue.js 的组件化开发模式可将网页拆分为多个独立可复用的组件,每个组件包含自身的 HTML 结构、CSS 样式和 JavaScript 逻辑,这种开发方式与 HTML 的标签化思想一脉相承,但更加高效和灵活。
前端开发的未来趋势与挑战:随着技术的不断发展,前端领域也在持续演进。WebAssembly 的出现提升了网页的性能,使网页能够运行更复杂的计算任务;渐进式 Web 应用(PWA)让网页具备类似原生应用的离线访问和推送通知等功能;人工智能与前端的结合(如智能表单验证、个性化界面生成)也成为新的研究方向。作为前端开发者,需保持学习热情,紧跟技术趋势,不断迎接新的挑战。
相关文章:

前端自学入门:HTML 基础详解与学习路线指引
在互联网的浪潮中,前端开发如同构建数字世界的基石,而 HTML 则是前端开发的 “入场券”。对于许多渴望踏入前端领域的初学者而言,HTML 入门是首要挑战。本指南将以清晰易懂的方式,带大家深入了解 HTML 基础,并梳理前端…...
C++.Windows图形
Windows图形 1. 基础知识1.1 Windows图形编程基础1.2 GDI与GDI+1.3 窗口消息处理2.1 注册窗口类2.2 创建窗口2.3 显示窗口3.1 创建按钮3.2 按钮消息处理4.1 设置窗口透明度4.2 透明窗口示例5.1 使用区域创建异形窗口5.2 异形窗口示例6.1 GDI+抗锯齿设置6.2 抗锯齿绘图示例7.1 D…...

vue实现与后台springboot传递数据【传值/取值 Axios 】
vue实现与后台springboot传递数据【传值/取值】 提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是node.js和vue的使用。前后每一小节的内容是存在的有:学习and理解的关联性。【帮帮志系列文章】:每…...

【英语笔记(三)】介绍谓语动词的分类,初步讲解四种基本状态:一般、进行、完成、完成进行
1. 五大类谓语动词 2. 谓语动词分类 3. 动词时间 过去--------------------------现在-----------------------未来 3. 动词状态 3.1 进行状态 3.2 完成状态 3.3 完成进行状态 3.4 一般状态 4. 时间 状态 名称说明例句现在现在现在现在进行时态现在某物正在做什么事情一只…...

【Python】让Selenium 像Beautifulsoup一样,用解析HTML 结构的方式提取元素!
我在使用selenium的find_element的方式去获取网页元素,一般通过xpath、css_selector、class_name的方式去获取元素的绝对位置。 但是有时候如果网页多了一些弹窗或者啥之类的,绝对位置会发生变化,使用xpath等方法,需要经常变动。…...

2025 后端自学UNIAPP【项目实战:旅游项目】3、API接口请求封装,封装后的简单测试以及实际使用
一、创建请求封装目录 选中自己的项目,右键鼠标---->新建---->目录---->名字自定义【我的是api】 二、创建两个js封装文件 选中封装的目录,右键鼠标---->新建---->js文件---->名字自定义【我的两个js文件分别是my_http和my_api】 三…...
Mysql--基础知识点--91.2--processlist
在 MySQL 中,SHOW PROCESSLIST 是一个常用命令,用于查看当前数据库服务器上所有正在运行的线程(进程)信息。以下是关键点说明: 1. 命令用法 SHOW FULL PROCESSLIST;输出字段: 列名含义Id线程唯一标识符&am…...
C#中程序集的详解一
程序集(Assembly)是 .NET 平台中的一个重要概念,它是代码和资源的逻辑单元,也是应用程序的部署、版本控制和安全权限的最小单位。下面详细介绍其定义和常见用法: 1. 程序集的定义 程序集是 .NET 应用程序的构建块&am…...
解决LangChain4j报错HTTP/1.1 header parser received no bytes
问题描述 当使用langchain4j-open-ai调用自己部署的大模型服务时报错: public static void main(String[] args) {OpenAiChatModel model OpenAiChatModel.builder().apiKey("none").modelName("qwen2.5-instruct").baseUrl("http://19…...

Ascend的aclgraph(二)_npu_backend中还有些什么秘密?
1 _npu_backend 文章还是从代码开始 import torch_npu, torchair config torchair.CompilerConfig() # 设置图下沉执行模式 config.mode "reduce-overhead" npu_backend torchair.get_npu_backend(compiler_configconfig) opt_model torch.compile(model, back…...

ventoy安全启动怎么选_ventoy安全启动支持是开还是关
ventoy安全启动怎么选?Ventoy新一代多系统启动U盘解决方案。国产开源U盘启动制作工具,支持Legacy BIOS和UEFI模式,理论上几乎支持任何ISO镜像文件,支持加载多个不同类型的ISO文件启动,无需反复地格式化U盘,…...
MySQL文章总结,简单整理和详细整理
这篇博客文章《MySQL 有这一篇就够(呕心狂敲37k字,只为博君一点赞!!!)》是一篇非常全面的MySQL基础教程,适合初学者和需要复习MySQL知识的开发者。以下是文章的核心内容整理: 一、SQ…...

CC53.【C++ Cont】二分查找的普通模版
目录 1.知识回顾 2.关键点 特点 三个模版 普通的模版(有局限) 以LeetCode上的一道题为例:704. 二分查找 分析 引入二段性:分两段,舍一段,操作另一段(这个是二分查找的本质!) 代码 提交结果 当然也可以使用随机数来分两段 普通模版总结 1.知识回顾 之前在C语言专栏…...
泛型加持的策略模式:打造高扩展的通用策略工具类
一、传统策略模式的痛点与突破 1.1 传统策略实现回顾 // 传统支付策略接口 public interface PaymentStrategy {void pay(BigDecimal amount); }// 具体策略实现 public class AlipayStrategy implements PaymentStrategy {public void pay(BigDecimal amount) { /* 支付宝支…...

【优选算法 | 链表】链表操作技巧:常见算法
算法相关知识点可以通过点击以下链接进行学习一起加油!双指针滑动窗口二分查找前缀和位运算模拟 链表是一种灵活的数据结构,广泛用于需要频繁插入和删除的场景。掌握链表的常见操作技巧,如插入、删除、翻转和合并等,能帮助开发者更…...
HTTP:十三.HTTP日志
日志记录 日志记录了跟踪使用情况、安全性、计费、错误检验。记录事务的基本信息。通常会记录下来的几个字段示例为: HTTP方法:主要记录事务用了什么方法客户端和服务器的HTTP版本:给出客户端和服务器有关的提示,比如兼容性提示什么的所请求资源的URL:记录Web站点某个资源…...
web 自动化之 selenium 元素四大操作三大切换等待
文章目录 一、元素的四大操作二、三大切换&等待1、切换窗口:当定位的元素不在当前窗口,则需要切换窗口2、切换iframe:当定位的元素在frame/iframe,则需要切换3、切换弹出窗口 一、元素的四大操作 1、输入 2、点击 3、获取文本 4、获取属…...
FEKO许可证的安全与合规性
在电磁仿真领域,FEKO软件因其出类拔萃的性能和广泛的应用场景,赢得了全球用户的广泛赞誉。但在这背后,是什么让FEKO在众多竞争者中脱颖而出?答案是其许可证的安全与合规性。它们不仅为用户提供了坚固的保障,更确保了用…...

w~大模型~合集30
我自己的原文哦~ https://blog.51cto.com/whaosoft/13284996 #VideoMamba 视频理解因大量时空冗余和复杂时空依赖,同时克服两个问题难度巨大,CNN 和 Transformer 及 Uniformer 都难以胜任,Mamba 是个好思路,让我们看看本文是…...

PBR材质-Unity/Blender/UE
目录 前言: 一、Unity: 二、Blender: 三、UE: 四、全家福: 五、后记: 前言: PBR流程作为表达物理效果的经典方式,很值得一学。纹理贴图使用的是上一期的Textures | cgbookcas…...

websocketpp 安装及使用
介绍 WebSocket 是从 HTML5 开始支持的一种网页端和服务端保持长连接的消息推送机制。 传统的 web 程序都是属于 "一问一答" 的形式,即客户端给服务器发送了一个 HTTP 请求,服务器给客户端返回一个 HTTP 响应。这种情况下服务器是属于被动…...
web:InfiniteScroll 无限滚动
InfiniteScroll 无限滚动 分页加载 <div class"data-box" v-infinite-scroll"loadMore"> <li v-fori in dataList></li> </div>form: {current: 1,size: 10,}loadMore(){console.log(this.dataList.length, this.total ,8888)if…...
LeetCode[101]对称二叉树
思路: 对称二叉树是左右子树对称,而不是左右子树相等,所以假设一个树只有3个节点,那么判断这个数是否是对称二叉树,肯定是先判断左右两个树,然后再看根节点,这样递归顺序我们就确认了࿰…...
c/c++爬虫总结
GitHub 开源 C/C 网页爬虫探究:协议、实现与测试 网页爬虫,作为一种自动化获取网络信息的强大工具,在搜索引擎、数据挖掘、市场分析等领域扮演着至关重要的角色。对于希望深入理解网络工作原理和数据提取技术的 C/C 开发者,尤其是…...
js fetch流式请求 AI动态生成文本,实现逐字生成渲染效果
开启流式请求:向后端接口发起普通的 fetch,它会返回一个包含 ReadableStream 的 Response 对象获取流式读取器:调用 response.body.getReader() 获取一个 ReadableStreamDefaultReader 实例循环读取数据块:在 while(true) 循环或 …...

第8章-2 查询执行的基础
上一篇:《第8章-1 查询性能优化-优化数据访问》,接着来了解查询执行的过程,这个对sql执行有个更直观的了解。 查询执行的基础 当希望MySQL能够以更高的性能运行查询时,最好的办法就是弄清楚MySQL是如何优化和执行查询的。一旦理解…...

java面试OOM汇总
在正式 Minor GC 前,JVM 会先检查新生代中对象,是比老年代中剩余空间大还是小。假如 Minor GC之后 Survivor 区放不下剩余对象,这些对象就要进入老年代 老年代剩余空间大于新生代中的对象大小,那就直接 Minor GC, GC 完…...
Java面试全记录:Spring Cloud+Kafka+Redis实战解析
Java面试全记录:Spring CloudKafkaRedis实战解析 人物设定 面试官:来自某互联网大厂资深架构师,着深灰色西装,手持MacBook Pro 候选人:张伟(随机生成),28岁,硕士&…...
com.fasterxml.jackson.dataformat.xml.XmlMapper把对象转换xml格式,属性放到标签<>里边
之前从没用过xml和对象相互转换,最近项目接了政府相关的。需要用xml格式数据进行相互转换。有些小问题,困扰了我一下下。 1.有些属性需要放到标签里边,有的需要放到标签子集。 2.xml需要加<?xml version"1.0" encoding"…...
LiveData:Android响应式编程的核心利器
LiveData是一种可观察的数据持有类,用于在Android应用中实现数据的响应式编程。它具有以下特点和作用: 特点 生命周期感知:LiveData能够感知与其关联的组件(如Activity、Fragment)的生命周期状态。只有当组件处于活跃状态(如Activity处于RESUMED状态)时,LiveData才会将…...