Ich muss zum Beispiel das Sternsymbol (★) als Aufzählungszeichen für ein Listenelement verwenden.
Ich habe das CSS3-Modul gelesen : Listen , in denen beschrieben wird, wie benutzerdefinierter Text als Aufzählungszeichen verwendet wird, aber es funktioniert bei mir nicht. Ich denke, die Browser unterstützen das Pseudoelement einfach nicht ::marker
.
Wie kann ich das machen, ohne Bilder zu verwenden?
html
css
html-lists
AntonAL
quelle
quelle
Antworten:
BEARBEITEN
Ich würde wahrscheinlich nicht mehr empfehlen, Bilder zu verwenden. Ich würde mich an den Ansatz halten, ein Unicode-Zeichen wie folgt zu verwenden:
ALTE ANTWORT
Ich würde mich wahrscheinlich für einen Bildhintergrund entscheiden, sie sind viel
effizienter,vielseitiger und browserübergreifender.Hier ist ein Beispiel:
quelle
<li>
Text umbrochen wird: Das Aufzählungszeichen bleibt nicht ungerückt und sieht am Ende wie der Anfang eines Textabsatzes aus. Diese Antwort behebt dieses Problem: stackoverflow.com/a/14301918/1450294Verwenden von Text als Aufzählungszeichen
Verwendung
li:before
mit einer maskierten Hex-HTML-Entität (oder einem beliebigen einfachen Text).Beispiel
In meinem Beispiel werden Listen mit Häkchen als Aufzählungszeichen erstellt.
CSS :
Browser-Kompatibilität
Ich habe mich nicht getestet, aber es sollte ab IE8 unterstützt werden. Zumindest sagen das Quirksmode & CSS-Tricks .
Sie können bedingte Kommentare verwenden, um ältere / langsamere Lösungen wie Bilder oder Skripte anzuwenden. Besser noch, verwenden Sie beide mit
<noscript>
für die Bilder.HTML :
Über Hintergrundbilder
Hintergrundbilder sind zwar einfach zu handhaben, aber ...
background-size
ist eigentlich nur ab IE9.list-style
(die logischere Wahl) erleichtern.Genießen.
quelle
li
Elements mehrere Zeilen umfasst. Diese umbrochenen Zeilen werden nicht richtig eingerückt.float: left; margin-left: -12px;
am: vorher, um sich darum zu kümmern, @RichardEverettSie können es konstruieren:
quelle
'\21B3'
! Vielen Dank! Es hat besser funktioniert als die anderen Antworten hier. Außerdem wurde daspadding-left
in meinem Design auf geändert1em
, was sich gut anpasst, wenn sich die Größe Ihrer Baumebenen ändert.Dies ist die W3C-Lösung. Sie können es in 3012 verwenden!
https://drafts.csswg.org/css-lists/#text-markers
quelle
li:before
Lösung verwenden.Bilder werden nicht empfohlen, da sie auf einigen Geräten (Apple-Geräte mit Retina-Display) oder beim Vergrößern pixelig erscheinen können. Mit einem Zeichen sieht Ihre Liste jedes Mal fantastisch aus.
Hier ist die beste Lösung, die ich bisher gefunden habe. Es funktioniert hervorragend und ist browserübergreifend (IE 8+).
Wichtig ist, dass sich das Zeichen in einem schwebenden Block mit einer festen Breite befindet, damit der Text ausgerichtet bleibt, wenn er zu lang ist, um in eine einzelne Zeile zu passen. 1.2em ist die Breite, die Sie für Ihren Charakter wünschen, ändern Sie sie für Ihre Bedürfnisse. Vergessen Sie nicht, die Polsterung und den Rand für ul- und li-Elemente zurückzusetzen.
BEARBEITEN: Beachten Sie, dass die Größe von "1.2em" variieren kann, wenn Sie zuvor eine andere Schriftart in ul und li: verwenden. Es ist sicherer, Pixel zu verwenden.
quelle
Um einen Stern hinzuzufügen, verwenden Sie das Unicode-Zeichen
22C6
.Ich habe ein Leerzeichen hinzugefügt, um eine kleine Lücke zwischen dem
li
und dem Stern zu machen. Der Code für Leerzeichen lautetA0
.quelle
Ein vollständigeres Beispiel für die Antwort von 222 :
Ich habe Star-Hack-Eigenschaften eingefügt, um die Standardlistenstile in älteren IE-Versionen wiederherzustellen. Sie können diese herausziehen und bei Bedarf in ein bedingtes Include aufnehmen oder durch eine auf Hintergrundbildern basierende Lösung ersetzen. Meine bescheidene Meinung ist, dass spezielle Aufzählungsstile, die auf diese Weise implementiert wurden, sich in den wenigen Browsern, die keine Pseudoselektoren unterstützen, elegant verschlechtern sollten.
In Firefox, Chrome, Safari und IE8-10 getestet und insgesamt korrekt gerendert.
quelle
text-indent: -1em;
ist eine wichtige Eigenschaft, wenn Sie mehrzeilige Listenelemente haben. Ohne sie stimmen die zweite und die folgenden Zeilen eher mit der Kugel als mit der vorherigen Zeile überein.quelle
Ich habe diese ganze Liste durchgesehen und ab 2020 gibt es teilweise korrekte und teilweise falsche Elemente.
Ich habe festgestellt, dass der Einzug und der Versatz das größte Problem bei der Verwendung von UTF-8 sind. Daher veröffentliche ich dies als 2020-kompatible CSS-Lösung am Beispiel des Aufzählungszeichens "aufrechtes Dreieck".
Verwenden Sie diese
em
Option als Einheit, um Konflikte mit der Schriftgröße zu vermeidenquelle
Versuchen Sie diesen Code ...
quelle
Dieses Thema mag alt sein, aber hier ist eine schnelle Lösung
ul {list-style:outside none square;}
oderul {list-style:outside none disc;}
, etc ...Fügen Sie dann das linke Element zum Listenelement hinzu
quelle