Moderní tvorba webových aplikací
O webu

CSS ikony

Ikony bez obrázků v čistém CSS.

4 minuty

Chceme-li stránkou obohatit a zpřehlednit ikonami, existují různé možnosti:

  • Použít běžný obrázek (ideálně jako CSS sprite).

  • Použít tzv. font icons (ikony z písma). To funguje tak, že se na stránku připojí speciální font, který místo běžných znaků obsahuje grafické symboly ikon.

  • Nakreslit ikonu přímo v CSS.

Obecné techniky kreslení v CSS už jsem popisoval. Při tvorbě CSS ikon je jen stačí vhodně kombinovat.

U složitějších podob ikon, kde je potřeba více elementů, si lze vypomoci přes :before/:after. A ušetřit tím pár značek, které by jinak musely být v kódu.

Z jednoho elementu tedy můžeme udělat tři, případně přidat další element a získat tak šest částí, což už stačí i na složité výtvory. Ne jen primitivní šipku.

Výhody a nevýhody

Výhody ikonek v CSS jsou:

  1. šetření HTTP požadavků (stačí přidat do CSS definici ikon, nic dalšího se nemusí stahovat),
  2. snadná změna barev a rozměrů bez ztráty kvality (pokud s tím ikonky počítají).

Jako nevýhody lze považovat:

  1. Komplikovanější upravování a rozšiřování. Je jednodušší překreslit obrázek, než laborovat s CSS v :before a :after elementech a obávat se limitu daným počtem elementů pro ikony stanovených.

  2. Slabší podpora některých pro kreslení podstatných CSS vlastností (například kulaté rohy). Plnohodnotnou podobu je reálné očekávat až od IE 9.

  3. Další věc je datová velikost. Při komplikovanějších podobách využívajících lehce nestandardní CSS vlastnosti, může být CSS kód ikony zaneřáděn duplicitními deklaracemi lišící se jen prefixy. A ve výsledku tak být objemnější než běžný obrázek.

  4. Nakonec bude u CSS ikon mnohem slabší výběr hotových setů ikon rovnou k použití.

Hotové ikony

Odkazy na zajímavější kolekce CSS ikon.

UIPlayGround CSS 3 Icons

Web

UIPlayGround CSS 3 Icons

Odkazy jinam

SVG ikony

Font ikony

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