Hallo alle,
ich bin gerade etwas erstaunt. Arg erstaunt! Mein eigentliches HTML war umfangreicher, hier ist die minimalistische Version:
<ol>
<li>Bananen</li>
<li value="7">Äpfel</li>
<li>Birnen</li>
</ol>
Diese Liste wird brav 1,7,8 durchnummeriert, aber jetzt füge ich eine counters()-Ausgabe hinzu:
li::after { content: ' (' counters(list-item, '.') ')'; }
Erwartet:
1. Bananen (1)
7. Äpfel (7)
8. Birnen (8)
Vorgefunden (Edge Chromium v120)
1. Bananen (1)
7. Äpfel (1.7)
8. Birnen (1.8)
Das heißt: die Value-Eigenschaft hat nicht, wie die Counters- und HTML-Spec schreiben, einen counter-set: list-item 7
durchgeführt, sondern einen counter-reset
und einen geschachtelten Zähler erzeugt.
Das finde ich jetzt gruselig falsch. Für mein Minibeispiel ist's natürlich wurscht, aber wenn man real mit geschachtelten Zählern und dem value-Attribut arbeitet, führt das gefundene Verhalten zu blödsinniger Darstellung.
Als Workaround kann ich mit style="counter-set: list-item 7"
arbeiten. Dann ist das Ergebnis richtig. Aber das solle ja eigentlich nicht nötig sein.
Bevor ich bei Chromium einen Bug poste: Mache ich was falsch? Bringen andere Browser das auch? Ich habe jetzt nur Chromium parat.
Fiddle: https://jsfiddle.net/vcmh3pf7/1/
Rolf
sumpsi - posui - obstruxi