content属性仅对::before和::after伪元素生效,普通元素上使用无效;必须配合display属性才可见,且attr()只读取HTML attribute、不支持动态property修改或默认值fallback。
content属性必须用在伪元素上才能生效
直接给普通元素写
样式是无效的,浏览器会忽略。它只对
和
伪元素起作用。如果你发现值没显示出来,先检查是否漏写了伪元素选择器。
常见错误写法:
→ 完全不生效
正确写法必须带伪元素:
伪元素需配合
(如
或
)才可能可见,空内容或被父容器隐藏时也看不到
只读取 HTML 属性(attribute),不是 DOM 属性(property)。比如
不会影响
,它只认
这种初始 HTML 写法
若属性不存在,
返回空字符串,不会报错也不会显示
attr() 只支持字符串类型,数值和布尔值会自动转成字符串
没有类型转换能力,所有值都当字符串处理。比如
会被当成文本
,不能直接参与 CSS 计算(如
是非法的)。
使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
下载
立即学习
“
前端免费学习笔记(深入)
”;
支持的属性名必须是合法的 HTML attribute,含连字符的要原样写,如
→
不支持动态 JS 修改后的值:通过
设置后,
能立刻更新;但
同样有效,因为本质也是操作 attribute
IE 不支持
的非
上下文(比如用在
里),且 IE8 及更早版本完全不支持
content 中拼接 attr() 和固定文本要加引号
想显示 “ID: 123”,不能写
—— 这是语法错误。CSS 中字符串和
必须用空格隔开,且字符串需用引号包裹。
多个
可并列,如
如果属性值含空格或特殊符号(如
),浏览器会原样输出,
不会自动解码,也不支持 CSS 里的转义
无法 fallback:没有类似
的默认值语法(CSS Level 3 尚未支持,默认值是 Level 4 提案,目前无主流浏览器实现)
用 attr() 实现简单状态提示时要注意可访问性
仅靠
输出的文字不会被屏幕阅读器自然读出,因为它不属于 DOM 流。如果该信息对理解内容关键(如表单必填项标记、错误状态),不能只依赖
。
视觉上用
显示状态(如
→
),同时应补上
或
等真实语义属性
不要用
替代
或
:前者纯展示,后者影响辅助技术
打印样式中
默认不出现,如需打印,得额外加
并设
实际用起来很简单,但容易卡在伪元素遗漏、引号缺失、或误以为它能响应 JS 动态 property 修改——它只看 attribute,而且只活在 CSS 生成的内容里。
content::before::after.box { content: attr(data-label); }.box::after { content: attr(data-label); }displayblockinlineattr()input.value = "abc"attr(value)attr(data-xxx)undefinedattr()data-count="42""42"width: attr(data-count) pxdata-user-idattr(data-user-id)el.setAttribute('data-status', 'active')::afterel.dataset.status = 'active'attr()contentbackgroundattr()content: "ID: " attr(data-id)attr()code.example::before {
content: "ID: " attr(data-id) " — active";
}attr()content: attr(data-first) " " attr(data-last)data-desc="A & B"&attr(data-title, "N/A")::aftercontentattr()data-state="error"::after { content: "⚠️ Error"; }aria-livearia-describedbyattr()titlearia-label::before/:after@media print { ... }content