Come creare una bella icona con CSS3

Oggi, mi piacerebbe mostrarti un trucco pulito. Creeremo un'icona di documento con puro CSS3. Ancora meglio, questo effetto richiede solo un singolo elemento HTML.


Il piano di gioco

  1. Crea una scatola quadrata
  2. Arrotonda i bordi
  3. Usa pseudo elementi per creare un angolo arricciato
  4. Crea l'illusione del testo con una sfumatura a strisce

Iniziamo!


Passaggio 1: creare una scatola

Inizieremo aggiungendo il nostro singolo elemento HTML: un tag di ancoraggio. Questo ha senso, dal momento che molte icone servono anche da link.

 Icona del documento

Impostiamo le dimensioni un po 'arbitrarie per la nostra icona. Faremo 40x56px - semplicemente per questa demo. In un'applicazione del mondo reale, è probabile che tu voglia ridurre questo! Inoltre, tieni presente che dobbiamo aggiungere blocco di visualizzazione, poiché tutti i tag di ancoraggio sono in linea, per impostazione predefinita.

 .docIcon background: #eee; sfondo: gradiente lineare (in alto, #ddd 0, #eee 15%, #fff 40%, #fff 70%, #eee 100%); border: 1px solid #ccc; blocco di visualizzazione; larghezza: 40px; altezza: 56px; position: relative; margine: 42px auto; 

Nota che, sopra, stiamo impostando un contesto di posizionamento per lavorare a breve con gli pseudo elementi. Scoprirai che ho usato solo la sintassi CSS3 ufficiale per il gradiente. Probabilmente vorrai utilizzare anche i vari prefissi del browser. Per velocizzare le cose, puoi usare Prefixr.com o la sua API nel tuo editor di codice preferito. Copia semplicemente lo snippet di codice sopra, incollalo nella textarea di Prefixr e fai clic su Invio. Quindi sputerà tutte le varie proprietà prefissate, in questo modo:

 .docIcon background: #eee; background: -webkit-linear-gradient (in alto, #ddd 0, #eee 15%, #fff 40%, #fff 70%, #eee 100%); background: -moz-linear-gradient (in alto, #ddd 0, #eee 15%, #fff 40%, #fff 70%, #eee 100%); background: -o-linear-gradient (in alto, #ddd 0, #eee 15%, #fff 40%, #fff 70%, #eee 100%); background: -ms-linear-gradient (in alto, #ddd 0, #eee 15%, #fff 40%, #fff 70%, #eee 100%); sfondo: gradiente lineare (in alto, #ddd 0, #eee 15%, #fff 40%, #fff 70%, #eee 100%); border: 1px solid #ccc; blocco di visualizzazione; larghezza: 40px; altezza: 56 px; posizione: relativa; margine: 42px auto; 

Successivamente, aggiungiamo un po 'di lucentezza usando le ombre delle finestre CSS. Ho anche usato il indentatura del testo proprietà per nascondere il testo.

 .docIcon ? -webkit-box-shadow: inset rgba (255,255,255,0.8) 0 1px 1px; -moz-box-shadow: inset rgba (255,255,255,0.8) 0 1px 1px; box-shadow: inset rgba (255,255,255,0.8) 0 1px 1px; text-trattino: -9999em; 

Così lontano, abbiamo:


Passaggio 2: angoli arrotondati

Successivamente, dobbiamo creare un effetto angolo arrotondato. Aggiungi il seguente:

 .docIcon ? -webkit-border-radius: 3px 15px 3px 3px; -moz-border-radius: 3px 15px 3px 3px; border-radius: 3px 15px 3px 3px; 

Passando quattro valori, possiamo specificare i raggi superiore, destro, inferiore e sinistro, di conseguenza. Questo è simile al modo in cui applicheresti i margini o il riempimento.

Che ci dà?


Passaggio 3: un angolo arricciato

Per creare l'illusione di un angolo arricciato, utilizzeremo il contenuto generato o gli elementi pseudo.

Innanzitutto, aggiungi contenuto :prima la nostra icona. In questo caso, non è richiesto alcun testo specifico. Invece, dobbiamo creare una casella da 15px e applicare un gradiente di sfondo.

 .docIcon: before content: ""; blocco di visualizzazione; posizione: assoluta; inizio: 0; a destra: 0; larghezza: 15px; altezza: 15px; sfondo: #ccc; background: -webkit-linear-gradient (45deg, #fff 0, #eee 50%, #ccc 100%); background: -moz-linear-gradient (45deg, #fff 0, #eee 50%, #ccc 100%); background: -o-linear-gradient (45deg, #fff 0, #eee 50%, #ccc 100%); background: -ms-linear-gradient (45deg, #fff 0, #eee 50%, #ccc 100%); background: linear-gradient (45deg, #fff 0, #eee 50%, #ccc 100%); -webkit-box-shadow: rgba (0,0,0,0.05) -1px 1px 1px, inserto bianco 0 0 1px; -moz-box-shadow: rgba (0,0,0,0.05) -1px 1px 1px, inserto bianco 0 0 1px; box-shadow: rgba (0,0,0,0.05) -1px 1px 1px, inserto bianco 0 0 1px; border-bottom: 1px solid #ccc; border-left: 1px solid #ccc; 

Affinché il nostro contenuto generato possa ricevere anche il bordo arrotondato in alto a destra, dobbiamo, ancora una volta, applicare gli stessi raggi per allinearlo.

? -webkit-border-radius: 3px 15px 3px 3px; -moz-border-radius: 3px 15px 3px 3px; border-radius: 3px 15px 3px 3px;

Tada!


Passaggio 4: aggiunta di linee

Successivamente, useremo il :dopo elemento psuedo per aggiungere alcune linee tratteggiate per rappresentare il testo ingrandito. Applicare una larghezza del 60% e a margin-left e margin-right del 20% (che equivale al 100%). Successivamente, specifichiamo un'altezza e la posizioniamo a 0 0.

 .docIcon: after content: ""; blocco di visualizzazione; position: absolute; a sinistra: 0; top: 0; width: 60%; margine: 22 px 20% 0; altezza: 15px; 

Creare un set di linee è un po 'complicato. Se siamo intelligenti, però, possiamo usare i gradienti CSS per ottenere questo effetto. Innanzitutto, dividi l'altezza totale per cinque e imposta ciascun blocco con un riempimento solido. Fare riferimento all'immagine sotto per una esemplificazione più chiara di questo modo di pensare. Nifty, ay? È una buona tecnica avere nel tuo cinturone.

Linee multiple (strisce) con CSS3 Gradienst

 .docIcon: after ? sfondo: #ccc; background: -webkit-linear-gradient (in alto, #ccc 0, #ccc 20%, #fff 20%, #fff 40%, #ccc 40%, #ccc 60%, #fff 60%, #fff 80%, #ccc 80%, #ccc 100%); background: -moz-linear-gradient (in alto, #ccc 0, #ccc 20%, #fff 20%, #fff 40%, #ccc 40%, #ccc 60%, #fff 60%, #fff 80%, #ccc 80%, #ccc 100%); background: -o-linear-gradient (in alto, #ccc 0, #ccc 20%, #fff 20%, #fff 40%, #ccc 40%, #ccc 60%, #fff 60%, #fff 80%, #ccc 80%, #ccc 100%); background: -ms-linear-gradient (in alto, #ccc 0, #ccc 20%, #fff 20%, #fff 40%, #ccc 40%, #ccc 60%, #fff 60%, #fff 80%, #ccc 80%, #ccc 100%); sfondo: gradiente lineare (superiore, #ccc 0, #ccc 20%, #fff 20%, #fff 40%, #ccc 40%, #ccc 60%, #fff 60%, #fff 80%, #ccc 80 %, #ccc 100%); 

Abbiamo finito!

Dimostrazione dal vivo

Ti è piaciuto il post? Hai altri trucchi simili? In tal caso, collegali a loro nei commenti qui sotto.