En guide til bedre og skarpere UI-ikoner med webfonter
Hvis du er kjent med bruk av bitmap-bildeformater (som PNG og GIF) for å vise ikoner på et nettsted, vil du også være kjent med sine mangler. Først av alt, avhengig av dimensjonen og hvor mange fargedata som ikonet har, kan en filstørrelse for en fil være svært stor.
Hvis vi har for mange ikoner til å sette inn et nettsted, vil det også potensielt redusere nettsidenes ytelse, da mange HTTP-forespørsler må utføres av nettleseren. Selv om dette problemet kan løses med CSS sprite, er filstørrelsen fortsatt stor.
Bitmap-ikonet har også mangler i fleksibilitet og skalerbarhet; la oss si at vi må forstørre eller zoome ikonet til et visst nivå, eller se det gjennom en svært høy skjermoppløsning som for eksempel på netthinnen. ikonet vil definitivt vise seg å være uskarpt.
Vel, hvis du tar noen av disse sakene i betraktning, må du sannsynligvis bruke ikonfonter.
Bruke ikonfonter
en ikon skrifttype er et sett med ikoner pakket i en web skrifttype som senere kan legges inn på et nettsted ved hjelp av @ Font-face
. Som Chris på CSS-trick har påpekt, er det mange fordeler med å bruke skrift over bildet for å levere ikoner;
- Font er et vektorbasert objekt som av sin natur er oppløsningsuavhengig, så ikonet vil forbli så skarpt i forskjellige skjermoppløsninger, inkludert svært høye skjermoppløsninger (som retina-nivå).
- Den er også skalerbar, slik at den kan forstørres på mange nivåer uten å miste kvalitet og presisjon.
- Siden ikonet er i utgangspunktet en skrifttype, Vi kan også kontrollere farge, gjennomsiktighet, tekstskygge og til og med endre størrelsen på det gjennom stilarket
- Vi kan også animere ikonet med CSS3.
- Ikonet kalles med
@ Font-face
regel som har blitt støttet fra så tidlig som Internet Explorer 4 (med .eot). - Mindre HTTP-forespørsel og lavere filstørrelse.
Her er noen av de beste gratis ikonfonter som vi finner:
- Font Awesome
- IcoMoon
- Sosiale medier Ikoner
- Zurb Foundation Ikoner
Pass på at du har sjekket og fulgt lisensen før du legger den inn på nettstedet ditt for å ære forfatterens tid og hardt arbeid.
@ font-face-regelen
Som vi har nevnt, er ikonene innebygd med @ Font-face
styre gjennom stilarket som definerer nytt font-family
. I det følgende eksemplet vil vi bruke websymbolene;
@ font-face font-family: 'WebSymbolsRegular'; src: url ('skrifter / websymboler-vanlig-webfont.eot'); src: url ('fonter / websymbols-regular-webfont.eot? #iefix') format ('embedded-opentype'), url ('fonter / websymbols-regular-webfont.woff') format format ('skrifttyper / websymboler-regular-webfont.ttf') format ('truetype'), format ('svg') for url ('fonter / websymboler-regular-webfont.svg # WebSymbolsRegular');
Da, i HTML-dokumentet, trenger vi bare å legge til tegnene som representerer ikonet, og heller enn å bruke det nye font-family
Det er mye i dokumentet, vi kan gjøre mer spesifikt ved å legge til en ekstra klasse for enkelte elementer som ikonet må gjengis inn i, slik som det;
- h
- Jeg
- j
- EN
- Jeg
Tilbake til stilarket definerer vi det nye font-family
for den klassen som vi nettopp har lagt til:
.ikonfont font-family: WebSymbolsRegular; skriftstørrelse: 12pt;
- Demo @ font-face
Bruke Pseudo-elementer
Hvis ikonet er behandlet som sideelementet, kan vi også levere ikonet gjennom pseudo-element. Forutsatt at HTML-oppslaget vårt er som følger:
- Svare
- Svar alle
- Framover
- Vedlegg
- Bilde
Vi kan gjøre det på denne måten i stilarket:
ul.icon-font.pseudo li: før font-family: WebSymbolsRegular; margin-høyre: 5px; ul.icon-font.pseudo li: nth-child (1): før innhold: "h"; ul.icon-font.pseudo li: nth-child (2): før innhold: "jeg"; ul.icon-font.pseudo li: nth-child (3): før innhold: "j"; ul.icon-font.pseudo li: nth-child (4): før innhold: "A"; ul.icon-font.pseudo li: nth-child (5): før innhold: "I";
- Demo Pseudo-element
Privat bruk Unicode
Det er en situasjon der ikonene ikke var innebygd i bokstaver (A, B, C, D, etc.), men ble innebygd i Unicode Private Use for å minimere sammenstøt mellom tegnene. Som i FontAwesome har forfatteren heldigvis lagt til alle tegnkodene i stilarket, som ser ut som dette;
.ikon-glass: før innhold: "\ f0c6";
Men når vi trenger å legge inn ikonet direkte i HTML, noe som følgende kode \ f0c6
vil ikke gjengi det spisse ikonet, da det ikke er et gyldig tegn kodet i HTML.
HTML trenger en numerisk referanse markup å gjengi spesialtegn. Vi har dekket litt om det i vår tidligere veiledning på CSS3 Knapper; denne karakteren er prefixed med en kombinasjon av et forsterkende tegn (&
), et hash-tegn (#
) og en x
deretter etterfulgt av det heksadesimale tall som representerer tegnet.
For eksempel, f0c6
er et heksadesimalt tall, så numerisk tegnreferanse i HTML vil være & # Xf0c6;
, i FontAwesome den koden vil vise ikon for papirklipp, som så;
- Demo Unicode
Font Subsetting
Symbolene i samlingen er kanskje ikke alle nødvendige. I så fall kan vi slippe de ubrukte tegnene ved å underkaste skrifttypen som vil også resulterer i lavere skriftfilstørrelser. Heldigvis er det et praktisk verktøy fra FontSquirrel for å gjøre denne jobben lett, @ font-face generator.
Etter at du har gått til siden og lagt til fonten, velger du Ekspert. Du vil se flere alternativer; å velge Tilpasset subsetting.
I dette eksemplet bruker vi sosioliskfonten til å vise sosiale medierikoner på nettstedet vårt, men ikonene vi trenger er bare Dribble, Facebook og Twitter som henholdsvis er representert av disse tegnene; d, f og t. Så, sett disse tegnene i inntastingsfeltet Single Characters som følger:
Og vi er ferdige. Nå kan vi laste ned skrifttypen, og i mitt tilfelle har skriftstørrelsen vist seg å være bare 3Kb til 5Kb. Husk også at de eneste tegnene som vil bli gjengitt til et ikon er bare d, f og t, mens de andre tegnene kommer til å bare være et vanlig brev.
Endelig tanke
En ting vi ikke kan gjøre på denne praksisen, er å legge til svært detaljerte effekter som dette på ikonet.
Men hvis vår generelle design ikke krever detaljer på det nivået, kan denne tilnærmingen være en bedre måte å betjene ikoner på nettsteder. Den har fleksibilitet, skalerbarhet, er netthinnen klar med en svært liten filstørrelse, hva mer kan vi be om?
Til slutt, hvis du vil dykke dypere inn i dette emnet, har vi satt sammen noen nyttige referanser, så vel som vår demo og kildekode for nedlasting.
- Hvordan lage ditt eget ikon Webfont - WebDesignerDepot.com
- Viser fonter og datadata - 24 veier
- Privat bruk Unicode - Wikipedia
- Demo
- Last ned kilde