2012-06-20 8 views
6

Die Spezifikation sagt:Verwendung von HTML-Attribute als CSS-Eigenschaft Werte

Die attr() Funktion auf dem Element den Wert eines Attributs zurückgibt für die Verwendung als Wert in einer Eigenschaft. Wenn es für ein Pseudo-Element verwendet wird, gibt es den Wert des Attributs für das ursprüngliche Element des Pseudo-Elements zurück.

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

Doch dies scheint nicht zu funktionieren. Wenn ich background-image: url(attr(href)); verwende, erhalte ich die Zeichenfolge "attr (href)" als Attributwert, nicht den Wert selbst.

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

Irgendwelche Ideen, warum dieser gebrochen ist?

+0

Fast das gleiche wie diese Frage heute früher gestellt: http://stackoverflow.com/questions/11117915/how-cani-i-use-a-data-attribute-to-set-a-background-image-in -css – thirtydot

+0

@thirtydot: Ich wusste, dass mir das bekannt vorkam ... weiß ich nicht, ob ich es schließen oder meine Antwort hinterlassen sollte. – BoltClock

+0

Also im Grunde sollte es funktionieren, aber es ist nicht ganz richtig implementiert? – quadmachine

Antwort

10

Es ist nicht kaputt; Es ist nur, dass kein Browser the CSS3 version of attr() implementiert hat. Derzeit gibt es nur Implementierungen für die Version introduced in CSS2.1, die auf die Eigenschaft content für generierten und ersetzten Inhalt beschränkt ist.

Ihre Syntax scheint ansonsten korrekt zu sein, bis Änderungen an der Spezifikation vorgenommen werden.

+0

Bitte stimme diesen Bug ab, damit er an der Implementierung arbeitet: https://bugzilla.mozilla.org/show_bug.cgi?id=435426 – vsync

Verwandte Themen