Use the counter-increment, counter-reset, and content properties to automatically assign a series of numbers to chapter and section elements.
Use the counter name as the value of the counter-increment and counter-reset properties. Specifying a counter name for the content property allows the value of the counter to be inserted in the ::before or ::after pseudo-elements. The counter’s value increases each time an element applies counter-increment and resets when counter-reset is applied.
body {
counter-reset: ChapterNo; /* reset chapter number counter */
}
h1:before {
counter-increment: ChapterNo; /* add 1 to chapter number counter */
/* Insert 'Chapter n' before chapter header (h1) */
content: "Chapter" counter(ChapterNo) ": ";
}
h1 { /* set h1:before and Chapter of h1 */
string-set: Chapter content(before) content();
counter-reset: SectionNo; /* reset section number counter */
}
h2:before {
counter-increment: SectionNo; /* add 1 to section counter */
content: counter(ChapterNo) "." counter(SectionNo) " ";
}
h2 { /* set h2:before and Section of h2 */
string-set: Section content(before) content();
}
@page :left {
@top-left { /* insert section title in the running head on the left page */
content: string(Chapter);
}
}
@page :right {
@top-right { /* insert section title in the running head on the right page */
content: string(Section);
}
}