全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-17 8 分钟 ✍️ juanwangdev

HTML全局属性与自定义数据属性

全局属性适用于所有HTML元素,data-*属性支持自定义数据存储。

核心标识属性

id唯一标识

HTML
<div id="main-content">主要内容</div>
<header id="header">头部</header>
  • 元素唯一标识
  • CSS选择器#id
  • JavaScript定位document.getElementById('id')
  • 页面锚点链接href="#id"

id必须唯一,重复id会导致选择和锚点异常。

class类名

HTML
<div class="container">容器</div>
<div class="card active">多类名</div>
<div class="btn btn-primary btn-lg">组合类名</div>
  • 可多个类名(空格分隔)
  • CSS选择器.class
  • JavaScript定位document.getElementsByClassName('class')

style内联样式

HTML
<div style="color: red; font-size: 16px;">内联样式</div>
  • 最高优先级样式
  • 覆盖外部CSS
  • 不推荐大量使用

交互与行为属性

title提示文本

HTML
<a href="#" title="点击查看详情">详情链接</a>
<button title="保存并继续">保存</button>
  • 鼠标悬停显示提示
  • 提升可访问性

tabindex焦点顺序

HTML
<div tabindex="0">可聚焦元素</div>
<div tabindex="-1">JS可聚焦,Tab不可</div>
<div tabindex="1">优先聚焦</div>
说明
0Tab顺序按DOM位置
正数按数值顺序聚焦
-1仅JS可聚焦

tabindex让非表单元素可聚焦,便于键盘操作。

hidden隐藏元素

HTML
<div hidden>隐藏内容</div>
<section hidden>隐藏区块</section>
  • 等同于display: none
  • 不渲染不占用空间
  • CSS可覆盖display: block

draggable拖拽

HTML
<div draggable="true">可拖拽元素</div>
<img draggable="false">禁止拖拽</div>
  • true启用拖拽
  • false禁用拖拽
  • auto浏览器默认

data-*自定义数据属性

基本用法

HTML
<div data-user-id="123">用户信息</div>
<button data-action="delete" data-item="5">删除</button>
<article data-category="news" data-priority="high">新闻</article>
  • 以data-开头
  • 存储自定义数据
  • 不影响页面展示

JavaScript访问dataset

JavaScript
const div = document.querySelector('div');

// 读取
div.dataset.userId;      // "123"
div.dataset.action;      // "delete"

// 设置
div.dataset.userId = '456';
div.dataset.newAttr = 'value';  // 添加data-new-attr

// 删除
div.dataset.removeItem = undefined;
delete div.dataset.removeItem;

dataset自动转换:data-user-id → userId(驼峰命名)。

实际应用示例

HTML
<ul>
  <li data-id="1" data-status="active">任务1</li>
  <li data-id="2" data-status="completed">任务2</li>
  <li data-id="3" data-status="pending">任务3</li>
</ul>

<script>
const items = document.querySelectorAll('li');
items.forEach(item => {
  const id = item.dataset.id;
  const status = item.dataset.status;
  console.log(`任务${id}: ${status}`);
});
</script>

CSS访问data属性

CSS
/* 属性选择器 */
[data-status="active"] { color: green; }
[data-status="completed"] { color: gray; }
[data-status="pending"] { color: orange; }

/* attr()函数 */
li::after {
  content: attr(data-id);
}

aria可访问性属性

aria-label标签

HTML
<button aria-label="关闭">×</button>
<nav aria-label="主导航">...</nav>

aria-labelledby引用标签

HTML
<h2 id="section-title">章节标题</h2>
<section aria-labelledby="section-title">内容</section>

aria-describedby描述

HTML
<input type="text" aria-describedby="hint">
<span id="hint">请输入您的邮箱地址</span>

aria-hidden隐藏

HTML
<span aria-hidden="true"> decorative icon</span>

aria-expanded展开状态

HTML
<button aria-expanded="false">展开菜单</button>

aria-role角色

HTML
<div role="button">模拟按钮</div>
<nav role="navigation">导航</nav>
<main role="main">主要内容</nav>

aria属性辅助屏幕阅读器理解页面,提升无障碍体验。

事件处理属性

常用事件属性

HTML
<button onclick="alert('点击')">点击</button>
<input onfocus="console.log('聚焦')" onblur="console.log('失焦')">
<form onsubmit="return validate()">提交</form>
属性事件
onclick点击
onchange值变化
onfocus聚焦
onblur失焦
onsubmit表单提交
onmouseover鼠标悬停

事件属性简单但不推荐,建议用addEventListener分离代码。

其他全局属性

accesskey快捷键

HTML
<a href="#" accesskey="h">首页(Alt+H)</a>
<button accesskey="s">保存(Alt+S)</button>

dir文本方向

HTML
<p dir="ltr">从左向右</p>
<p dir="rtl">从右向左</p>
<p dir="auto">自动判断</p>

lang语言

HTML
<p lang="zh-CN">中文内容</p>
<p lang="en">English content</p>

contenteditable可编辑

HTML
<div contenteditable="true">可编辑内容</div>
<p contenteditable="plaintext-only">仅文本编辑</p>

spellcheck拼写检查

HTML
<input type="text" spellcheck="true">
<textarea spellcheck="false">不检查拼写</textarea>

全局属性速查表

属性类型说明
id标识唯一标识符
class标识类名列表
style样式内联CSS
title交互提示文本
tabindex交互Tab顺序
hidden显示隐藏元素
data-*数据自定义属性
aria-*可访问性无障碍属性
lang语言内容语言
dir方向文本方向

要点总结

  • id唯一标识元素,用于定位和锚点
  • class支持多类名,用于样式和选择
  • tabindex使非表单元素可聚焦
  • data-*存储自定义数据,dataset访问
  • aria属性提升页面可访问性
  • 事件属性简化但不推荐使用
  • contenteditable实现富文本编辑

📝 发现内容有误?点击此处直接编辑

← 上一篇 HTML元数据标签meta
下一篇 → HTML实体与字符引用
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库