Verwenden Sie FontAwesome Symbol in einem ::before pseudo-element mit attr()
Ich versuche, fügen Sie ein FontAwesome Symbol in einem ::before
pseudo-element mit attr()
. Der ursprüngliche code ist komplexer, aber dies wird Ihnen eine Idee geben, was ich will:
<div data-background-icon="\f086"></div>
div::before {
content: attr(data-background-icon);
font-family: "FontAwesome";
}
https://jsfiddle.net/grutcop8/
Funktioniert es nicht, während der üblichen Weise einbetten funktioniert es:
div::before {
content: "\f086";
font-family: "FontAwesome";
}
Alles, was ich bin fehlt?
- Ihre Referenz, um die Daten korrekt zu sein scheint: jsfiddle.net/76v9e2ur
- Es ist, aber es nicht zeigen das Symbol.
- Eine kompliziertere Möglichkeit wäre eine Klasse, die hat content:'\f086 " und fügen Sie die Klasse an einem element nur, wenn das element "Daten-..." == "\\f086". Wuff, besser nicht darüber nachdenken
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen mit Unicode
CSS-escape-Sequenzen funktionieren nur innerhalb von CSS-strings. Wenn Sie einen CSS-escape-Sequenz, die aus einem HTML-Attribut (d.h. außerhalb von CSS), es wird Sie buchstäblich gelesen werden, nicht so auszulegen, als Teil eines CSS-string.
sollten Sie
"&#x"
bevor Sie Ihre font-Awesome-icon-code. dh, wenn Sie verwenden möchten/f086
, dann schreiben
stattHolen Sie sich die unicode von hier aus - https://fortawesome.github.io/Font-Awesome/cheatsheet/
UPDATE
Wenn Sie mit fontAwesome 5 ändern
font-family: "FontAwesome";
zufont-family: 'Font Awesome 5 Free';
CSS:
HTML:
CSS liest
\f086
als string und nicht als escape-Sequenz. Das Update ist entweder nutzen Sie direkt im content-Attribut wiecontent: '\f086';
oder direkt kopieren und einfügen-icon im HTML-Attribut (stellen Sie sicher, dass Sie speichern Sie Ihre Datei als UTF-8)HTML:
CSS:
ODER nutzen Sie HTML-entities:
HTML:
CSS:
Fiddle: https://jsfiddle.net/76v9e2ur/1/