Einleitung
Vielleicht nutzt du bereits ::before-Pseudo-Klassen, um das Design deiner ungeordneten Listen anzupassen, aber wusstest du, dass das auch mit geordneten Listen funktioniert?
Ohne ::before-Klassen
Für alle Listenblöcke nutzt Gutenberg die HTML-Standardelemente <ul> und <ol> und fügt ihnen seit WordPress 6.6 auch die CSS Klasse wp-block-list hinzu. Wir könnten das Design also auch einfach mit einem alternativen list-style bearbeiten. Weil ich dabei in der Vergangenheit an Grenzen gestoßen bin, habe ich mir jedoch angewöhnt stattdessen mit einer ::before-Pseudo-Klasse zu arbeiten.
Ungeordnete Listen
Das Styling von ungeordneten Listen (<ul>) ist relativ unkompliziert. Setze zunächst den list-style auf none, um die Standardaufzählungszeichen zu entfernen. Anschließend kannst du mit Padding und einer ::before-Pseudo-Klasse eigene Designs erstellen. Von hier aus gibt es viele Möglichkeiten, das Design weiter anzupassen – sei es durch Änderungen am content oder durch den Einsatz von clip-path anstelle von border-radius.
ul.wp-block-list {
list-style: none;
li {
position: relative;
padding-left: 1.5rem;
&::before {
content: "";
position: absolute;
top: 0.45em;
left: -0.45em;
width: 0.75em;
height: 0.75em;
background-color: var(--wp--preset--color--accent);
border-radius: 50%;
}
}
}Code-Sprache: SCSS (scss)
Geordnete Listen
Für geordnete Listen (<ol>) geht diese Strategie auf den ersten Blick nicht auf, weil die ::before-Pseudo-Klasse bei jedem Listenpunkt einen anderen content benötigt – z.B. die entsprechende Zahl. Der Trick heißt CSS Counter.
ol.wp-block-list {
list-style: none;
li {
position: relative;
padding-left: 1.5rem;
counter-increment: list-counter;
&::before {
content: counter(list-counter, decimal) ". ";
position: absolute;
top: 0;
left: 0;
color: var(--wp--preset--color--accent);
font-weight: bold;
}
}
}Code-Sprache: SCSS (scss)
Statt decimal kannst du auch alphabetic nutzen.
Außerdem kannst du den Counter auch in einem String nutzen, wie z.B. hier:
ol.wp-block-list {
li {
&::before {
content: "Section " counter(list-counter) ": ";
}
}
}Code-Sprache: SCSS (scss)