Gibt es eine Möglichkeit, einen Listenstil in HTML mit einem Bindestrich (dh - oder - –
oder - —
) zu erstellen?
<ul>
<li>abc</li>
</ul>
Ausgabe:
- abc
Mir ist der Gedanke gekommen, dies mit so etwas zu tun li:before { content: "-" };
, obwohl ich die Nachteile dieser Option nicht kenne (und für Feedback sehr dankbar wäre).
Allgemeiner würde es mir nichts ausmachen zu wissen, wie man generische Zeichen für Listenelemente verwendet.
html
css
xhtml
html-lists
Brian M. Hunt
quelle
quelle
Antworten:
Sie können verwenden
:before
undcontent:
bedenken, dass dies in IE 7 oder niedriger nicht unterstützt wird. Wenn Sie damit einverstanden sind, ist dies Ihre beste Lösung. Sehen Sie sich die Kann ich oder Quirksmode CSS - Kompatibilität Tabellen für weitere Informationen.Eine etwas unangenehmere Lösung, die in älteren Browsern funktionieren sollte, besteht darin, ein Bild für den Aufzählungspunkt zu verwenden und das Bild nur wie einen Bindestrich aussehen zu lassen. Beispiele finden Sie auf der W3C-
list-style-image
Seite .quelle
:before
ist, dass, wenn sich die Listenelemente über mehrere Zeilen erstrecken, der Einzug in der 2. Zeile dort beginnt, wo sich der Bindestrich befindet, wodurch der eingerückte Listeneffekt ruiniert wird. Sie müssen hängende Vertiefungen verwenden, um dies zu vermeiden. Siehe dies: alistapart.com/articles/taminglistscontent
Gebrauch zu setzencontent: "\2014\a0"
Es gibt eine einfache Lösung (Text-Einzug), um den eingerückten Listeneffekt mit der
:before
Pseudoklasse beizubehalten.quelle
list-style-type: none;
, das<ul>
Element zu setzen.ul li:before{ content:"- ";}
display: block; float: left;
zu dem hinzuzufügen ,li:before
was es leichter aus dem Inhaltsfluss herausziehen kann, sonst ist es ziemlich schwierig / fehlerhaft, die ersten und nachfolgenden Zeilen richtig auszurichten. Oder Keyan Zhangs Antwort tut dies auch mit absoluter Positionierung.list-style-type dash
ist noch nicht Teil von CSSHier ist eine Version ohne relative oder absolute Position und ohne Texteinzug:
Genießen ;)
quelle
display: block; float: left;
zu dem hinzuzufügen ,li:before
was es leichter aus dem Inhaltsfluss herausziehen kann, sonst ist es ziemlich schwierig / fehlerhaft, die ersten und nachfolgenden Zeilen richtig auszurichten. Oder Keyan Zhangs Antwort tut dies auch mit absoluter Positionierung..active
mitli:before { visibility: hidden; }
undli.active:before { visibility: visible; }
Benutze das:
quelle
Demo Geige
quelle
Lassen Sie mich auch meine Version hinzufügen, hauptsächlich, damit ich wieder meine bevorzugte Lösung finde:
https://codepen.io/burningTyger/pen/dNzgrQ
quelle
In meinem Fall Hinzufügen dieses Codes zu CSS
war genug. Einfach wie es ist.
quelle
Eine der Top-Antworten hat bei mir nicht funktioniert, da das li: before nach ein wenig Versuch und Irrtum auch die Anzeige der CSS-Regel: Inline-Block benötigte.
Das ist also eine voll funktionsfähige Antwort für mich:
quelle
quelle
Hier ist meine Geigenversion :
Die (modernizr) Klasse
.generatedcontent
auf<html>
bedeutet praktisch IE8 + und jeden anderen vernünftigen Browser.CSS:
quelle
Ich weiß nicht, ob es einen besseren Weg gibt, aber Sie können eine benutzerdefinierte Aufzählungspunktgrafik erstellen, die einen Bindestrich darstellt, und dann dem Browser mitteilen, dass Sie ihn in Ihrer Liste mit der Eigenschaft list-style-type verwenden möchten . Ein Beispiel auf dieser Seite zeigt, wie eine Grafik als Aufzählungszeichen verwendet wird.
Ich habe noch nie versucht zu verwenden: vorher so, wie Sie es getan haben, obwohl es funktionieren kann. Der Nachteil ist, dass es von einigen älteren Browsern nicht unterstützt wird. Meine Bauchreaktion ist, dass dies immer noch wichtig genug ist, um es zu berücksichtigen. In Zukunft ist dies möglicherweise nicht mehr so wichtig.
EDIT: Ich habe ein wenig mit dem Ansatz des OP getestet. In IE8 konnte ich die Technik nicht zum Laufen bringen, daher ist sie definitiv noch nicht browserübergreifend. Darüber hinaus wird in Firefox und Chrome die Einstellung "Listenstil" auf "Keine" in Verbindung ignoriert.
quelle
Meine Lösung besteht darin, ein zusätzliches span-Tag mit mdash hinzuzufügen:
und Hinzufügen zu CSS:
quelle
Ein anderer Weg:
quelle
CSS:
HTML:
quelle
Anstatt lu li zu verwenden, verwendet
dl (definition list) and dd
.<dd>
kann mit dem Standard-CSS-Stil definiert werden, z. B.{color:blue;font-size:1em;}
und als Markierung für jedes Symbol, das Sie nach dem HTML-Tag platzieren. Es funktioniert wie ul li, ermöglicht jedoch die Verwendung eines beliebigen Symbols. Sie müssen es nur einrücken, um den normalerweise eingerückten Listeneffekt zu erzielenul li
.Gibt Ihnen viel saubereren Code! Auf diese Weise können Sie jede Art von Charakter als Marker verwenden! Einzug ist ungefähr
-10px
und es funktioniert perfekt!quelle
Für jeden, der dieses Problem heute hat, ist die Lösung einfach:
Listenstil: "- "
quelle
Was für mich funktioniert hat war
quelle