content值必须加引号并配合::before或::after使用;字符串需用单/双引号包裹,attr()仅读取所挂载元素的属性,伪元素默认inline需手动设display调整布局。

content 值,加引号,且必须配合 ::before 或 ::after 使用——不加引号、不配伪元素、或写成 content: none 以外的非法值,都会静默失效。
content 写字符串时必须带引号
哪怕只插一个符号或一个空格,也得用单引号或双引号包裹。浏览器对引号缺失零容忍,且不报错。
-
content: "→";✅ 正确,显示右箭头 -
content: '✓';✅ 正确,显示对勾 -
content: Hello;❌ 失效,被当成关键字忽略(不是变量,也不是 CSS 关键字) -
content: "";✅ 合法,生成空内容(但伪元素仍存在,可用来占位或触发布局)
attr() 动态取属性值要匹配宿主元素
attr() 只读当前伪元素所挂载的那个 HTML 元素的属性,不能跨级、不能拼接、不能运行表达式。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
-
a::after { content: attr(title); }→ 读<a title="跳转到首页"></a>的title -
[data-tip]::before { content: attr(data-tip); }→ 注意属性名带data-前缀,就得原样写 - 如果 HTML 是
<span data-label="编辑"></span>,而 CSS 写成div::before { content: attr(data-label); },就取不到——伪元素挂载在div上,不是span
伪元素默认 inline,文字对齐容易出问题
没设 display 时,::before/::after 是 inline,和文字基线对齐。想垂直居中、撑高、换行控制,得手动干预。
- 跟文字并排又想居中?用
display: inline-flex; align-items: center;比vertical-align更稳 - 想让它独占一行或当块级装饰?加
display: block;,再配margin或position - 父容器是
white-space: nowrap,而伪元素是display: block,它会强行折行——这时换成display: inline-block
display 没调、父元素 overflow: hidden 切掉了内容——这些都不会报错,只默默消失。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










