CSS list-style-image • Bilder als Aufzählungszeichen in Listen

CSS List style image

CSS list-style-image legt ein Bild als Symbol für Listenelemente (Elemente vom Typ list-item) in Aufzählungen fest. Wenn das Bild verfügbar ist, ersetzt es das Listensymbol aus der CSS-Eigenschaft list-style-type. list-style-type muss also nicht auf none gesetzt werden, sondern dient als Fallback, falls das Bild einmal nicht gefunden wird.

23-02-02 SITEMAP CSS HTML JS Basis JS Web Tutorial SVG

Position von Listensymbolen

Die exakte Position für das Bild kann nicht via CSS list-style-image festgelegt werden. list-style-position kann zwar festlegen, ob Listenelemente eingezogen werden oder nicht, aber eine präzise Kontrolle über ein Bild als Listensymbol erzielt nur CSS background-image anstelle von list-style-image.

  • Montag
    • Sport
    • Mathematik
    • Physik
  • Dienstag
  • Mittwoch

CSS ul { margin-left: 0; } steuert den Einzug vor Listeneinträgen – bzw. setzt Listen linksbündig mit dem Text.

.buts {list-style-image:url(closed.svg) }
.active { list-style-image:url(open.svg) }

<ul class="buts"> 
    <li class="active">Montag
        <ul>
            <li>Sport</li>
            <li>Mathematik</li>
            <li>Physik</li>
        </ul>
    </li> 
    <li>Dienstag</li> 
    <li>Mittwoch</li> 
</ul>

list-style-image ist erblich. Darum zeigen auch die ul-Elemente der zweiten Ebene ein Aufzählungssymbol.

list-style-image mit background-image

Die Position des Listensymbols bestimmen – das geht mit background-image.

  • Montag
  • Dienstag
  • Mittwoch
  • Donnerstag
  • Framstag

Natürlich funktioniert ein normales Bild – sei es ein .png, .webp oder .jpg. Wer sich um IE11 nicht kümmern muss, bekommt fünf Sterne mit conic-gradient.

ul.star {
	list-style:none;
	font-size:1.3rem;
}
ul.star li::before {
	content: '' !important;
	background-image: repeating-conic-gradient(hsl(200,90%,88%) 0 36deg, hsl(200,80%,60%) 36deg 72deg);
	clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
	margin: 0 5px -0.5rem -1rem;
	background-size: cover;
	display: inline-block;
	height: 45px;
	width: 45px;
}

Am Rande: CSS conic-gradient ist exotisch, aber bringt neben Sternchen seriöse Tortengrafiken mit reinem CSS.

Sonderzeichen und Bilder für Listen

Mit CSS content::before kann auf die kleinen Bilder als Listensymbol zugunsten von Sonderzeichen verzichtet werden. Internet Explorer unterstützt content::before ab IE8.

  • Montag
  • Dienstag
  • Mittwoch
  • Montag
  • Dienstag
  • Mittwoch
  • Montag
  • Dienstag
  • Mittwoch
ul.char { list-style-type:none;}
ul.char li::before { 
    color:green; 
    font-size: 1em;
    content: "♫ "; 
               |
               +-- Leerzeichen für den Abstand
}

Aufzählungszeichen in Listen lassen sich mit content::before flexibler durch Schriftgröße und -farbe anpassen als mit list-style-image.

Ein Bild mit content::before in Listen einsetzen. Das Bild kann optional mit position:absolut in ein relativ positioniertes li gesetzt werden, um seine Position mit top, bottom, left und right zu fixieren.

ul.charS { margin-left: 2em; list-style: none; }
ul.charS li { position: relative; line-height: 180%}
ul.charS li::before { 
     position:absolute;
     left: -2em;
     content: url(listen.svg) " " 
                   ^           ^
                   |           |
   url des Bildes  +           |
ein Leerzeichen Abstand lassen +
}

Jedes Listenelement mit eigenem Icon

::before kann jeden li-Element ein anderes Bild zuordnen.

  • Montag
  • Dienstag
  • Mittwoch
  • Donnerstag
  • Framstag
.icon li:nth-child(1)::before {content: url(icon-1.png) " ";}
…
.icon li:nth-child(5)::before {content: url(icon-5.png) " ";}
.icon li:nth-child(1)::before {content: url(svg/icon-1.svg) " ";}
… 
.icon li:nth-child(5)::before {content: url(svg/icon-5.svg) " ";}

CSS list-style-image

Erblich: Ja

list-style-image
list-style-image ist die Adresse eines Bildes, das als Aufzählungssymbol in einer Liste benutzt wird.
Werte
<uri> | none | inherit
<uri>
<uri> ist der Pfad eines Bildes. Die Adresse muss in Klammern und von Hochkommas eingeschlossen sein.
none
none ist die Voreinstellung und gibt an, dass kein Bild eingespielt wird. Die Angabe von none stellt sicher, dass vorangegangene Deklarationen nicht weiter angewendet werden.