Ich habe mich gefragt, ob es eine Möglichkeit gibt, die Farbe der Kugeln in einer Liste zu ändern.
Ich habe eine Liste wie diese:
<ul>
<li>House</li>
<li>Car</li>
<li>Garden</li>
</ul>
Es ist mir nicht möglich, irgendetwas in die Li einzufügen, wie zum Beispiel eine 'span' oder ein 'p'. Kann ich also die Farbe der Aufzählungszeichen ändern, aber nicht den Text auf intelligente Weise?
list-style-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10"><circle fill="red" cx="5" cy="5" r="2"/></svg>');
Ich habe dies ohne Hinzufügen von Markup geschafft, sondern mit
li:before
. Dies hat offensichtlich alle Einschränkungen von:before
(keine alte IE-Unterstützung), aber es scheint nach einigen sehr begrenzten Tests mit IE8, Firefox und Chrome zu funktionieren. Der Aufzählungsstil wird auch durch die Unicode-Funktionen eingeschränkt.quelle
font-size:1em
eine besser proportionierte Kugel bekommen habe!)Wir können
list-style-image
mitsvg
s kombinieren , was wir in CSS inline können ! Diese Methode bietet eine unglaubliche Kontrolle über die "Kugeln", die alles werden können.Um einen roten Kreis zu erhalten, verwenden Sie einfach das folgende CSS:
Dies ist jedoch nur der Anfang. Dies ermöglicht es uns, mit diesen Kugeln alles zu tun, was wir wollen. Kreise oder Rechtecke sind einfach, aber alles, was Sie zeichnen können,
svg
kann dort bleiben! Schauen Sie sich das Bullseye-Beispiel unten an:Code-Snippet anzeigen
Attribute für Breite / Höhe
Einige Browser erfordern
width
undheight
Attribute müssen auf dem festgelegt werden<svg>
, oder sie zeigen nichts an. Zum Zeitpunkt des Schreibens weisen neuere Versionen von Firefox dieses Problem auf. Ich habe beide Attribute in den Beispielen festgelegt.Kodierungen
Ein kürzlich veröffentlichter Kommentar erinnerte mich an Codierungen für die Daten-Uri. Dies war in letzter Zeit ein Problem für mich und ich kann ein paar Informationen teilen, die ich recherchiert habe.
Die Daten-Uri-Spezifikation , die auf die URI-Spezifikation verweist , besagt, dass die SVG gemäß der URI-Spezifikation codiert werden sollte . Das bedeutet, dass alle Arten von Zeichen codiert werden sollten, z . B.
<
wird%3C
.Einige Quellen schlagen eine Base64-Codierung vor, die Codierungsprobleme beheben sollte, jedoch die Größe des SVG unnötig erhöht, während dies bei der URI-Codierung nicht der Fall ist. Ich empfehle die URI-Codierung.
Mehr Info:
Browser-Unterstützung: > ie8
CSS-Tricks auf SVGs
mdn auf svgs
quelle
<svg>
Code nicht kopieren / einfügen. Versuchen Sie zunächst, ihn über einen Uri-Encoder auszuführen.Aufbauend auf der Lösung von @ Marc - da das Aufzählungszeichen mit verschiedenen Schriftarten und Browsern unterschiedlich gerendert wird, habe ich die folgende CSS3-Technik mit Rahmenradius verwendet, um ein Aufzählungszeichen zu erstellen, über das ich mehr Kontrolle habe:
quelle
Ich weiß, dass dies eine wirklich, wirklich, alte Frage ist, aber ich habe damit herumgespielt und mir einen Weg ausgedacht, den ich noch nicht gesehen habe. Geben Sie der Liste eine Farbe und überschreiben Sie die Textfarbe mit der
::first-line
Auswahl. Ich bin kein Experte, also stimmt vielleicht etwas mit diesem Ansatz nicht, aber es scheint zu funktionieren.quelle
Aufbau von @ Marc- und @ Jessica-Lösungen - Dies ist die Lösung, die ich verwende:
Ich verwende
em
für Schriftgrößen. Wenn Sie also Ihrentop
Wert so einstellen.5em
, wird er immer an der Mitte Ihrer ersten Textzeile platziert. Ich habe verwendet,left:-20px
weil dies die Standardposition von Aufzählungszeichen in Browsern ist: Elternpadding/2
quelle
Marc's Antwort hat mir auch sehr gut gefallen - ich brauchte einen Satz verschiedenfarbiger ULs und natürlich wäre es einfacher, nur eine Klasse zu verwenden. Folgendes habe ich zum Beispiel für Orange verwendet:
Außerdem stellte ich fest, dass der Hex-Code, den ich für "content:" verwendete, anders war als der von Marc (dieser Hex-Kreis schien etwas zu hoch zu sein). Der, den ich benutzt habe, scheint perfekt in der Mitte zu sitzen. Ich habe hier auch einige andere Formen (Quadrate, Dreiecke, Kreise usw.) gefunden
quelle
Für mich ist die beste Option die Verwendung von CSS-Pseudoelementen. Für das
disc
Aufzählungszeichen sieht es also so aus:Anmerkungen:
width
undheight
sollten gleiche Werte haben, um Zeiger gerundet zu haltenborder-radius
auf Null setzen , wenn Siesquare
Listenaufzählungszeichen haben möchtenFür weitere Aufzählungszeichenstile können Sie andere CSS-Formen verwenden. Https://css-tricks.com/examples/ShapesOfCSS/ (Wählen Sie diese Option , für die keine Pseudoelemente erforderlich sind, z. B. Dreiecke.)
quelle
::Marker
Sie können das
::marker
CSS-Pseudoelement verwenden, um das Markierungsfeld eines Listenelements (dh Aufzählungszeichen oder Zahlen) auszuwählen.quelle
Aufbauend auf der Antwort von @ ddilsaver. Ich wollte in der Lage sein, ein Sprite für die Kugel zu verwenden. Dies scheint zu funktionieren:
quelle
Ich habe dies heute versucht und Folgendes eingegeben:
Ich musste Farbmarkierungen in meinen Listen anzeigen (sowohl Aufzählungszeichen als auch Zahlen). Ich bin auf diesen Tipp gestoßen und habe in mein Stylesheet mit Gegenseitigkeit der Eigenschaften geschrieben:
Ich habe einen anderen Charakter ausgewählt, um eine Kugel anzuzeigen, und sie hier angesehen . Ich musste den Rand entsprechend anpassen, möglicherweise gelten die Werte nicht für die von Ihnen gewählte Schriftart (die Zahlen verwenden Ihre Webschrift).
quelle
Versuchen Sie stattdessen Folgendes:
quelle
Inline-Version, funktioniert für Outlook Desktop:
JSFiddle .
quelle