将HTML属性用作CSS属性值

8
规范说明:
attr()函数返回元素上属性的值,以便用作属性值。如果在伪元素上使用,则返回伪元素所属元素上的属性值。

http://www.w3.org/TR/css3-values/#attr

然而,这似乎不起作用。当我使用 background-image: url(attr(href)); 时,我得到的是字符串 "attr(href)" 作为属性值,而不是实际的值本身。

http://jsfiddle.net/x2Rpt/1/

任何想法为什么这个出了问题?

几乎与今天早些时候提出的这个问题相同:https://dev59.com/tGgu5IYBdhLWcg3wuJWF - thirtydot
@thirtydot:我知道这看起来很熟悉...不知道我应该关闭它还是留下我的答案。 - BoltClock
所以基本上,它应该可以工作,但实现并不完全正确? - quadmachine
CSS3版本根本没有被实现。唯一可用的实现是基于CSS2.1定义的 - http://www.w3.org/TR/CSS21/generate.html - BoltClock
@BoltClock:所以我以后应该链接到那个答案,因为它是最接近规范答案的东西? - thirtydot
显示剩余2条评论
1个回答

15

它并没有出现故障,只是没有任何浏览器实现了CSS3版本的attr()。目前,仅存在于CSS2.1中引入的实现,仅适用于生成和替换内容的content属性。

除非规范发生变化,否则您的语法似乎是正确的。


2
请点赞此错误以促使他们实施:https://bugzilla.mozilla.org/show_bug.cgi?id=435426 - vsync

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接