如何使用CSS显示img alt文本?

Tha*_*you 8 css

我试过这个,它运行正常

<p alt="world">hello</p>
Run Code Online (Sandbox Code Playgroud)

用CSS

p::after {
  content: attr(alt);
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试时它不起作用

<img src="http://placehold.it/300x300" alt="my image caption">
Run Code Online (Sandbox Code Playgroud)

用CSS

img::after {
  content: attr(alt);
}
Run Code Online (Sandbox Code Playgroud)

是否可以为img使用CSS 输出替代文字?

请指出浏览器与您提供的任何解决方案兼容.

这是一个jsfiddle

ada*_*aam 10

这是设计的.

img标签是自闭(<tag />)标签,因此它们不包含"内容".由于它们不包含任何内容,因此content不能附加(即::after)或附加(即::before).

其他自动关闭的HTML元素也是如此:

<area>,<base>,<br>,<col>,<command>,<embed>,<hr>,<keygen>, <link>,<meta>,<param>,<source>,<track><wbr>

这是(CSS2)规范所说的:

注意.此规范未完全定义:替换元素(例如HTML中的IMG)之前和之后的交互.这将在未来的规范中更详细地定义.[2014:尚未发生]

资料来源: http ://www.w3.org/TR/CSS2/generate.html#before-after-content

  • 对.`:after`实际上是`:end-of-innerHTML`.`:before`实际上是`:start-of-innerHTML`.而自闭标签没有innerHTML. (3认同)
  • @naomik请求规范编写者使规范变得更少.然后期待2100年的IE支持. (3认同)