引入

HTML 中有些属性不是某个标签专属的,而是很多标签都可以使用。

这些属性叫全局属性,用来给元素添加标识、分类、提示、样式、语言等通用信息。

正文

定义

定义

HTML 全局属性是大多数 HTML 元素都可以使用的属性,不只属于某一个特定标签。

例如 idclassstyletitle 就是很常见的全局属性。

它们可以写在 <p><div><a><img> 等很多标签上。

语法

<element attribute="value">内容</element>

例如:

<p id="intro" class="text">这是一段文字</p>

这里的 idclass 都是全局属性。

id

id 用于给元素设置唯一标识。

<h1 id="title">HTML 全局属性</h1>

一个页面中,同一个 id 不建议重复。

常见用途:

  • 配合 CSS 精确选择某个元素
  • 配合 JavaScript 找到某个元素
  • 配合锚点跳转到页面指定位置

锚点例子

<a href="#section1">跳转到第一部分</a>
 
<h2 id="section1">第一部分</h2>

href="#section1" 会跳转到 id="section1" 的位置。

class

class 用于给元素添加分类。

<p class="note">这是一条提示。</p>

多个元素可以使用同一个 class

<p class="note">提示一</p>
<p class="note">提示二</p>

一个元素也可以有多个 class,中间用空格隔开。

<p class="note important">重要提示</p>

class 最常见的用途是配合 CSS 批量设置样式。

style

style 用于直接给元素添加行内样式。

<p style="color: red;">红色文字</p>

虽然它很方便,但不建议大量使用。

如果样式比较多,最好写到 CSS 文件中统一管理。

title

title 用于给元素添加额外说明。

<abbr title="HyperText Markup Language">HTML</abbr>

鼠标悬停在元素上时,浏览器通常会显示 title 的内容。

它适合放一些简短提示,但不能把重要信息只放在 title 里,因为移动端和辅助工具不一定都方便查看。

hidden

hidden 用于隐藏元素。

<p hidden>这段文字默认隐藏。</p>

hidden 是布尔属性,写上它就表示这个元素被隐藏。

被隐藏的内容通常不会显示在页面上。

data-*

data-* 用于给元素保存自定义数据。

<button data-id="1001" data-role="delete">删除</button>

data-* 中的 * 可以换成自定义名称,例如:

  • data-id
  • data-user
  • data-type

它常用于配合 JavaScript 读取元素上的额外数据。

contenteditable

contenteditable 用于设置元素内容是否可以被用户编辑。

<p contenteditable="true">这段文字可以直接编辑。</p>

常见值:

  • true 表示可以编辑
  • false 表示不能编辑

它只是让页面内容可以被编辑,不代表修改内容会自动保存。

如果要保存,还需要 JavaScript 或后端处理。

lang

lang 用于说明元素内容使用的语言。

<html lang="zh-CN">

也可以写在某个具体元素上。

<p lang="en">Hello HTML</p>

lang 对搜索引擎、翻译工具和无障碍工具都有帮助。

dir

dir 用于设置文字方向。

<p dir="ltr">从左到右显示</p>
<p dir="rtl">从右到左显示</p>

常见值:

  • ltr 表示从左到右
  • rtl 表示从右到左

中文和英文通常是 ltr

tabindex

tabindex 用于控制元素能否通过键盘 Tab 键聚焦,以及聚焦顺序。

<button tabindex="0">按钮</button>

常见写法:

  • tabindex="0" 表示可以按正常顺序聚焦
  • tabindex="-1" 表示不能通过 Tab 聚焦,但可以用 JavaScript 聚焦

这个属性和键盘操作、无障碍体验有关。

draggable

draggable 用于设置元素是否可以拖动。

<img src="image.jpg" alt="示例图片" draggable="true">

常见值:

  • true 表示可以拖动
  • false 表示不可以拖动

实际拖拽效果通常还需要 JavaScript 配合。

常见组合例子

给文章卡片添加属性

<article id="post-1" class="card article-card" data-id="1" title="文章卡片">
  <h2>HTML 全局属性</h2>
  <p>这些属性可以用在大多数 HTML 标签上。</p>
</article>

这个例子中:

  • id 用来标识唯一文章
  • class 用来分类和设置样式
  • data-id 用来保存自定义数据
  • title 用来提供额外说明

特点

  • 全局属性可以用在大多数 HTML 元素上
  • id 用于唯一标识,一个页面中不建议重复
  • class 用于分类,可以重复使用
  • style 用于行内样式,但不建议大量使用
  • title 用于补充提示信息
  • hidden 可以隐藏元素
  • data-* 可以保存自定义数据
  • langtabindex 等属性和 SEO、无障碍体验有关

注意事项

  • id 不要重复,否则 CSS、JavaScript、锚点可能出现混乱
  • class 可以写多个,但命名要清晰
  • 不要把大量样式都写在 style 中,复杂样式交给 CSS
  • 不要把关键内容只放在 title 中,用户不一定能看到
  • hidden 只是隐藏显示,不适合用来保存敏感信息
  • data-* 适合存简单数据,不要把复杂业务逻辑都塞进 HTML 属性里
  • tabindex 不要乱设很大的数字,容易影响键盘操作顺序

理解

可以把全局属性理解为 HTML 元素的“通用配置”。

标签决定页面中有什么内容,全局属性则给这些内容补充身份、分类、提示、样式和行为信息。

它们不一定改变标签本身是什么,但会让元素更容易被 CSS、JavaScript、浏览器和用户理解。

引出

理解全局属性之后,可以继续学习 HTML 元素属性,再区分哪些属性是通用的,哪些属性是某些标签专用的。