Obrázek jako odrážka

V CSS je možné přidat textu (seznamu) obrázkovou odrážku, jaké to má úskalí a risika?

3 minuty

Kaskádové styly používají k obrázkové odrážce vlastnost list-style-image s adresou obrázku zadaného do url().

element {list-style-image: url(odrazka.png)}
  • Text s obrázkovou odrážkou,
    může být i
    víceřádkový.
  • U obrázkové odrážky vytvořené přes list-style-image lze měnit umístění.
  • Prohodit umístění odrážky (list-style-position)

Jak je vidět, nastavit přesnou posici obrázku pro list-style-image odrážku není možné. Dosáhnout přibližného zarovnání lze docílit nastavením line-height shodného s výškou obrázkové odrážky. Jelikož je ale možné text na webu zvětšovat, za moc toto řešení nestojí.

Normální pozadí (background-image)

Z výše popsaných důvodů se nabízí používat obyčejné obrázkové pozadí:

  • Seznamu <ul> nebo <ol> se odrážky zruší:

    ul {list-style: none}
  • Položkám se přidá levý padding o šířce obrázku + něco málo navíc jako odsazení:

    li {padding-left: 30px}
  • Položkám ne nastaví neopakující se obrázek (no-repeat):
    li {background: url(odrazka.png) no-repeat}
  • Text s obrázkovou odrážkou,
    může být i
    víceřádkový.
  • U obrázkové odrážky vytvořené přes background lze měnit umístění.
  • Změnit umístění odrážky (background-position)

CSS sprite a absolutní posicování

Máme-li na stránce kvůli rychlejšímu načítání obrázky spojené do jednoho (tzv. CSS sprite) a nechceme-li odrážku vyčlenit do zvlášť souboru, nezbývá než posicovat.

<ul>
  <li><span class="css-obrazek odrazka"></span> Text
</ul>
li {position: relative; padding-left: 30px}
.odrazka {position: absolute; left: 0; top: 0}

Pro vycentrování doprostřed řádku stačí použít běžné centrování, kdy se odrážka umístí na 50% a polovina výšky obrázku se odečte záporným marginem.

Co si myslíte o tomto článku?

Diskuse

Související články

CSS item-pack: balance – vyvážené rozložení flex položek

Vlastnost item-pack: balance rozděluje flex položky rovnoměrně mezi řádky, podobně jako text-wrap: balance vyvažuje řádky textu.

11 minut

CSS Container Queries – responsivní komponenty

Jak pomocí @container, container-type a container-name vytvářet komponenty, které se přizpůsobí velikosti svého rodiče místo viewportu.

16 minut

CSS Anchor Positioning – posicování elementů relativně k jiným

Jak pomocí anchor-name, position-anchor a funkce anchor() posicovat elementy relativně k jiným bez JavaScriptu.

6 minut

Centrování na webových stránkách

Moderní způsoby vertikálního i horizontálního centrování v CSS. Flexbox, Grid, margin auto a další techniky.

8 minut

Novinky e-mailem

Když budu mít něco opravdu zajímavého, můžu vám to poslat e-mailem

Přidej se k 500+ čtenářům
Jen kvalitní obsah
Žádný spam

Web jecas.cz píše Bohumil Jahoda, kontakt
Seznam všech článků · Témata · Zkratky
2013–2026