跳转至

HTML 简介

HTML 是 HyperText Markup Language 的缩写,即超文本标记语言。它使用标记说明内容是标题、 段落、链接还是其他结构,而不是规定每个像素如何绘制。

学习目标

  • 说明 HTML、CSS 和 JavaScript 的职责边界。
  • 理解浏览器从获取文档到显示页面的基本过程。
  • 认识语义化 HTML 对可访问性和维护性的价值。

核心概念

网页常由三层协作完成:

  • HTML 描述内容与结构。
  • CSS 控制颜色、间距、排版和响应式布局。
  • JavaScript 处理状态变化、网络请求和用户交互。

例如,下面的 HTML 即使没有样式和脚本,仍然能表达一篇文章:

<article>
  <h1>浏览器如何读取 HTML</h1>
  <p>浏览器会解析标记并构建文档对象模型。</p>
  <a href="basics.md">继续学习基础语法</a>
</article>

浏览器通常先通过 HTTP 或本地文件系统获得 HTML 字节,再依据字符编码解码文本, 解析标记并构建 DOM。CSS 会形成样式规则,脚本还可能在运行时修改 DOM。

为什么要使用语义

h1 表示主标题,p 表示段落,a 表示可导航的链接。正确元素不仅提供默认外观, 还向搜索引擎、读屏软件、浏览器功能和自动化工具传递稳定含义。

<button type="button">展开说明</button>

原生按钮天然支持键盘聚焦和激活。若用可点击的 div 模拟,就必须自行补齐角色、 焦点、键盘事件和禁用状态,通常没有必要。

HTML 不负责什么

HTML 不是设计稿工具,也没有一般编程语言中的循环、条件和函数。不要用标题元素只为放大文字, 也不要用表格完成整页布局。先选择符合内容含义的元素,再使用 CSS 调整外观。

安全边界

HTML 本身不会验证权限,也不会自动净化外部数据。把评论内容直接拼入 innerHTML 可能产生 跨站脚本风险。应用应优先使用安全的文本 API,并按 HTML、属性、URL 等具体上下文编码输出。

output.textContent = untrustedText;

常见错误

  • 认为文件扩展名是 .html 就说明文档结构一定有效。
  • 用 CSS 的 display 变化误判元素的语义已经改变。
  • 假设浏览器容错会在所有环境产生相同结果。
  • 把客户端隐藏或校验当作服务端认证与授权。

相关链接