Utilzzare un iconic font per disegnare le icone con HTML5 e FontAwesome

di Andrea Colaci,

In uno script precedente abbiamo visto come sia possibile utilizzare un font personalizzato la direttiva @font-face di CSS3: https://www.html5italia.com/script/42/Font-Layout-Personalizzati-CSS3.aspx

Una tecnica molto diffusa per disegnare le icone, prevede di utilizzare un iconic font per le immagini, beneficiando della possibilità di adattare le stesse in maniera vettoriale, proprio come avverrebbe per un font "normale".

La presenza di diversi dispositivi con pixel-density differenti (es. display Retina) può infatti rendere necessario adottare alcuni accorgimenti per la gestione delle dimensioni di un immagine, come dimostrato nello script: https://www.html5italia.com/script/56/Adattare-Immagini-Base-Pixel-Density-HTML5-CSS3.aspx

Adottare un iconic font per la gestione delle immagini porta i seguenti benefici:
- portabilità e "peso" ridotto
- controllo dell'aspetto mediante css (icona, colore, dimensioni, ombreggiatura...)
- mantenimento dell'aspetto e dei dettagli a qualsiasi dimensione (scalable vector graphics)
- supporto dei display ad alta risoluzione

Esistono molteplici iconic font gratuiti e a pagamento che consentono diverse possibilità di estensione, nell'esempio abbiamo utilizzato Font Awesome disponibile qui: http://fortawesome.github.com/Font-Awesome/

Con gli iconic font si possono ottenere layout molto gradevoli e, soprattutto, portabili sui diversi tipi di display:


Di seguito lo script dell'esempio:

HTML
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Using iconic font</title>
<link rel="stylesheet" href="https://raw.github.com/FortAwesome/Font-Awesome/master/css/font-awesome.min.css" type="text/css"/>
  
</head>
<body>
  <div class="headItem">
    <span class="space1">Code</span>
    <span class="space2">Description</span>
    <span class="space1">Price</span></div>
  <div class="item">
    <span class="space1">code1</span>
    <span class="space2">article one</span>
    <span class="space1">100.00 ¤</span>
    <a href="#" class="button addtocart"><i class="icon-shopping-cart icon-large" title="add"></i> add to cart</a>
  </div>
  <div class="item">
    <span class="space1">code2</span>
    <span class="space2">article two</span>
    <span class="space1">120.00 ¤</span>
    <a href="#" class="button addtocart"><i class="icon-shopping-cart icon-large" title="add"></i> add to cart</a>
  </div>
  <div class="item">
    <span class="space1">code3</span>
    <span class="space2">article three</span>
    <span class="space1">115.00 ¤</span>
    <a href="#" class="button addtocart"><i class="icon-shopping-cart icon-large" title="add"></i> add to cart</a>
  </div>
    <div class="footerItem">
    <span class="space1"></span>
    <span class="space2"></span>
    <span class="space1"></span>
    <a href="#" class="button checkout"><i class="icon-arrow-right icon-large" title="add"></i> Checkout</a>
  </div>
</body>
</html>

CSS
body{
  font-family: helvetica;
}

a:link{
  text-decoration:none;

}

.button{
  border-radius: 3px;
  padding-left: 10px;
  padding-right: 10px;
  padding-top: 5px;
  padding-bottom: 5px;
 }

.checkout{
  color:black;
  background-color: gold;
}

.addtocart{
  color: white;
  background-color: dodgerblue;
}

.space1{
  display:inline-block;
  width:100px; 
}

.space2{
  display:inline-block;
  width:200px;
}

.headItem{
  border-bottom:2px solid gray;
  padding:7px;
}

.item{
  border-bottom:2px dotted gray;
  padding:7px;
}

.footerItem{
  margin-top:30px;
  padding:7px;
}

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi