Ikony ze symbolů. Sprite nebo písmo ikony

Responzivní design - oblíbené téma. Obrazovky už dávno přesáhly hranice standardní rozlišení a weby lze prohlížet na zařízeních velikosti dlaně i velké monitory. Stránka by měla vypadat stejně dobře bez ohledu na velikost zařízení a hustotu pixelů. Existuje mnoho způsobů, jak přizpůsobit design a obsah různé techniky a technologie. Vektorová grafika, SVG je podle mě jedním z nejvíce zajímavá témata v tomto směru.

Grafika SVG je vhodná pro ikony, nebude vypadat mýdlově na zařízeních sítnice a lze ji roztáhnout bez ztráty kvality.

Zde je například jeden sprite SVG ze 4 různé velikosti, originál - 32px:

SVG dělá tuto práci dobře a dobře se hodí pro použití v responzivních rozvrženích.

Ikony pro design si můžete vzít z hotových sad nebo si nakreslit vlastní.

Sady hotových ikon

iconmelon.com

Velká sbírka ikon na různá témata. Načtené ikony se doporučuje vložit do HTML pomocí použití .

icomoon.io

Nejpohodlnější nástroj. Můžete nejen vybírat a stahovat hotové ikony, ale můžete také nahrát své vlastní a získat je jako písmo a/nebo sprite. Spolu se spritem je nabídnuto stažení jeho PNG verze.

flaticon.com

Velká sbírka, ikony jsou pohodlně rozděleny do kategorií. Vybrané ikony lze stáhnout v jednotlivých formátech (font, SVG, PNG) nebo všechny najednou.

Kreslíme sami sebe

K vytvoření vlastní sady ikon budete potřebovat vektorový editor:

  • Adobe Illustrator je podle mě nejlepší. 599 RUB/měsíc v rámci předplatného Creative Cloud;
  • Inkscape je zdarma a není příliš uživatelsky přívětivý;
  • Sketch – pro Mac OS, 79,99 $. Má nějaké problémy s vektorizací tahů, ale obecně docela pohodlné.

Hubnutí

Hotový soubor SVG obvykle obsahuje spoustu zbytečných věcí, ale zároveň se dobře hodí k optimalizaci. Odebráno z kódu zbytečné atributy, mezery a pomlčky a v číslech se sníží počet znaků za tečkou. Hmotnost pilníku se sníží o 30–50 %. Optimalizační nástroje:

grunt-svgmin- úkol pro Grunt pomocí svgo. V tomto případě budou samotné soubory převzaty ze zdrojové složky, optimalizovány a uloženy ve složce výsledků. Velmi pohodlné.

Písmo sprite nebo ikony?

Písmo je vhodnou alternativou ke spritu. Není třeba se obtěžovat s mřížkou a uspořádáním ikon; je vhodné přidávat nové symboly, i když to vyžaduje doplňkové nástroje.

Pomocí písma můžete vytvářet nejen jednobarevné ikony, ale i vícebarevné.

Vlastní písmo si můžete vyrobit například na webu icomoon.io/app/. Přibližný sled akcí:

  1. Vyberte ikony ze sady a/nebo nahrajte své vlastní.
  2. Klepněte na tlačítko Písmo níže.
  3. V tomto kroku můžete změnit přiřazení symbolů ikonám nebo rovnou stáhnout výsledné písmo.

Spolu s fontem ve čtyřech formátech (.woff, .svg, .ttf, .eot) se stahuje CSS a demo soubor.

Vložená písma fungují i ​​v IE 8, ale mají neočekávané problémy s podporou v některých moderních prohlížečích. Opera Mini vůbec nepodporuje vlastní písma, Firefox vyžaduje kouzla pro server, kde se písmo nachází (řešeno pomocí base64), Chrome může písmo uvolnit, pokud necháte kartu dlouho otevřenou:

V Chrome v systému Windows 7 může také stránka s vloženými fonty při otevírání zamrznout a v některých jiných prohlížečích se místo ikon může objevit cokoli:

Obrázek z článku Chrise Cohera Icon System with SVG Sprites. Kdysi jsem na stejném místě viděl hieroglyfy, ale teď je to SVG, takže nemůžu udělat snímek obrazovky. CSS-triky mimochodem velmi aktivně využívají SVG ve svém novém designu a vývojáři Codepen upustili od používání ikonových písem ve prospěch SVG v novém designu editoru.

Navzdory snadnému použití existují problémy s podporou písem v momentálně donutí vás vybrat ikony SVG.

Chtěl bych doufat, že v budoucnu budou vložená písma lépe podporována.

Jaké jsou různé způsoby vložení SVG na stránku?

Skřítek

.icon ( obrázek na pozadí: url(vaše.svg); )

Pro:

  • krátký čitelný kód;
  • obrázek je uložen do mezipaměti;

nevýhody:

  • požadavek na server;
  • ve starších operách je podpora SVG na pozadí zvláštní: problémy mohou nastat při přidávání rámečku k prvku s pozadím SVG a v Opeře Mini fungují pouze pozadí bez viewBoxu;
  • ikony ve spritu nejsou dostupné pro styly stránek;
  • Velké sprity mohou způsobit problémy s výkonem.

Base64 v datovém URI

.icon ( background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL...); )

Pro:

  • není žádný požadavek na server.
  • dobrá podpora prohlížeče: vše kromě Opery na Presto a starého IE.

nevýhody:

  • obrázek se neukládá do mezipaměti a pokaždé se vykresluje znovu;
  • dlouhý řádek v CSS;
  • nečitelný: z kódu není jasné, co obsahuje;
  • zakódovaný obrázek může vážit více než původní;
  • pro kódování/dekódování jsou potřeba další nástroje;
  • ikony nejsou dostupné pro styly stránek.

SVG v datovém URI

.icon ( background-image: url("data:image/svg+xml;utf8, Pro:

  • žádný požadavek na server;
  • relativně čitelný kód (lze číst nebo upravovat);
  • nevyžaduje dekódování;
  • je podporován všemi moderními prohlížeči, pokud jej zakódujete jako SVG.

nevýhody:

  • neuloženo do mezipaměti;
  • dlouhý řádek v CSS;
  • ikony nejsou dostupné pro styly stránek;
  • Podporováno pouze prohlížeči Webkit.

Použít (opětovné použití prvků SVG)

Pro:

  • čitelný kód;
  • K obrázkům můžete přidat název a popis;
  • pro styly stránky jsou k dispozici symboly. Ikonám můžete také nastavit fill="currentColor" a ty se vykreslí spolu s textem.

nevýhody:

  • vložen přímo do HTML. Prvky musí být před použitím deklarovány v horní části stránky ve vloženém SVG. Možná existuje elegantnější způsob připojení knihovny prvků, nenašel jsem to.

Písmo

.icon ( obsah: "\6c"; rodina písem: "icomoon"; )

Pro:

  • pohodlný kód;
  • jediná metoda podporovaná v IE8 bez výpadků;
  • ikony jsou k dispozici pro styly stránek a budou vymalovány spolu s textem.

nevýhody:

  • pokud se písmo nenačte (ještě nenačteno, nenačteno vůbec nebo již nenačteno), místo ikon budou písmena nebo symboly Unicode nebo nic.

Živý příklad s podporou prohlížeče:

Příklad je prezentován tak, jak je, bez snahy zajistit kompatibilitu mezi různými prohlížeči. Demo můžete otevřít v prohlížeči, který vás zajímá, a podívat se, jak podporuje různé metody.

Zobrazování ikon v prohlížečích bez podpory SVG

V tuto chvíli je nejpohodlnější a nejspolehlivější způsob vkládání ve formě sprite.

Chcete-li nahradit obrázky v IE8 a starších, můžete použít metodu s více pozadími:

Ikona ( background-image: url(your.png); /* PNG pro IE6-8 */ background-image: url(your.svg), none; )

Pro staré opery můžete použít následující selektor:

Neexistuje:-o-prefocus, .icon (obrázek na pozadí: url(vaše.png); )

Tímto způsobem můžete zajistit, aby ikony pro uživatele s různými prohlížeči vypadaly přibližně stejně.

Ze stávajících metod pro vkládání ikon se mi nejvíce líbí písmo. Bylo by to perfektní, kdyby to nebylo kvůli problémům s podporou.

Nelíbí se mi Use, protože kombinuje označení a design, i když jsem spokojen s přístupností pro CSS a možností přidat název a popis . Existuje další velmi dobrá, ale špatně podporovaná metoda, ale to je téma na samostatný příspěvek. UPD:

Děkuji mnohokrát

V dnešní době má mnoho moderních webových stránek ve svém rozložení ikony CSS. Jsou načteny z externích zdrojů nebo z místní složky, pokud byla dříve stažena speciální písma. FontAwesome, Generikony, Materiál a další. Dal jsem se do toho, abych pochopil, co je pro web lepší, načítání podobných ikon pomocí CSS nebo pomocí staré dobré metody – obrázků.

Výhodou CSS ikon je, že za prvé je jich spousta pro každý vkus, za druhé se škálují bez ztráty kvality a za třetí se snadno zobrazují.

Mezi nevýhody CSS ikon. Na různých zařízeních se mohou zobrazovat odlišně. Významnější nevýhoda: několik dalších souborů (fonty, css) je navíc přetahováno.

Abych se rozhodl, co je lepší, nejprve jsem ikonu zobrazil pomocí CSS a poté našel stejný obrázek a zobrazil jej vedle sebe. V důsledku toho jsem získal naprosto identické ikony, jejichž snímek obrazovky je uveden níže:

První ikona je propojena s následujícím příkazem přes soubor functions.php v motivu WordPress:

add_action ("wp_enqueue_scripts" , "enqueue_load_fa" );

funkce enqueue_load_fa() (

wp_enqueue_style("load-fa" , "https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css") ;

Vstup - meta . kategorie: dříve (

obsah : "\f115" ;

písmo: normální 14px / 1 FontAwesome;

výplň: 0 3px 0;

Druhá ikona na obrázku je běžný obrázek jpg, který má následující styly:

Img_folder(

výška: 16px;

neprůhlednost: . 6;

vertikální - zarovnat : text - top ;

šířka: 16px;

V důsledku toho měly stejné barvy a zaujaly stejnou vertikální polohu vzhledem k textu.

Při výběru jsem se zaměřil na obrázky.

Pro obrázek v CSS stylech jsem udělal ikonu 16 pixelů. Samotný má však velikost 96 pixelů. Jen pro případ. Najednou se hustota pixelů některého monitoru zvýší 6krát. Nechci, aby obrázky na webu vypadaly nepatřičně.

A co získáme v důsledku výstupu obrázku, který je 6krát větší, než je nutné? Pouze 3 kb a načítají se pouze na konkrétní stránce, kde je tento obrázek zobrazen. Zároveň pro zobrazení ikony pomocí CSS budete muset stáhnout asi 100 kb nebo více. To se nezdá mnoho, ale nyní má každý web tolik skriptů, že 100 kb navíc je také významná váha.

Dle mého názoru má smysl nahrát CSS ikony, pokud jsou již dříve staženy na váš web a je jich na webu zobrazeno hodně. Jinak jsou podle mě vhodnější obrázky.

Vlad Merževič

Kódování UTF-8 umožňuje nejen současně vkládat text v několika jazycích, ale také přidávat různé symboly, které lze s úspěchem použít jako designové prvky i místo některých obrázků. Zde jsou výhody, které to slibuje:

  • menší objem přenesených dat ve srovnání s obrázky;
  • Na textový symbol můžete snadno použít jakýkoli styl;
  • opět je snadné změnit styl symbolu, když na něj najedete myší;
  • Je přípustné zvětšit velikost bez ztráty kvality.

Mezi nevýhody patří malá sada symbolů pro design, v různých operačních systémech se mohou vzhledově mírně lišit, nelze je upravovat a jsou jednobarevné.

Vkládání symbolů

Protože máme co do činění s UTF-8, kopírování a vkládání znaku do kódu je velmi jednoduché. Jediné, co musíte udělat, je najít program, který zobrazí znaky, které potřebujete, zkopírovat ten, který se vám líbí, a přímo vložit do textového editoru. Ve Windows lze použít program Tabulka symbolů, jehož okno je na Obr. 1.

Rýže. 1. Tabulka symbolů

Vzhled symbolů velmi závisí na zvoleném fontu, proto si vyberte ten, který na stránce později použijete. Na Obr. 1 ukazuje zejména písmo Arial.

V editoru Libre Office, stejně jako v Open Office, se vkládání symbolů provádí prostřednictvím nabídky Vložit > Speciální znaky(obr. 2).

Rýže. 2. Speciální znaky v Libre Office

V okně vyberte symbol a klikněte na OK, poté se symbol vloží do upravovaného textu, odkud jej lze zkopírovat a vložit do HTML kódu.

Existují také speciální stránky, které poskytují znakovou sadu. Líbila se mi stránka www.utf8icons.com (obr. 3), nic nadbytečného, ​​symboly jsou seskupeny podle témat, každý symbol je zobrazen ve třech velikostech a je uveden vzhled pro různá písma (obr. 4).

Rýže. 3. Domovská stránka utf8icons.com

Rýže. 4. Popis vybraného symbolu

Chcete-li získat svůj vlastní symbol, klikněte na tlačítko „Kopírovat“ nebo jej jednoduše vyberte a zkopírujte pomocí Ctrl + C.

Ikony Nejprve vytvoříme horní menu obsahující ikony a popisky k němu a poté experimentujeme s jeho designem (příklad 1). V samotném menu není nic neobvyklého, kromě toho, že se místo obrázků vkládají symboly.

Příklad 1. Hlavní menu



Náboženství

Výsledek tohoto příkladu je znázorněn na Obr. 5.

Rýže. 5. Nabídka s ikonami

Co lze udělat pro návrh samotných ikon a při najetí na ně? Ano, to samé jako u běžného textu – změnit barvu textu, pozadí, parametry písma, obecně vše, co styly umožňují. Chcete-li tedy změnit barvu pozadí pod položkou nabídky a podle toho i ikonu, stačí přidat pozadí do stylu odkazu a také barvu pro kontrast (příklad 2).

Příklad 2. Styl pro změnu barvy pozadí a textu

Menu a:hover (pozadí: #ffe71a; barva: #000; )

Můžete také přejít do staré školy přidáním záře kolem ikon při umístění kurzoru. To se provádí pomocí vlastnosti text-shadow, jak je znázorněno v příkladu 3.

Příklad 3: Záře kolem textu

Nabídka a:hover .icon ( text-shadow: 0 0 15px #ff7900, 0 0 15px #ff7900, 0 0 15px #ff7900; )

Aby byla záře znatelnější, musel jsem třikrát opakovat nastavení stínu.

No, nezapomeňme na animaci, která je dnes v módě, a nechme naše ikony vesele rotovat a plynule měnit barvu (příklad 4).

Příklad 4: Animace vznášení

Ikona ( přechod: 1s; ) .menu a:hover .ikona ( barva: #ffe71a; -webkit-transform: rotation(360deg); transform: rotation(360deg); )

Obecně platí, že chování a design takových ikon závisí téměř výhradně na vaší fantazii.




Nahoru