从零开始学 HTML:构建网页的基本框架与技巧
系列文章目录
01-从零开始学 HTML:构建网页的基本框架与技巧
文章目录
- 系列文章目录
- 前言
- 一、HTML 文档的基本框架
- 1.1 `<!DOCTYPE html>`、`<html>`、`<head>`、`<body>` 标签解析
- 1.1.1 `<!DOCTYPE html>` 标签
- 1.1.2 `<html>` 标签
- 1.1.3 `<head>` 标签
- 1.1.4 `<body>` 标签
- 1.2 常见 HTML 文档结构示例
- 1.2.1 文档开始部分
- 1.2.2 文档主体部分
- 二、HTML 元数据与头部
- 2.1 `<meta>` 标签的重要性(字符集、视口设置等)
- 2.1.1 字符集设置
- 2.1.2 视口设置
- 2.1.3 其他常见的 `<meta>` 标签
- 2.2 `<title>` 和 `<link>` 的使用
- 2.2.1 `<title>` 标签
- 2.2.2 `<link>` 标签
- 2.3 HTML 头部的重要性
- 2.3.1 SEO 优化
- 2.3.2 页面加载速度
- 三、注释与空白符
- 3.1 如何正确书写 HTML 注释
- 3.1.1 注释语法
- 3.1.2 注释的最佳实践
- 3.2 如何处理空白字符与格式化
- 3.2.1 空白符的处理
- 3.2.2 格式化技巧
- 3.2.3 格式化的好处
- 四、总结
前言
HTML 是现代网页开发的基石,它定义了网页的结构与内容,是所有前端开发者必备的基本技能之一。无论你是刚刚踏入前端开发的新人,还是有一定基础的开发者,深入理解 HTML 的基本结构和语法规则,都会让你在构建网站时更加得心应手。本文将从 HTML 文档的基本框架、元数据与头部的使用,到注释和空白符的规范化处理,带你逐步深入了解 HTML 的核心要素。通过这篇文章,你将掌握 HTML 的基础,并能在实际项目中应用它,优化代码的可读性、可维护性以及网页的用户体验。
一、HTML 文档的基本框架
1.1 <!DOCTYPE html>、<html>、<head>、<body> 标签解析
HTML 文档由一系列基本标签构成,每个标签都在网页结构中起着至关重要的作用。我们将逐一解析文档的几个关键标签,它们帮助定义页面的结构、元数据以及展示内容。
1.1.1 <!DOCTYPE html> 标签
<!DOCTYPE html> 是 HTML5 文档的声明标签,它位于文档的开头。这个标签并不是一个 HTML 元素,而是告诉浏览器这个文档使用的是 HTML5 标准。它确保浏览器以 HTML5 的规则进行解析和渲染网页。
<!DOCTYPE html>
此声明应该始终出现在 HTML 文档的第一行。
1.1.2 <html> 标签
<html> 标签是 HTML 文档的根元素,它将所有内容包裹在其中,指示该文件是一个 HTML 文件。<html> 标签通常包含一个 lang 属性,指明文档的语言类型。例如,lang="en" 表示文档内容是英文。
<html lang="en"><!-- 文档内容 -->
</html>
1.1.3 <head> 标签
<head> 标签位于 HTML 文档的开头部分,用于包含一些非可视的元信息,影响页面的渲染和行为。常见的内容包括字符集声明、网页标题、外部样式表和脚本链接等。<head> 标签本身不会在浏览器中显示。
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>页面标题</title>
</head>
1.1.4 <body> 标签
<body> 标签包含了网页的实际可见内容,所有展示给用户的信息,如文本、图片、视频、表单等,都应该写在 <body> 标签内。浏览器会渲染 <body> 中的内容,供用户查看。
<body><h1>欢迎来到我的网页</h1><p>这是一个 HTML 示例。</p>
</body>
1.2 常见 HTML 文档结构示例
一个完整的 HTML 文档通常遵循固定的结构,从 <!DOCTYPE html> 到 <body>,每个部分都有其特定的功能。以下是一个常见的 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>这是我的第一个 HTML 网页。</p></body>
</html>
1.2.1 文档开始部分
首先,我们看到 <!DOCTYPE html>,它声明了文档类型为 HTML5,紧接着是 <html> 标签,它将整个文档包裹起来。在 <head> 部分,定义了文档的字符集和视口设置,确保文档能够在各种设备上正确显示。
1.2.2 文档主体部分
<body> 部分是用户可见的网页内容。这里包含了网页的主标题 <h1> 和段落 <p>,这些元素直接展示在浏览器中,供用户查看。
二、HTML 元数据与头部
2.1 <meta> 标签的重要性(字符集、视口设置等)
<meta> 标签是 HTML 文档头部的重要组成部分,它用于提供文档的元数据。元数据不会在页面中直接显示,但它们对网页的呈现、性能优化和 SEO(搜索引擎优化)非常关键。常见的 <meta> 标签包括字符集设置、视口配置以及描述信息等。
2.1.1 字符集设置
字符集(Character Encoding)用于定义网页中文本的编码方式。设置字符集能够确保网页中各种字符(如中文、特殊符号等)能够被正确显示。最常用的字符集是 UTF-8,它支持全球几乎所有的字符集。
在 HTML 中使用 <meta> 标签设置字符集为 UTF-8 的示例如下:
<meta charset="UTF-8">
这行代码告诉浏览器使用 UTF-8 编码来解析网页内容,从而避免因编码不匹配而出现乱码的情况。
2.1.2 视口设置
随着移动设备的普及,响应式网页设计变得尤为重要。视口设置(viewport)帮助网页在各种屏幕尺寸和分辨率的设备上自适应显示。通过设置 <meta name="viewport">,可以控制页面的缩放、宽度等特性。
最常见的视口设置如下:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
width=device-width:设定页面宽度为设备屏幕的宽度。initial-scale=1.0:设定页面初始缩放比例为 1(即默认大小)。
通过设置视口,网页可以在移动设备上以适当的比例显示,避免出现过小或过大的界面。
2.1.3 其他常见的 <meta> 标签
除了字符集和视口设置,<meta> 标签还可以提供一些其他有用的信息。例如,页面的作者、描述信息和关键词等,有助于提高 SEO 排名。
<meta name="author" content="John Doe">
<meta name="description" content="这是一个关于HTML基础知识的教程">
<meta name="keywords" content="HTML, 标签, 元数据, 编码">
这些标签帮助搜索引擎更好地了解网页内容,提高页面在搜索结果中的排名。
2.2 <title> 和 <link> 的使用
2.2.1 <title> 标签
<title> 标签定义了网页的标题,浏览器在标签栏中会显示这个标题。每个网页都应有一个简洁且具有描述性的标题,便于用户识别和搜索引擎优化。
<title>我的个人博客</title>
<title> 标签的内容通常位于 <head> 部分,并且页面的标题应该简洁明了,最好能够反映页面的主要内容。在搜索引擎结果中,网页的标题往往是用户点击链接的首要依据,因此它对提高网站的访问量和排名至关重要。
2.2.2 <link> 标签
<link> 标签用于将外部资源(如样式表、图标等)链接到 HTML 文档中。最常见的使用场景是引用外部的 CSS 样式表。
<link rel="stylesheet" href="styles.css">
rel="stylesheet":指定链接的资源类型为样式表。href="styles.css":指定样式表的文件路径。
此外,<link> 标签还可以用于设置网页图标(favicon)。例如:
<link rel="icon" href="favicon.ico" type="image/x-icon">
通过 <link> 标签,开发者能够将外部的资源与网页连接起来,帮助实现页面样式统一以及提高用户体验。
2.3 HTML 头部的重要性
HTML 文档的头部(<head>)虽然不直接影响网页的可视内容,但它包含了对网页表现和功能至关重要的信息。头部标签为页面提供了必要的元数据、外部资源以及与浏览器和搜索引擎的交互设置。
2.3.1 SEO 优化
合适的 <meta> 标签和 <title> 标签配置可以显著提升网页的搜索引擎优化效果。例如,通过合理设置描述(description)和关键词(keywords),可以帮助搜索引擎更好地理解页面内容,从而提高排名。
2.3.2 页面加载速度
通过将样式表和脚本文件链接到 <head> 中,可以优化页面的加载速度。例如,使用外部 CSS 样式表文件而不是在页面中嵌入样式,能够有效减小页面大小,加快加载速度。
总结来说,HTML 的元数据和头部标签不仅对网页的结构起到支撑作用,而且对网页的加载、展示效果以及 SEO 排名都有重要影响。通过合理配置这些标签,可以显著提升用户体验和页面性能。
三、注释与空白符
3.1 如何正确书写 HTML 注释
注释在 HTML 中用于添加代码说明或标记,便于开发者理解和维护代码。注释不会在浏览器中显示,它们仅供开发者参考。在多人协作和项目维护中,合理使用注释有助于提高代码的可读性和可维护性。
3.1.1 注释语法
HTML 中的注释语法非常简单,注释内容位于 <!-- 和 --> 之间。可以在注释中添加任何文本,这些文本会被浏览器忽略,但对开发者是可见的。
<!-- 这是一个注释 -->
例如,你可以在 HTML 文档中使用注释来解释某段代码的功能,或者注明待处理的事项:
<!-- 这是网站的主页 -->
<h1>欢迎来到我的网站</h1><!-- TODO: 添加更多的内容 -->
<p>这是一个示例网页。</p>
3.1.2 注释的最佳实践
虽然注释对于代码的可读性非常重要,但也需要注意使用的频率和内容。注释不应过多,否则会导致代码显得杂乱无章。以下是一些注释的最佳实践:
- 在较复杂的代码块之前添加简短的说明。
- 使用注释标记代码的不同部分,帮助其他开发者快速理解。
- 避免在每一行代码后面都加注释,只有在有必要时才添加。
<!-- 开始页面内容 -->
<div class="container"><p>这里是一些文本内容</p>
</div>
<!-- 页面内容结束 -->
3.2 如何处理空白字符与格式化
3.2.1 空白符的处理
HTML 对空白字符(如空格、换行符、制表符)有特殊的处理方式。浏览器会将连续的空白符视为一个空格。这意味着无论你在 HTML 文件中输入多少个空格或换行符,浏览器最终只会显示一个空格。
例如,以下两个 HTML 代码块在浏览器中的显示效果是相同的:
<p>这是 一段 文本。</p>
<p>这是 一段 文本。</p>
在 HTML 中,多个空格和换行不会影响网页的显示效果,但为了代码的清晰性,开发者应该合理使用空白符进行格式化。
3.2.2 格式化技巧
为了使 HTML 代码更加整洁和易于阅读,开发者通常会使用空格、缩进和换行来格式化代码。格式化后的代码更容易被他人理解,也便于后期的维护和修改。常见的格式化技巧包括:
- 使用一致的缩进方式(如两个空格或四个空格)表示标签层级。
- 每个标签元素独占一行,避免多个标签堆叠在一起,增加可读性。
例如,下面的代码展示了良好的格式化:
<html><head><meta charset="UTF-8"><title>我的网页</title></head><body><h1>欢迎访问</h1><p>这是一个简单的 HTML 页面。</p></body>
</html>
3.2.3 格式化的好处
良好的格式化不仅使代码更加美观,还能帮助开发者快速定位问题、修改错误。在多人协作时,统一的格式规范也能提高团队成员之间的沟通效率。
- 使代码结构清晰,容易定位错误。
- 提高代码的可维护性,减少修改时的风险。
- 便于多人协作,代码风格一致性可以避免不必要的冲突。
四、总结
通过本文的学习,你已经掌握了 HTML 的一些基础知识和实践技巧,以下是本文的要点总结:
-
HTML 文档基本结构的理解:
- 了解了 HTML 文档的基本框架,包括
<!DOCTYPE html>、<html>、<head>和<body>标签的功能及应用。 - 掌握了如何创建一个标准的 HTML 页面结构。
- 了解了 HTML 文档的基本框架,包括
-
HTML 元数据与头部标签的应用:
- 学会了如何使用
<meta>标签配置字符集和视口设置,确保网页能够适配各种设备并正确显示。 - 了解了
<title>标签的作用及其对网页标题和 SEO 的影响。 - 学会了如何通过
<link>标签引用外部资源,如 CSS 样式表和网页图标。
- 学会了如何使用
-
HTML 注释和空白符的正确书写:
- 掌握了如何在 HTML 中正确书写注释,以提高代码的可读性和可维护性。
- 理解了空白符在 HTML 中的处理方式,并学会了如何格式化代码,使其更加整洁和易于维护。
相关文章:
从零开始学 HTML:构建网页的基本框架与技巧
系列文章目录 01-从零开始学 HTML:构建网页的基本框架与技巧 文章目录 系列文章目录前言一、HTML 文档的基本框架1.1 <!DOCTYPE html>、<html>、<head>、<body> 标签解析1.1.1 <!DOCTYPE html> 标签1.1.2 <html> 标签1.1.3 &l…...
如何用微信小程序写春联
生活没有模板,只需心灯一盏。 如果笑能让你释然,那就开怀一笑;如果哭能让你减压,那就让泪水流下来。如果沉默是金,那就不用解释;如果放下能更好地前行,就别再扛着。 一、引入 Vant UI 1、通过 npm 安装 npm i @vant/weapp -S --production 2、修改 app.json …...
2025最新在线模型转换工具onnx转换ncnn,mnn,tengine等
文章目录 引言最新网址地点一、模型转换1. 框架转换全景图2. 安全的模型转换3. 网站全景图 二、转换说明三、模型转换流程图四、感谢 引言 在yolov5,yolov8,yolov11等等模型转换的领域中,时间成本常常是开发者头疼的问题。最近发现一个超棒的…...
算法每日双题精讲 —— 前缀和(【模板】一维前缀和,【模板】二维前缀和)
在算法竞赛与日常编程中,前缀和是一种极为实用的预处理技巧,能显著提升处理区间和问题的效率。今天,我们就来深入剖析一维前缀和与二维前缀和这两个经典模板。 一、【模板】一维前缀和 题目描述 给定一个长度为 n n n 的整数数组 a a a&…...
C++泛型编程指南03-CTAD
文章目录 C17 自定义类型推断指引(CTAD)深度解析一、基础概念1. 核心作用2. 工作原理 二、标准库中的 CTAD 应用1. 容器类型推导2. 智能指针推导3. 元组类型推导 三、自定义推导指引语法1. 基本语法结构2. 典型应用场景 四、推导指引设计模式1. 迭代器范…...
记8(高级API实现手写数字识别
目录 1、Keras:2、Sequential模型:2.1、建立Sequential模型:modeltf.keras.Sequential()2.2、添加层:model.add(tf.keras.layers.层)2.3、查看摘要:model.summary()2.4、配置训练方法:model.compile(loss,o…...
88.[4]攻防世界 web php_rce
之前做过,回顾(看了眼之前的wp,跟没做过一样) 属于远程命令执行漏洞 在 PHP 里,system()、exec()、shell_exec()、反引号()等都可用于执行系统命令。 直接访问index.php没效果 index.php?sindex/think\a…...
23.Word:小王-制作公司战略规划文档❗【5】
目录 NO1.2.3.4 NO5.6 NO7.8.9 NO10.11 NO12 NO13.14 NO1.2.3.4 布局→页面设置对话框→纸张:纸张大小:宽度/高度→页边距:上下左右→版式:页眉页脚→文档网格:勾选只指定行网格✔→ 每页:…...
在Arm芯片苹果Mac系统上通过homebrew安装多版本mysql并解决各种报错,感谢deepseek帮助解决部分问题
背景: 1.苹果设备上安装mysql,随着苹果芯片的推出,很多地方都变得不一样了。 2.很多时候为了老项目能运行,我们需要能安装mysql5.7或者mysql8.0或者mysql8.2.虽然本文编写时最新的默认mysql已经是9.2版本。 安装步骤 1.执行hom…...
C++【iostream】数据库的部分函数功能介绍
在 C 编程世界中,iostream 库扮演着举足轻重的角色,它是 C 标准库的核心组成部分,为程序提供了强大的输入输出功能。无论是简单的控制台交互,还是复杂的文件操作,iostream 库都能提供便捷高效的解决方案。本文将深入剖…...
数据结构 树1
目录 前言 一,树的引论 二,二叉树 三,二叉树的详细理解 四,二叉搜索树 五,二分法与二叉搜索树的效率 六,二叉搜索树的实现 七,查找最大值和最小值 指针传递 vs 传引用 为什么指针按值传递不会修…...
【实战篇章】深入探讨:服务器如何响应前端请求及后端如何查看前端提交的数据
文章目录 深入探讨:服务器如何响应前端请求及后端如何查看前端提交的数据一、服务器如何响应前端请求HTTP 请求生命周期全解析1.前端发起 HTTP 请求(关键细节强化版)2. 服务器接收请求(深度优化版) 二、后端如何查看前…...
玩转ChatGPT:DeepSeek测评(科研思路梳理)
一、写在前面 DeepSeek-R1出圈了,把OpenAI的o3-mini模型都提前逼上线了(还免费使用)。 都号称擅长深度推理,那么对于科研牛马的帮助有多大呢? 我连夜试一试。 二、科研思路梳理 有时候我们牛马们做了一堆结果以后&…...
python学opencv|读取图像(五十三)原理探索:使用cv.matchTemplate()函数实现最佳图像匹配
【1】引言 前序学习进程中,已经探索了使用cv.matchTemplate()函数实现最佳图像匹配的技巧,并且成功对两个目标进行了匹配。 相关文章链接为:python学opencv|读取图像(五十二)使用cv.matchTemplate()函数实现最佳图像…...
AJAX RSS Reader:技术解析与应用场景
AJAX RSS Reader:技术解析与应用场景 引言 随着互联网的快速发展,信息量呈爆炸式增长。为了方便用户快速获取感兴趣的信息,RSS(Really Simple Syndication)技术应运而生。AJAX RSS Reader作为一种基于AJAX技术的信息读取工具,在用户体验和信息获取方面具有显著优势。本…...
Linux环境下的Java项目部署技巧:安装 Mysql
查看 myslq 是否安装: rpm -qa|grep mysql 如果已经安装,可执行命令来删除软件包: rpm -e --nodeps 包名 下载 repo 源: http://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm 执行命令安装 rpm 源(根据下载的…...
gitea - fatal: Authentication failed
文章目录 gitea - fatal: Authentication failed概述run_gitea_on_my_pkm.bat 笔记删除windows凭证管理器中对应的url认证凭证启动gitea服务端的命令行正常用 TortoiseGit 提交代码备注END gitea - fatal: Authentication failed 概述 本地的git归档服务端使用gitea. 原来的用…...
计算机网络安全与运维的关键 —— 常用端口全解析
目录 前言 常见端口分类及用途 20 端口(FTP 数据传输) 21 端口(FTP 消息控制) 22 端口(SSH) 23 端口(Telnet) 25 端口(SMTP) 53 端口(DNS&…...
JavaScript Navigator:深入理解浏览器导航机制
JavaScript Navigator:深入理解浏览器导航机制 引言 在Web开发中,浏览器导航是用户与网页交互的重要部分。JavaScript Navigator对象提供了丰富的API,允许开发者深入理解并控制浏览器的导航行为。本文将详细介绍JavaScript Navigator对象的功能、使用方法以及在实际开发中…...
笔灵ai写作技术浅析(三):深度学习
笔灵AI写作的深度学习技术主要基于Transformer架构,尤其是GPT(Generative Pre-trained Transformer)系列模型。 1. Transformer架构 Transformer架构由Vaswani等人在2017年提出,是GPT系列模型的基础。它摒弃了传统的循环神经网络(RNN)和卷积神经网络(CNN),完全依赖自…...
Linux-CentOS的yum源
1、什么是yum yum是CentOS的软件仓库管理工具。 2、yum的仓库 2.1、yum的远程仓库源 2.1.1、国内仓库 国内较知名的网络源(aliyun源,163源,sohu源,知名大学开源镜像等) 阿里源:https://opsx.alibaba.com/mirror 网易源:http://mirrors.1…...
< OS 有关> BaiduPCS-Go 程序的 菜单脚本 Script: BaiduPCS-Go.Menu.sh (bdgo.sh)
目标: 使用 日本阿里云的 VPM 传输文件。 暂时方案: 使用 主机JPN 下载 https://huggingface.co/ 上模型从 JPN 放到 度狗上在家里从狗度下载 为了减少编程,尽量使用现在软件 ,就找到 GitHub - qjfoidnh/BaiduPCS-Go: iikira…...
【前端学习路线】前端优化 详细知识点学习路径(附学习资源)
📚学习资源: 前端开发:零基础入门到项目实战 >> 前端开发:边学边练 >> 原学习路径下载 >>...
deepseek v3 搭建个人知识库
目录 deepseek-r1本地部署,这个比较好,推荐 Chatbox连接ollama服务 知乎教程,需要注册: deepseek-r1本地部署,这个比较好,推荐 公司数据不泄露,DeepSeek R1本地化部署web端访问个人知识库搭建…...
LeetCode 2909. 元素和最小的山形三元组 II
**### LeetCode 2909. 元素和最小的山形三元组 II 问题描述 给定一个下标从 0 开始的整数数组 nums,我们需要找到一个“山形三元组”(i, j, k)满足以下条件: i < j < knums[i] < nums[j] 且 nums[k] < nums[j] 并…...
C#面试常考随笔4:int? 和 int的区别,以及int?的运用场景?
可空性 int?:它是int的可空类型,允许将null赋值给该变量。int?实际上是Nullable<int>的缩写形式,是一个可以为null的整数类型。例如:int? num2 null;或者int? num3 10;都是合法的。 内存分配与存储 int?ÿ…...
【零拷贝】
目录 一:了解IO基础概念 二:数据流动的层次结构 三:零拷贝 1.传统IO文件读写 2.mmap 零拷贝技术 3.sendFile 零拷贝技术 一:了解IO基础概念 理解CPU拷贝和DMA拷贝 我们知道,操作系统对于内存空间&…...
【Elasticsearch】_all 查询
在 Elasticsearch 中,_all 查询是一种特殊的查询方式,用于在多个索引或数据流中执行搜索操作,而无需显式指定每个目标索引或数据流的名称。以下是关于 _all 查询的详细说明: _all 查询概述 用途:_all 查询允许您在多个…...
扩散模型(一)
在生成领域,迄今为止有几个主流的模型,分别是 GAN, VAE,Flow 以及 Diffusion 模型。 GAN:GAN 的学习机制是对抗性学习,通过生成器和判别器的对抗博弈来进行学习,这种竞争机制促使生成器不断提升生成能力&a…...
【LLM-agent】(task6)构建教程编写智能体
note 构建教程编写智能体 文章目录 note一、功能需求二、相关代码(1)定义生成教程的目录 Action 类(2)定义生成教程内容的 Action 类(3)定义教程编写智能体(4)交互式操作调用教程编…...
