Ich habe eine geordnete Liste, in der die ursprüngliche Nummer 6 sein soll. Ich habe festgestellt, dass dies in HTML 4.01 unterstützt (jetzt veraltet) wird. In dieser Spezifikation heißt es, dass Sie die Start-Ganzzahl mithilfe von CSS angeben können. (anstelle des start
Attributs)
Wie würden Sie die Startnummer mit CSS angeben?
html
css
html-lists
vrish88
quelle
quelle
<ol start="">
ist in HTML5 nicht mehr veraltet , daher würde ich es einfach weiter verwenden, unabhängig davon, was HTML4.01 sagt.quelle
start="number"
saugt, weil es sich nicht automatisch basierend auf der Nummerierung davor ändert.Eine andere Möglichkeit, dies zu tun, die möglicherweise komplizierteren Anforderungen entspricht, ist die Verwendung von
counter-reset
undcounter-increment
.Problem
Angenommen, Sie wollten so etwas:
Sie können
start="3"
den drittenli
des zweiten einstellenol
, aber jetzt müssen Sie ihn jedes Mal ändern, wenn Sie dem ersten einen Artikel hinzufügenol
Lösung
Lassen Sie uns zunächst die Formatierung unserer aktuellen Nummerierung löschen.
Wir werden jeden li den Zähler zeigen lassen
Jetzt müssen wir nur noch sicherstellen, dass der Zähler nur beim ersten
ol
statt bei jedem zurückgesetzt wird.Demo
http://codepen.io/ajkochanowicz/pen/mJeNwY
Jetzt kann ich so viele Elemente zu jeder Liste hinzufügen, dass die Nummerierung erhalten bleibt.
quelle
ol li {...}
sollte seinol li:before {...}
- sonst ist dies die perfekte Lösung, danke!Ich bin überrascht, dass ich in diesem Thread keine Antwort finden konnte.
Ich habe diese Quelle gefunden , die ich unten zusammengefasst habe:
Um das Startattribut für eine geordnete Liste mithilfe von CSS anstelle von HTML festzulegen, können Sie die
counter-increment
Eigenschaft wie folgt verwenden:counter-increment
scheint 0-indiziert zu sein. Um eine Liste zu erhalten, die bei 4 beginnt, verwenden Sie3
.Für den folgenden HTML
Mein Ergebnis ist
Schau dir meine Geige an
Siehe auch die W3-Wiki-Referenz
quelle
Wie andere vorgeschlagen haben, kann man das
start
Attribut desol
Elements verwenden.Alternativ kann man das
value
Attribut desli
Elements verwenden. Beide Attribute sind in HTML 4.01 als veraltet markiert , nicht jedoch in HTML 5 (ol
undli
) .quelle
Um die Nummerierung einer geordneten Liste bei einer Nummer zu starten, die vom Standardwert ("1") abweicht, ist das
start
Attribut erforderlich . Dieses Attribut war in der HTML 4.01-Spezifikation zulässig (nicht veraltet) (HTML 4.01 war zum Zeitpunkt der Veröffentlichung dieser Frage noch keine "ersetzte Spezifikation") und ist in der aktuellen HTML 5.2-Spezifikation weiterhin zulässig . Dasol
Element hatte auch ein optionalesstart
Attribut in der Übergangs-DTD von XHTML 1.0, jedoch nicht in der strengen DTD von XHTML 1.0 (suchen Sie nach der ZeichenfolgeATTLIST ol
und überprüfen Sie die Attributliste). Trotz einiger älterer Kommentare wurde dasstart
Attribut nicht verworfen . Vielmehr war es ungültigin den strengen DTDs von HTML 4.01 und XHTML 1.0. Trotz der Behauptungen in einem der Kommentare ist dasstart
Attribut auf dem nicht zulässigul
Element und funktioniert derzeit nicht in Firefox und Chromium.Beachten Sie auch, dass ein Tausendertrennzeichen nicht funktioniert (in aktuellen Versionen von Firefox und Chromium). Im folgenden Codeausschnitt
10.000
wird interpretiert als10
; Gleiches gilt für10,000
. Verwenden Sie daher nicht den folgendencounter
Wertetyp:Was Sie also verwenden sollten, ist Folgendes (in den seltenen Fällen, in denen Werte über 1000 überhaupt erforderlich sind):
Einige der anderen Antworten schlagen die Verwendung der CSS-Eigenschaft vor
counter
, dies widerspricht jedoch der herkömmlichen Trennung von Inhalt und Layout (in HTML bzw. CSS). Benutzer mit bestimmten Sehbehinderungen verwenden möglicherweise ihre eigenen Stylesheets,counter
wodurch die Werte möglicherweise verloren gehen. Die Unterstützung von Bildschirmleseprogrammen fürcounter
sollte ebenfalls getestet werden. Die Unterstützung von Screenreadern für Inhalte in CSS ist eine relativ neue Funktion, und das Verhalten ist nicht unbedingt konsistent. Siehe Screenreader und CSS: Gehen wir aus der Mode (und in den Inhalt)? von John Northup im WebAIM-Blog (August 2017).quelle
Wenn die Listen verschachtelt sind, muss es eine Behandlung geben, bei der die verschachtelten Listenelemente weggelassen werden. Dies habe ich erreicht, indem ich überprüft habe, dass das übergeordnete Element kein Listenelement ist.
quelle
Mit CSS ist es etwas schwierig, den Fall zu behandeln, dass verschachtelte Listenelemente vorhanden sind. Daher erhält nur die erste Listenebene die benutzerdefinierte Nummerierung, die nicht bei jeder neu geordneten Liste unterbrochen wird. Ich verwende den CSS-Kombinator '>', um die möglichen Pfade zu den Listenelementen zu definieren, die eine benutzerdefinierte Nummerierung erhalten sollen. Siehe https://www.w3schools.com/css/css_combinators.asp
quelle
Offensichtlich kann weder @start einer geordneten Liste <ol> noch @value eines Listenelements <li> über CSS festgelegt werden. Sehen https://www.w3schools.com/css/css_list.asp
Das Ersetzen der Nummerierung durch einen Zähler in CSS scheint die beste / schnellste / narrensichere Lösung zu sein, und es gibt andere, die dafür werben, z. B. https://css-tricks.com/numbering-in-style/
Mit reinem JavaScript ist es möglich, @value für jedes Listenelement festzulegen, dies ist jedoch natürlich langsamer als CSS. Es muss nicht einmal überprüft werden, ob das Listenelement zu einer geordneten Liste <ol> gehört, da ungeordnete Listen automatisch weggelassen werden.
quelle