Ich möchte dynamischen Text als Hintergrund für bestimmte Elemente in meinem Tag verwenden. Aus diesem Grund kann ich Bilder (dynamischer Text) verwenden. Wie mache ich das nur mit CSS oder JavaScript?
quelle
Ich möchte dynamischen Text als Hintergrund für bestimmte Elemente in meinem Tag verwenden. Aus diesem Grund kann ich Bilder (dynamischer Text) verwenden. Wie mache ich das nur mit CSS oder JavaScript?
Sie können ein absolut positioniertes Element in Ihrem relativ positionierten Element haben:
<div id="container">
<div id="background">
Text to have as background
</div>
Normal contents
</div>
Und dann das CSS:
#container {
position: relative;
}
#background {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
z-index: -1;
overflow: hidden;
}
Hier ist ein Beispiel dafür .
SVG Text Hintergrundbild
body {
background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='50px' width='120px'><text x='0' y='15' fill='red' font-size='20'>I love SVG!</text></svg>");
}
<p>I hate SVG!</p><p>I hate SVG!</p><p>I hate SVG!</p><p>I hate SVG!</p>
<p>I hate SVG!</p><p>I hate SVG!</p><p>I hate SVG!</p><p>I hate SVG!</p>
Hier ist eine eingerückte Version des CSS, damit Sie es besser verstehen können. Beachten Sie, dass dies nicht funktioniert . Sie müssen stattdessen das Single-Liner-SVG aus dem obigen Snippet verwenden:
body {
background-image:url("data:image/svg+xml;utf8,
<svg xmlns='http://www.w3.org/2000/svg' version='1.1'
height='50px' width='120px'>
<text x='0' y='15' fill='red' font-size='20'>I love SVG!</text>
</svg>");
}
Ich bin mir nicht sicher, wie portabel dies ist (funktioniert unter Firefox 31 und Chrome 36), und es ist technisch gesehen ein Bild ... aber die Quelle ist Inline- und Nur-Text und es ist unendlich skalierbar.
@senectus hat festgestellt, dass es im IE besser funktioniert, wenn Sie Base64 codieren: https://stackoverflow.com/a/25593531/895245
Es kann möglich (aber sehr hackisch) sein, nur CSS zu verwenden, indem: vor oder: nach Pseudoelementen verwendet wird:
Dies scheint zu funktionieren, aber Sie müssen es wahrscheinlich ein wenig optimieren. Beachten Sie auch, dass es in IE6 nicht funktioniert, da es nicht unterstützt wird
:after
.quelle
Ciros Lösung für einen SVG-Daten-URI-Hintergrund, der den Text enthält, ist sehr clever.
Im IE funktioniert dies jedoch nicht, wenn Sie nur die einfache SVG-Quelle zum Daten-URI hinzufügen.
Codieren Sie das SVG in base64, um dies zu umgehen und es in IE9 und höher zum Laufen zu bringen. Dies ist ein großartiges Werkzeug.
Also das:
Wird dies:
Getestet und funktioniert in IE9-10-11, WebKit (Chrome 37, Opera 23) und Gecko (Firefox 31).
http://jsfiddle.net/qapp5dLn/
quelle
@Ciro
Sie können den Inline-SVG-Code mit einem Schrägstrich unterbrechen
"\"
Getestet mit dem folgenden Code in Chrome 54 und Firefox 50
Ich habe das sogar getestet,
und es funktioniert (zumindest in Chrome 54 & Firefox 50 ==> Verwendung in NWjs & Electron garantiert)
quelle
Verwenden von reinem CSS:
(Verwenden Sie dies jedoch in seltenen Fällen, da die HTML-Methode BEVORZUGT ist. )
quelle
Sie können dafür sorgen, dass das Element, das den BG-Text enthält, eine niedrigere Stapelreihenfolge (Z-Index, Position) aufweist und möglicherweise sogar die Deckkraft festlegt. Das Element, das Sie oben benötigen, benötigt also eine höhere Stapelreihenfolge (Z-Index: 5; Position: relativ; zum Beispiel) und das Element dahinter benötigt etwas Niedrigeres (Standard oder nur einen niedrigeren Z-Index wie 3 und Position: Relativ) ;).
quelle