01HTML预备知识

✨博客主页: https://blog.csdn.net/m0_63815035?type=blog

💗《博客内容》:大数据、Java、测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识
📢博客专栏: https://blog.csdn.net/m0_63815035/category_11954877.html
📢欢迎点赞 👍 收藏 ⭐留言 📝
📢本文为学习笔记资料,如有侵权,请联系我删除,疏漏之处还请指正🙉
📢大厦之成,非一木之材也;大海之阔,非一流之归也✨

一、Web 工作原理(快速回顾)

  • HTTP(超文本传输协议)是浏览器与服务器之间的通信语言。
  • 流程:输入 URL → DNS 解析 → 发送 HTTP 请求 → 服务器返回 HTML/CSS/JS → 浏览器渲染。
  • URL :统一资源定位符,例如 https://example.com/page.html

二、HTML 文档基础

1. 文档类型声明(DOCTYPE)

  • 作用:告诉浏览器使用哪种 HTML 标准解析页面。
  • 推荐写法(HTML5):<!DOCTYPE html>
  • 必须放在文档第一行,否则触发"怪异模式",导致布局错误。

2. 基本结构模板

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">   <!-- lang 属性有助于搜索引擎和读屏软件 -->
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>文档标题</title>
    <meta name="description" content="页面描述,用于SEO">
    <meta name="keywords" content="关键词1,关键词2">
    <link rel="stylesheet" href="style.css">
    <script src="script.js" defer></script>
</head>
<body>
    <!-- 页面内容 -->
</body>
</html>

3. <head> 中常用标签

标签 作用
<meta charset="UTF-8"> 声明字符编码(推荐 UTF-8)
<meta name="viewport"> 控制移动端适配
<meta http-equiv="X-UA-Compatible" content="IE=edge"> 强制 IE 使用最新渲染引擎
<title> 浏览器标签页标题
<link> 引入外部 CSS 或 favicon
<style> 内部 CSS
<script> 引入或编写 JS

三、HTML 元素分类与显示模式

1. 块级元素(Block)

  • 独占一行,默认宽度 100%,可设宽高、内外边距。
  • 常见:<div><h1>~<h6><p><ul><ol><li><table><form><header><footer><section><article><nav><aside>

2. 行内元素(Inline)

  • 不换行,宽高由内容决定,不可设上下边距。
  • 常见:<span><a><strong><em><img>(虽为替换元素,但默认为行内)、<br><i><b>

3. 行内块元素(Inline-block)

  • 不换行,但可设宽高、内外边距。
  • 常见:<img><input><button><select><textarea>

💡 可通过 CSS 的 display 属性改变元素类型,如 display: inline-block


四、常用标签详解(补充)

1. 文本格式化(补充)

标签 语义
<strong> 重要文本(加粗)
<em> 强调(斜体)
<mark> 高亮标记
<small> 小号字(如版权声明)
<del> 删除文本
<ins> 插入文本
<sub> / <sup> 下标 / 上标

2. 链接与锚点

html 复制代码
<!-- 普通链接 -->
<a href="https://example.com" target="_blank" rel="noopener">新标签页打开</a>

<!-- 锚点跳转 -->
<a href="#section1">跳转到 section1</a>
<h2 id="section1">章节1</h2>

<!-- 返回顶部 -->
<a href="#">返回顶部</a>

<!-- 发送邮件 -->
<a href="mailto:someone@example.com">发送邮件</a>

<!-- 拨打电话(移动端) -->
<a href="tel:+123456789">拨打电话</a>

3. 多媒体元素

图片 <img>
html 复制代码
<img src="photo.jpg" alt="描述文字" width="300" height="200" loading="lazy">
  • alt 必须写,提升可访问性。
  • loading="lazy" 懒加载,优化性能。
视频 <video>
html 复制代码
<video controls width="600" poster="preview.jpg">
    <source src="movie.mp4" type="video/mp4">
    <source src="movie.ogg" type="video/ogg">
    您的浏览器不支持 video 标签。
</video>
音频 <audio>
html 复制代码
<audio controls>
    <source src="audio.mp3" type="audio/mpeg">
    您的浏览器不支持 audio 元素。
</audio>
嵌入外部内容 <iframe>
html 复制代码
<iframe src="https://www.youtube.com/embed/xxx" width="560" height="315" allowfullscreen></iframe>

4. HTML5 语义化标签(布局利器)

标签 含义
<header> 页眉或区域头部
<nav> 导航链接
<main> 页面主内容(一个页面唯一)
<article> 独立文章
<section> 文档中的一个区块
<aside> 侧边栏或附属信息
<footer> 页脚

示例:

html 复制代码
<body>
    <header>网站标题</header>
    <nav>导航菜单</nav>
    <main>
        <article>
            <h1>文章标题</h1>
            <p>内容...</p>
        </article>
        <aside>相关链接</aside>
    </main>
    <footer>版权信息</footer>
</body>

5. 列表进阶

  • 定义列表 <dl> + <dt>(术语)+ <dd>(描述)
html 复制代码
<dl>
    <dt>HTML</dt>
    <dd>超文本标记语言</dd>
    <dt>CSS</dt>
    <dd>层叠样式表</dd>
</dl>

6. 表格进阶

  • 合并单元格:colspan(跨列)、rowspan(跨行)
html 复制代码
<table border="1">
    <tr>
        <td colspan="2">合并两列</td>
    </tr>
    <tr>
        <td rowspan="2">合并两行</td>
        <td>单元格</td>
    </tr>
    <tr>
        <td>另一行</td>
    </tr>
</table>
  • 表格结构:<thead><tbody><tfoot>(提升语义和滚动时头部固定)

7. 表单增强(HTML5)

新的 input 类型
类型 示例 说明
email <input type="email"> 内置邮箱格式验证
number <input type="number" min="1" max="10"> 数字输入,带增减按钮
tel <input type="tel"> 电话号码(不验证格式)
url <input type="url"> 网址格式验证
date <input type="date"> 日期选择器
time <input type="time"> 时间选择器
color <input type="color"> 颜色选择器
range <input type="range" min="0" max="100"> 滑块
search <input type="search"> 搜索框(带清除按钮)
常用新属性
属性 说明
placeholder="提示文字" 输入框内灰色提示
required 必填字段
autofocus 页面加载时自动聚焦
autocomplete="on/off" 是否启用自动完成
multiple 允许多选(如文件上传)
pattern="正则" 自定义输入格式验证
表单分组
html 复制代码
<fieldset>
    <legend>个人信息</legend>
    <label>姓名:<input type="text" name="name"></label>
    <label>年龄:<input type="number" name="age"></label>
</fieldset>

8. 其他实用标签

标签 作用
<progress value="70" max="100">70%</progress> 进度条
<meter value="0.6">60%</meter> 度量条(如磁盘使用率)
<details><summary>更多信息</summary>隐藏内容</details> 可折叠面板
<dialog> 对话框(需配合 JS 或 open 属性)

五、字符实体(转义字符)

显示 实体名 数字形式
空格 &nbsp; &#160;
< &lt; &#60;
> &gt; &#62;
& &amp; &#38;
© &copy; &#169;
® &reg; &#174;
" " " " &#8220; &#8221;

六、全局属性(所有标签通用)

属性 说明
id 唯一标识符(用于 CSS/JS / 锚点)
class 类名(用于 CSS 或 JS 批量控制)
style 内联样式
title 鼠标悬停时显示的提示文本
data-* 自定义数据属性,如 data-user-id="123"
hidden 隐藏元素
tabindex 控制 Tab 键切换顺序
lang 定义元素语言

七、路径写法

  • 相对路径 (推荐用于同网站)
    • image/photo.jpg -- 当前目录下的 image 文件夹
    • ../photo.jpg -- 上一级目录
  • 绝对路径
    • https://example.com/photo.jpg -- 完整 URL
    • /photo.jpg -- 从网站根目录开始

八、注释与代码规范

  • 注释:<!-- 这是注释,不会显示在页面中 -->
  • 注释的作用:解释代码、标记待办、临时禁用代码。
  • 规范建议
    • 标签名、属性名一律小写
    • 属性值始终加引号(双引号优先)。
    • 自闭合标签(如 <img><br><hr>)在 HTML5 中可不写斜杠,但写 / 更安全(兼容 XHTML)。
    • 合理缩进,提高可读性。

九、SEO 基础(补充)

除了 <title><meta name="description"><meta name="keywords"> 外:

  • 使用语义化标签<article><section> 等)帮助搜索引擎理解结构。
  • 图片添加 alt 属性。
  • 为链接写有意义的描述(不要用"点击这里")。
  • 保证页面有清晰的 h1 ~ h6 层级。
  • 使用 canonical 标签避免重复内容:<link rel="canonical" href="主链接">

十、浏览器兼容性提示

  • 使用 HTML5 新标签时,对于老旧 IE 浏览器可引入 html5shiv.js 使其支持。
  • 表单新类型(如 date)在不同浏览器中显示样式不同,可使用 polyfill 或统一 UI 组件库。
  • 使用 CSS 前缀或自动化工具(如 Autoprefixer)处理兼容性。

十一、扩展:HTML 与 CSS、JS 的关系

  • HTML:结构(骨架)
  • CSS:表现(外观)
  • JavaScript:行为(交互)

最佳实践:结构、样式、行为分离,尽量不使用内联样式和内联事件。


十二、案例作业:完善人物简历

在原有吴彦祖简历基础上,要求:

  1. 将导航区 <div id="navigation"> 改为 <nav> 标签,内部列表改为语义化。
  2. 为主体内容添加 <main> 标签,各部分用 <section> 包裹。
  3. 在获奖记录部分制作一个完整表格(至少包含年份、奖项名称、结果)。
  4. 为联系表单增加 email 类型的输入框,并添加 required 属性。
  5. 在页面底部添加一个 <details> 标签,展示参考资料来源。
csharp 复制代码
今天这篇文章就到这里了,大厦之成,非一木之材也;大海之阔,非一流之归也。感谢大家观看本文
相关推荐
xkxnq1 小时前
第八阶段:工程化、质量管控与高级拓展(130天),Vue端到端测试:Cypress自动化测试(登录流程+表单提交+页面跳转)
前端·vue.js·flutter
小雨下雨的雨1 小时前
基于鸿蒙PC Electron框架技术完成的五子棋游戏 - 技术实现详解
前端·javascript·游戏·华为·electron·鸿蒙
cheems95271 小时前
[开发日记]Spring Boot + MyBatis-Plus 抽奖系统开发复盘:从奖品创建、活动校验到前端圈选人员失效的一次完整排障
前端·spring boot·mybatis
老毛肚1 小时前
jeecgboot vue API 拆分02
前端·javascript·vue.js
赵谨言1 小时前
基于C#的在线编码与自动化测试全栈Web平台的设计与实现
开发语言·前端·c#
Raink老师1 小时前
【AI面试临阵磨枪-98】前端如何展示多模态流式输出:文字打字机 + 图片渐进 + 音频播放?
前端·人工智能·面试
AI_零食1 小时前
奶茶大数据运维表 - 鸿蒙PC Electron框架技术实现详解
运维·前端·华为·electron·开源·harmonyos·鸿蒙
小雨下雨的雨2 小时前
鸿蒙PC Electron框架实现流体气泡模拟器
前端·人工智能·算法·华为·electron·鸿蒙
ZC跨境爬虫2 小时前
跟着 MDN 学JavaScript day_4:如何存储你需要的信息——变量
开发语言·前端·javascript·ui·ecmascript