2012-06-20 49 views
6

的规范说:使用HTML属性作为CSS属性值

的ATTR()函数中的属性返回用作值的元素的一个属性的值。如果用在伪元素上,它将返回伪元素的始发元素上的属性值。

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

然而,这似乎并没有工作。当我使用background-image: url(attr(href));时,我得到字符串“attr(href)”作为属性值,而不是值本身。

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

任何想法,这是为什么坏了?

+0

几乎和今天早些时候问的这个问题一样:http://stackoverflow.com/questions/11117915/how-can-i-use-a-data-attribute-to-set-a-background-image-in -css – thirtydot

+0

@thirtydot:我知道这似乎很熟悉......不知道是否应该关闭它或者离开我的答案。 – BoltClock

+0

所以基本上,它应该工作,但它不是很对劲? – quadmachine

回答

10

它没有坏;只是没有浏览器实现了the CSS3 version of attr()。目前,实现仅存在于introduced in CSS2.1的实现中,该实例仅限于生成和替换内容的content属性。

除非对规范进行更改,否则您的语法似乎是正确的。

+0

请投票给这个bug让他们在实现上工作:https://bugzilla.mozilla.org/show_bug.cgi?id=435426 – vsync