当前位置: 首页 > news >正文

CSS 中 `data-status` 的使用详解

文章目录

    • 概述
      • 1. 语法与基础
        • HTML 示例
        • CSS 属性选择器匹配
      • 2. 实际应用示例
        • 示例 1:根据状态设置颜色
        • 示例 2:根据部分属性值匹配
        • 示例 3:结合伪元素动态显示内容
      • 3. 高级用法
        • 结合 JavaScript 动态修改状态
        • 多值属性匹配
      • 4. 伪元素 `attr()` 函数说明
      • 5. 兼容性与注意事项
      • 6. 实战代码示例
      • 7. 参考来源
    • 总结

概述

data-status 是 HTML5 推出的自定义数据属性(data-*)之一,它允许在 HTML 元素上嵌入自定义数据,通常用于表示状态信息,如“active”“pending”“error”等。结合 CSS 属性选择器,可以灵活地为不同状态应用不同样式。

1. 语法与基础

HTML 示例
<div data-status="active">Active Status</div>
<div data-status="pending">Pending Status</div>
<div data-status="error">Error Status</div>
CSS 属性选择器匹配
  • [data-status]:选中所有带有 data-status 属性的元素。
  • [data-status="active"]:选中 data-status 属性值完全等于 active 的元素。
  • [data-status*="pen"]:选中属性值包含 pen 的元素。
  • [data-status^="act"]:选中属性值以 act 开头的元素。
  • [data-status$="ing"]:选中属性值以 ing 结尾的元素。

2. 实际应用示例

示例 1:根据状态设置颜色
div[data-status="active"] {color: green;
}
div[data-status="pending"] {color: orange;
}
div[data-status="error"] {color: red;
}
示例 2:根据部分属性值匹配
div[data-status*="pen"] {background-color: #fff3cd;
}

只要属性值包含 pen,就会被选中。

示例 3:结合伪元素动态显示内容
div[data-status]::after {content: " (" attr(data-status) ")";color: gray;
}

会在元素后面动态显示 data-status 的值,如“Active Status (active)”。

3. 高级用法

结合 JavaScript 动态修改状态
document.querySelector('div').setAttribute('data-status', 'error');

通过 JS 动态修改属性值,CSS 会自动应用新样式。

多值属性匹配

如果 data-status 有多个值(用空格分隔),例如:

<div data-status="active primary">Active and Primary</div>

可以用:

div[data-status~="active"] {font-weight: bold;
}

只要属性值中包含独立的 active,就会被选中。

4. 伪元素 attr() 函数说明

attr() 函数目前只能用于 content 属性,用于在伪元素中显示属性值,如:

div::before {content: attr(data-status);
}

但无法直接用于 leftwidth 等属性。如需动态控制这些属性,推荐使用 CSS 变量(--var)或 JS。

5. 兼容性与注意事项

  • 所有现代浏览器均支持 data-* 属性和 CSS 属性选择器。
  • IE8 及以上支持,但需声明 <!DOCTYPE>
  • attr() 目前仅能用于 content,未来 CSS 标准可能扩展。

6. 实战代码示例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Data-Status Example</title><style>div[data-status="active"] {color: green;}div[data-status="pending"] {color: orange;}div[data-status="error"] {color: red;}div[data-status]::after {content: " (" attr(data-status) ")";color: gray;}</style>
</head>
<body><div data-status="active">Active Status</div><div data-status="pending">Pending Status</div><div data-status="error">Error Status</div>
</body>
</html>

7. 参考来源

  • CSS 属性选择器详解 - W3School
  • CSS 属性选择器 - 菜鸟教程
  • HTML5 data-* 属性 - 亿速云
  • CSS attr() 函数 - 菜鸟教程

总结

  • data-status 是一种灵活的自定义属性,用于存储状态信息。
  • CSS 属性选择器(如 [data-status="value"])能根据属性值精准匹配并应用样式。
  • 配合 attr() 可在伪元素中动态显示属性值。
  • 适合用于组件状态管理、表单校验、交互反馈等场景。
    如需更复杂的动态样式,可结合 CSS 变量或 JavaScript。
http://www.dtcms.com/a/568533.html

相关文章:

  • 舟山企业网站建设公司微信小程序麻将辅助免费
  • VMware替代 | 详解ZStack ZSphere产品化运维六大特性
  • 缓存击穿,缓存穿透,缓存雪崩的原因和解决方案(或者说使用缓存的过程中有没有遇到什么问题,怎么解决的)
  • 关于数据包分片总长度字段的计算和MF标志位的判断
  • 手机网站建站流程网站建设卩金手指科杰
  • BuildingAI 用户信息弹出页面PRD
  • ​Oracle RAC灾备环境UNDO表空间管理终极指南:解决备库修改难题与性能优化实战​
  • 《uni-app跨平台开发完全指南》- 02 - 项目结构与配置文件详解
  • 【数据分析】基于R语言的废水微生物抗性分析与负二项回归模型建模
  • 深圳专业网站公司注册查询网站
  • k8s --- resource 资源
  • 神经网络之反射变换
  • k8s——pod详解2
  • 四层神经网络案例(含反向传播)
  • MySQL初阶学习日记(1)--- 数据库的基本操作
  • 【k8s】k8s的网络底层原理
  • 一种创新的集成学习模型:结合双通路神经网络与逻辑回归的糖尿病患病概率预测
  • 神经网络之线性变换
  • Fastlane 结合 开心上架(Appuploader)命令行版本实现跨平台上传发布 iOS App 免 Mac 自动化上架实战全解析
  • 大连网站建设平台宁夏考试教育网站
  • 微信网站对接室内设计师报考官网
  • Ceph常用的三种存储操作
  • 【前端】从零开始搭建现代前端框架:React 19、Vite、Tailwind CSS、ShadCN UI 完整实战教程-第1章:项目概述与技术栈介绍
  • react使用ag-grid及常用api笔记
  • MiniEngine学习笔记 : CommandListManager
  • 人工智能讲师数据治理讲师叶梓《数字化转型与大模型技术应用培训提纲》
  • 1.7.课设实验-数据结构-二叉树-文件夹创建系统
  • 互联网大学生创新创业项目计划书seo网址查询
  • 同时打开两个浏览器页面,关闭 A 页面的时候,要求 B 页面同时关闭,怎么实现?
  • 什么是react?