DAY 01 HTML的认识

1. 标记语言

是什么? 标记语言不是"编程"语言,它不会像 Python 或 JavaScript 那样去执行逻辑(比如循环、判断)。它更像是一种**"标注"语言**。

怎么理解? 想象一下你在阅读一本书:

  • 你拿一支笔,圈出了标题。

  • 在重要的句子下面画线

  • 把一段文字用括号括起来,表示这是一个引用的部分。

你所做的这些"圈、画线、加括号"就是"标记"。你是在告诉未来的自己或其他读者:"这部分内容是标题,那部分是重点"

在电脑世界中 ,标记语言(如 HTML)做的就是同样的事。我们用一套预先定义好的"标记"(在 HTML 里也叫"标签"),来告诉浏览器:"这是一段文字"、"那是一张图片"、"这里是个标题",从而让浏览器能正确地组织和呈现网页内容。

常见的标记语言有:HTML (用于网页)、XML (用于数据传输和存储)、Markdown(用于简单写作)等。


2. 超文本

"超" 这个字在这里意味着"超出"或"超越"。

"超文本" 就是指超越了普通文本限制的文本 。普通文本就像一本纸质书,你只能一页一页按顺序读。而超文本最大的特点就是包含了超链接

核心是链接: 通过点击超链接,你可以:

  • 跳转到同一网站的另一页。

  • 跳转到完全不同的另一个网站。

  • 跳转到同一页面的另一个位置。

  • 打开一个图片或视频等资源。

正是这种"链接"能力,将全世界的文档(网页)连接成了一个巨大的、互相关联的网络,这就是我们所说的 万维网。所以,HTML(超文本标记语言)就是用来创建这种"超文本"文档的语言。


3. HTML 结构和特点

一个最基础、完整的 HTML 文档结构如下:

复制代码
<!DOCTYPE html> <!-- 1. 文档类型声明 -->
<html lang="zh-CN"> <!-- 2. 根元素,包裹所有内容 -->
<head> <!-- 3. 头部:包含页面的元信息(不会直接显示在页面上) -->
    <meta charset="UTF-8"> <!-- 定义字符编码,防止中文乱码 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>我的第一个网页</title> <!-- 浏览器标签页上显示的标题 -->
</head>
<body> <!-- 4. 身体:包含所有会在页面上显示的内容 -->
    <h1>这是一个大标题</h1>
    <p>这是一个段落。</p>
    <img src="image.jpg" alt="一张图片">
</body>
</html>

结构拆解:

  1. <!DOCTYPE html>:告诉浏览器"请用最新的 HTML5 标准来解析这个文档"。

  2. <html>:整个页面的根元素,所有其他元素都包裹在它里面。

  3. <head>大脑。包含了对页面的设置,如标题、字符编码、引用的CSS/JS文件等。这里的内容用户看不见。

  4. <body>身体。所有你能在浏览器里看到的内容,都在这里。

特点:

  • 标签包围 :内容被<tag></tag>包围。

  • 树状结构:元素之间层层嵌套,像一棵家族树(DOM树)。

  • 平台无关:只要有浏览器,无论在什么操作系统上都能查看。

  • 易于学习:标签直观,容易理解和上手。


4. 什么是元素

在 HTML 中,元素 是构建网页的基石。我们平时说的"标签"通常就是指元素。

一个元素通常由三部分组成:开始标签内容结束标签

<开始标签> + 内容 + </结束标签> = 一个完整的元素

例如:

  • <p>这是一个段落</p>:这是一个段落元素。

  • <h1>我是标题</h1>:这是一个一级标题元素。

也有一些元素是空元素 ,它们没有内容,因此也不需要结束标签。例如 <img>(图片)、<br>(换行)。


5. 元素的属性(应该包括什么)

属性 为元素提供了额外的信息,这些信息不会显示在内容中,但会改变元素的行为或提供关于元素的元数据。

属性总是写在开始标签里 ,由属性名属性值 组成,格式为:属性名="属性值"

一个元素应该包括什么属性? 这完全取决于这个元素本身和你想让它做什么。最常见的属性是 class, id, style, src, href 等。

例子:

复制代码
<!-- 
    <a> 是超链接元素。
    href 是属性名,"https://www.example.com" 是属性值。
    这个属性告诉浏览器:这个链接要跳转到哪个网址。
-->
<a href="https://www.example.com">点击访问示例网站</a>
​
<!-- 
    <img> 是图片元素。
    src 属性告诉浏览器图片文件的位置。
    alt 属性提供图片无法显示时的替代文本(对无障碍访问非常重要)。
-->
<img src="cat.jpg" alt="一只可爱的猫咪">

6. 元素属性的分类

属性可以大致分为以下几类:

  1. 全局属性几乎所有HTML元素都可以使用的属性

    • class:为元素定义一个或多个类名(用于CSS和JS)。

    • id:定义元素的唯一标识符(全页面唯一)。

    • style:直接给元素添加内联CSS样式。

    • title:提供元素的额外提示信息(鼠标悬停时显示)。

  2. 专有属性特定元素才拥有的属性,用来实现该元素特有的功能。

    • <a>href:定义链接地址。

    • <img>srcalt:定义图片源和替代文本。

    • <input>type:定义输入框类型(文本、密码、按钮等)。


7. 元素的嵌套

嵌套 就是指把一个或多个元素放在另一个元素的内部。

规则:

  • 必须正确嵌套。先开始的后结束,后开始的先结束,就像套娃一样。

  • 错误嵌套<p>我是<strong>粗体</p></strong><strong> 的开始在 <p> 之后,却结束在 <p> 之前,这是错误的)

  • 正确嵌套<p>我是<strong>粗体</strong></p><strong> 完全被包裹在 <p> 内部)

例子:

复制代码
<div>
    <h1>文章标题</h1>
    <p>这是一段文字,里面有一个<strong>非常重要的</strong>词。</p>
    <ul>
        <li>列表项1</li>
        <li>列表项2</li>
    </ul>
</div>

在这个例子中,<h1>, <p>, <ul><div> 的子元素。<strong><p> 的子元素。<li><ul> 的子元素。


8. HTML注释

注释是写给人(开发者)看的代码说明,浏览器会完全忽略它们。

语法: <!-- 这里是注释内容 -->

作用:

  • 解释代码的功能,方便自己和他人日后阅读。

  • 临时"注释掉"一段代码,使其不生效,用于调试。

  • 在代码中做标记。

例子:

复制代码
<!-- 这是导航栏的开始 -->
<nav>
    <ul>
        <li><a href="#home">首页</a></li>
        <li><a href="#about">关于我们</a></li>
        <!-- <li><a href="#contact">联系我们</a></li> 这个链接暂时不上线,先注释掉 -->
    </ul>
</nav>
<!-- 这是导航栏的结束 -->

9. URL 的规则和 URI 的区别

这是一个容易混淆的概念,但对于前端非常重要。

URI

  • 全称 :Uniform Resource Identifier (统一资源标识符)

  • 是什么 :是一个用于标识某一互联网资源的字符串。它是一个更 broad(宽泛)的概念。

  • 类比 :你的身份证号。它的作用是唯一地"标识"你这个人。

URL

  • 全称 :Uniform Resource Locator (统一资源定位符)

  • 是什么 :是 URI 最常见的一种形式。它不仅标识了资源,还提供了找到该资源的"地址"和"方式"

  • 类比 :你的家庭住址。它不仅标识了你的家,还提供了如何找到你家的具体位置和路径(哪个城市、哪条路、门牌号是多少)。

结论:

  • 所有的 URL 都是 URI,但并非所有的 URI 都是 URL。

  • 还有一个概念叫 URN(统一资源名称),比如一本书的 ISBN 号,它标识了资源但不说去哪找它。它也是 URI 的一种。

  • 在前端日常开发中,我们几乎总是在和 URL 打交道 (比如 href="...", src="..."),所以你可以暂时把它们当作一回事,但理解细微差别有助于你更专业。

URL 的规则(组成部分): 一个标准的 URL 通常包含以下几个部分: scheme://domain:port/path?query_string#fragment

  • 协议https:// (告诉浏览器使用何种协议通信)

  • 域名www.example.com (网站服务器的地址)

  • 端口:443 (通常省略,HTTP默认80,HTTPS默认443)

  • 路径/products/index.html (资源在服务器上的具体位置)

  • 查询参数?category=shoes&color=red (提供给服务器的额外参数)

  • 锚点#section2 (页面内的一个具体位置)

相关推荐
嚣张农民3 小时前
还在自己买服务器?试试 Amazon EC2,真香!
前端·后端·程序员
charlie1145141913 小时前
Chrome View渲染机制学习小记
前端·chrome·学习·渲染·gpu·客户端
多看书少吃饭3 小时前
vue3+TS 前端调用海康摄像头视频流,后端用 Node.js 做 RTSP 转 WebSocket-FLV 转发,并且前后端优化延迟方案
前端·websocket·node.js
前端Hardy3 小时前
HTML&CSS:动态歌词高亮展示效果
前端·javascript·css
PineappleCoder3 小时前
手把手教你做:高安全 Canvas 水印的实现与防篡改技巧
前端·javascript·css
RoyLin3 小时前
图数据库基础
前端·后端·typescript
可乐爱宅着3 小时前
如何在next.js中处理表单提交
前端·next.js
卤代烃3 小时前
[性能优化] 如何高效的获取 base64Image 的 meta 信息
前端·性能优化·agent
IT_陈寒3 小时前
Vite 5大性能优化技巧:构建速度提升300%的实战分享!
前端·人工智能·后端