di: Cesare Lamanna 23 Gennaio 2012
Sfruttando il modo in cui vengono definiti i bordi degli elementi tramite i CSS, è possibile creare facilmente forme triangolari.
Facendo qualche ricerca in rete, si scopre che i primi esperimenti su questo versante risalgono a diversi anni fa. Su questa pagina del sito di Mark Wilton Jones si fa addirittura riferimento a browser preistorici come Netscape 4 e IE 4/5.
Più recentemente tali tecniche hanno trovato spazio in contesti meno sperimentali, ovvero in scenari d'uso reali. Ci limitiamo a segnalare un bel tutorial di Codrops in cui queste forme alternative definiscono l'intero aspetto di un layout, oppure il post di John Rohan in cui la realizzazione di triangoli con i CSS è funzionale alla creazione di un classico fumetto (speech bubble).
Come si accennava all'inizio, per creare forme triangolari con i CSS sfruttiamo i bordi di un elemento, aumentandone lo spessore secondo le necessità e usando la possibilità di definire un colore trasparente. Vediamo un esempio:
L'analisi del codice usato per realizzare questo triangolo ci consente di spiegare la tecnica in dettaglio:
div#triangolo {
width: 0; height: 0; line-height: 0;
border-bottom: 80px solid blue;
border-left: 80px solid transparent;
border-right: 80px solid transparent;
}
Si parte nello specifico da un div (ma può essere un qualunque elemento blocco). Dobbiamo definire per prima cosa una larghezza, un'altezza e un'altezza di riga pari a 0:
width: 0; height: 0; line-height: 0;
Si passa poi ai bordi:
border-bottom: 80px solid blue; border-left: 80px solid transparent; border-right: 80px solid transparent;
Le dimensioni assegnate a ciascuno definiscono in prima istanza le dimensioni del triangolo, ma variandone i valori anche la sua forma (con tre valori identici si ottiene, ad esempio, un triangolo equilatero). Fondamentale è però il valore relativo al colore (il terzo). Nel nostro esempio il bordo inferiore (border-bottom) è blue, mentre per i bordi laterali (border-left e border-right) usiamo la keyword transparent (il colore visibile diventa così quello dello sfondo). Per il bordo superiore (border-top), che nell'esempio corrisponde alla punta, non definiamo alcuna regola, lasciando dunque il valore di default per il bordo, ovvero 0.
Possiamo così sintetizzare il procedimento:
width, height e line-height;transparent.Se, dunque, vogliamo un triangolo con la punta rivolta verso il basso
useremo questo codice:
div#triangolo2 {
width: 0;
height: 0;
line-height: 0px;
border-top: 80px solid blue;
border-left: 80px solid transparent;
border-right: 80px solid transparent;
}
Chiarito il funzionamento della tecnica, possiamo segnalare per concludere due ottime risorse: CSS3 Shapes e How To Create Different Shapes In CSS. Entrambe propongono una raccolta di snippet di codice da copiare, incollare e usare come base nei nostri progetti non solo per varie tipologie di triangoli, ma per tutta una serie di forme alternative. Il tutto usando solo i CSS!
Responsive Desing, la guidaProgettare siti da fruire su dispositivi diversi è imprescindibile... |
Guida CSS3Scoprire e usare al meglio tutte le novità dell'ultima versione dei... |
Guida CSS Tecniche essenzialiTesto, immagini, layout, form, liste, tabelle: soluzioni pronte per... |
Ogni mercoledì, direttamente nella tua e-mail: guide, articoli, tutorial, FAQ e approfondimenti tecnici su CSS e Web Design.
Iscriviti alla newsletter
|
|
Corso Webmaster base18 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |
|
|
Corso Webmaster base11 Giugno 2012 a Roma |