Cum se creează o pictogramă frumoasă cu CSS3

Astăzi, aș vrea să vă arăt un truc bun. Vom crea o pictogramă document cu CSS3 pură. Chiar mai bine, acest efect va necesita doar un singur element HTML.


Planul jocului

  1. Creați o cutie pătrată
  2. În jurul marginilor
  3. Utilizați pseudo elemente pentru a crea un colț curbat
  4. Creați iluzia de text cu un gradient dungat

Să începem!


Pasul 1: Creați o casetă

Vom începe prin adăugarea elementului HTML unic: o etichetă de ancorare. Acest lucru are sens, deoarece majoritatea icoanelor servesc și pentru legături.

 Document Icon

Să stabilim dimensiunile oarecum arbitrare pentru pictograma noastră. Vom face 40x56 px - pur și simplu pentru această demonstrație. Într-o aplicație din lumea reală, probabil veți dori să reduceți acest lucru! De asemenea, rețineți că trebuie să adăugăm afișare: blocare, deoarece toate etichetele de ancorare sunt în linie, în mod implicit.

 .docIcon background: #eee; fundal: gradient liniar (top, #ddd 0, #eee 15%, #fff 40%, #fff 70%, #eee 100%); frontieră: 1px solid #ccc; display: block; lățime: 40px; înălțime: 56px; Poziția: relativă; margine: 42 pixeli automat; 

Rețineți că, mai sus, setăm un context de poziționare pentru a lucra în scurt timp cu pseudo elemente. Veți observa că am folosit doar sintaxa oficială CSS3 pentru gradient. Veți dori probabil să utilizați și diferitele prefixe ale browserului. Pentru a grăbi lucrurile, puteți folosi Prefixr.com sau API-ul acestuia în editorul dvs. de cod preferat. Pur și simplu copiați fragmentul de cod de mai sus, inserați-l în textarea lui Prefixr și faceți clic pe Enter. Acesta va scuipa apoi toate proprietățile prefixate diferite, cum ar fi:

 .docIcon background: #eee; fundal: -webkit-gradient linear (top, #ddd 0, #eee 15%, #fff 40%, #fff 70%, #eee 100%); fundal: -moz-linear-gradient (top, #ddd 0, #eee 15%, #fff 40%, #fff 70%, #eee 100%); fundal: -o-gradient linear (top, #ddd 0, #eee 15%, #fff 40%, #fff 70%, #eee 100%); fundal: -ms-linear-gradient (top, #ddd 0, #eee 15%, #fff 40%, #fff 70%, #eee 100%); fundal: gradient liniar (top, #ddd 0, #eee 15%, #fff 40%, #fff 70%, #eee 100%); frontieră: 1px solid #ccc; afișare: bloc; lățime: 40px; înălțime: 56px; poziție: relativă; margine: 42 pixeli automat; 

Apoi, să adăugăm câteva strălucire folosind umbrele cutiei CSS. Am folosit de asemenea text-liniuță proprietate pentru a ascunde textul.

 .docIcon ? -webkit-box-shadow: inscripție 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-liniuță: -9999em; 

Departe, avem:


Pasul 2: colțuri rotunjite

Apoi, trebuie să creați un efect de colț rotunjit. Adăugați următoarele:

 .docIcon ? -webkit-border-radius: 3px 15px 3px 3px; -moz-border-radius: 3px 15px 3px 3px; raza de graniță: 3px 15px 3px 3px; 

Prin trecerea a patru valori, putem specifica raza de sus, dreapta, fund și stânga, în consecință. Acest lucru este similar cu modul în care aplicați margini sau plăcuțe.

Ceea ce ne dă?


Pasul 3: Un colț curbat

Pentru a crea iluzia unui colț curbat, vom folosi conținutul generat sau pseudo elemente.

Mai întâi, adăugați conținut :inainte de icoana noastra. În acest caz, nu solicităm niciun text specific. În schimb, trebuie să creați o casetă de 15px și să aplicați un gradient de fundal.

 .docIcon: înainte de content: ""; afișare: bloc; poziția: absolută; top: 0; dreapta: 0; lățime: 15px; înălțime: 15px; fundal: #ccc; fundal: -webkit-gradient linear (45deg, #fff 0, #eee 50%, #ccc 100%); fundal: -moz-linear-gradient (45deg, #fff 0, #eee 50%, #ccc 100%); fundal: -o-gradient linear (45deg, #fff 0, #eee 50%, #ccc 100%); fundal: -ms-linear-gradient (45deg, #fff 0, #eee 50%, #ccc 100%); fundal: gradient linear (45deg, #fff 0, #eee 50%, #ccc 100%); -webkit-box-shadow: rgba (0,0,0,0,05) -1px 1px 1px, inset alb 0 0 1px; -moz-box-shadow: rgba (0,0,0,0,05) -1px 1px 1px, inset alb 0 0 1px; box-shadow: rgba (0,0,0,0,05) -1px 1px 1px, inset alb 0 0 1px; frontieră-fund: 1px solid #ccc; frontieră-stânga: 1px solid #ccc; 

Pentru ca conținutul nostru generat să primească și marginea rotundă de sus-dreapta, trebuie să aplicăm din nou aceleași raze pentru a alinia.

? -webkit-border-radius: 3px 15px 3px 3px; -moz-border-radius: 3px 15px 3px 3px; raza de graniță: 3px 15px 3px 3px;

Tada!


Pasul 4: Adăugarea liniilor

Apoi, vom folosi :după elementul psuedo pentru a adăuga câteva linii punctate pentru a reprezenta textul mărit. Aplicați o lățime de 60% și a -Marginea din stânga și margin-dreapta de 20% (care este egal cu 100%). Apoi, specificăm o înălțime și o poziționăm 0 0.

 .docIcon: după content: ""; display: block; Poziția: absolută; stânga: 0; top: 0; lățime: 60%; margine: 22px 20% 0; înălțime: 15px; 

Crearea unui set de linii este un pic dificil. Dacă suntem inteligenți, cu toate acestea, putem folosi gradienții CSS pentru a obține acest efect. Mai întâi, împărțiți înălțimea totală cu cinci și setați fiecare bloc cu o umplutură solidă. Consultați imaginea de mai jos pentru o exemplificare mai clară a acestei gândiri. Nifty, nu? Este o tehnică frumoasă pe care o aveți în centura dvs. de instrumente.

Linii multiple (Stripes) cu CSS3 Gradienst

 .docIcon: după ? fundal: #ccc; fundal: -webkit-gradient linear (top, #ccc 0, #ccc 20%, #fff 20%, #fff 40%, #ccc 40%, #ccc 60%, #fff 60%, #fff 80% #ccc 80%, #ccc 100%); fundal: -moz-linear-gradient (top, #ccc 0, #ccc 20%, #fff 20%, #fff 40%, #ccc 40%, #ccc 60%, #fff 60%, #fff 80% #ccc 80%, #ccc 100%); fundal: -o-gradient linear (top, #ccc 0, #ccc 20%, #fff 20%, #fff 40%, #ccc 40%, #ccc 60%, #fff 60%, #fff 80% #ccc 80%, #ccc 100%); fundal: -ms-gradient liniar (sus, #ccc 0, #ccc 20%, #fff 20%, #fff 40%, #ccc 40%, #ccc 60%, #fff 60%, #fff 80% #ccc 80%, #ccc 100%); fundal: gradient liniar (top, #ccc 0, #ccc 20%, #fff 20%, #fff 40%, #ccc 40%, #ccc 60%, #fff 60%, #fff 80%, #ccc 80 %, #ccc 100%); 

Am terminat!

Live Demo

Te-ai bucurat de post? Au alte trucuri similare? În caz afirmativ, trimiteți-le la comentariile de mai jos.

Cod