Verwenden Sie CSS, um verschachtelte Abschnitte automatisch zu nummerieren

8

Sagen Sie, ich habe ein HTML- oder XML-Dokument wie folgt:

%Vor%

Dies ist nur ein illustratives Beispiel; Im Allgemeinen kann eine beliebige Anzahl von untergeordneten Abschnitten innerhalb eines Abschnitts vorhanden sein, und Abschnitte können in beliebiger Tiefe verschachtelt sein.

Ist es möglich, CSS (Zähler und generierten Inhalt) zu verwenden, um die gewünschte Abschnittsnummer am Anfang jedes Abschnitts-Titels zu erzeugen?

Die einzigen Beispiele, die ich gesehen habe, wo solche Dinge funktionieren, sind verschachtelte Listen , aber dort können Sie 'counter-reset' an OL und 'counter-increment' an LI anhängen. Hier scheint es so, als ob Sie 'section' benötigen, um sowohl für die untergeordneten Abschnitte als auch für die increment-Anweisung in der übergeordneten Section zurückzusetzen, und das Anhängen dieser beiden Elemente an einen Elementnamen funktioniert nicht.

    
Michael Dyck 27.07.2015, 21:30
quelle

2 Antworten

13

Sie sollten CSS-Zähler in diesem Fall verwenden.

Update-Lösung (besser) . Schließlich wäre ein etwas flexiblerer Ansatz das Zurücksetzen des Zählers auf dem body anfänglich statt auf section:first-child und auch auf jedem nächsten nächsten Geschwister des h1 .

%Vor%

Aktualisierte Lösung . Es stellte sich heraus, dass meine ursprüngliche Lösung nicht sehr gut ist, wie in Kommentaren gezeigt. Hier ist überarbeitete korrekte Version, die mit einer beliebigen Anzahl von geschachtelten oder Geschwisterabschnitten ordnungsgemäß funktionieren sollte.

%Vor% %Vor%

Original (Buggy) . In diesem Fall gibt es einen heiklen Teil: Der Zähler sollte für jede weitere section erhöht werden. Dies kann mit section + section selector erreicht werden:

%Vor% %Vor%
    
dfsq 27.07.2015, 21:37
quelle
-1
%Vor%

das ist nicht getestet, sollte aber funktionieren

    
jak89 _1 27.07.2015 21:41
quelle

Tags und Links