Cum se utilizează Gradienții CSS pe Web

În acest tutorial veți afla despre utilizarea gradientelor de pe web. Vă voi da câteva exemple, câteva exerciții (cum ar fi cum să creați gradienți pentru granițe) și voi arunca, de asemenea, niște resurse utile, care vor face mai ușoare crearea de pante.

Urmăriți Tutorialul

 

Gradient de bază

În zilele trecute, nu a fost cu adevărat posibilă utilizarea gradientilor fără a se baza pe imagini, dar evoluțiile în CSS înseamnă că acum este simplu și demn de creat gradienți din foile noastre de stil.

În forma lor cea mai simplă, definim gradienții ca imagini de fundal. Am setat imaginea de fundal (doar folosind stenograma fundal este absolut bine) ca fiind fie a liniar gradient sau a radial gradient, apoi vom trece în culorile de început și de sfârșit:

.caseta fundal: gradient linear (# 000046, # 1cb5e0); 

În mod implicit, un gradient liniar rulează de sus în jos, oferindu-ne ceva de genul:

Putem schimba direcția adăugând un nou parametru înaintea culorilor, de exemplu:

.caseta fundal: gradient linear (spre dreapta, # 000046, # 1cb5e0); 

În mod similar, schimbarea acestui parametru să fie citită la dreapta sus ar crea un gradient diagonal. Puteți face exact acea diagonală, specificând ceva asemănător 45deg (sau orice unghi ales).

Luând lucrurile un pas mai departe, nu trebuie să vă opriți la doar două culori. Și puteți folosi și numele de culoare, după cum urmează:

.caseta fundal: gradient liniar (spre dreapta, portocaliu, # ec38bc, # 7303c0, cyan); 

În acest caz, fiecare dintre cele patru culori va ocupa o cantitate egală de spațiu disponibil, dându-ne un gradient neted și echilibrat.

Dacă nu dorim distribuție uniformă, dar dorim ca o culoare să ocupe mai mult spațiu decât alta, putem specifica acea valoare ca procent direct după culoare:

.caseta fundal: gradient liniar (spre dreapta, # f05053 80%, # e1eec3); 

Dându-ne:

Radiale Gradients

Mergând mai departe, putem folosi tot ceea ce am învățat până acum și îl putem schimba radial în schimb. Oprirea liniar gradient pentru radial gradient este tot ce trebuie să faceți aici.

.caseta fundal: gradient radial (# fdbb2d, # 22c1c3); 

Acest gradient radial se extinde la elementul părinte, astfel încât acest dreptunghi se termină cu un gradient asemănător unei elipse. Pentru a constrânge acest gradient astfel încât să rămână un cerc, indiferent de proporțiile părintelui, putem adăuga cerc cuvinte cheie cum ar fi:

.caseta fundal: gradient radial (cerc, # fdbb2d, # 22c1c3); 

Dacă mergem mai departe, putem specifica și sursa gradientului cercului, astfel încât acesta să înceapă (de exemplu) în partea stângă sus a părintelui.

.caseta fundal: gradient radial (cerc în partea stângă sus, # fdbb2d, # 22c1c3); 

Efectul este subtil, dar diferența dintre acest lucru și un gradient liniar simplu ar putea fi exact ceea ce căutați.

Utilizarea reală a lumii

Unde putem folosi gradientele în unele moduri interesante? 

1. Suprapunerea eroului

Iată un exemplu de suprapunere, unde gradientul este puțin transparent (utilizează RGBA valori) și se află pe o fotografie.

fundal proprietatea poate accepta mai multe valori care formează un teanc, primul fiind cel mai de sus și ultima descoperire în partea de jos a grămezii. Dacă definim mai întâi un gradient, acesta va sta pe partea de sus a ceea ce vom defini ulterior. Uitați-vă la acest fragment și vedeți dacă puteți afla ce se întâmplă:

.hero fundal: gradient liniar (spre dreapta, rgba (75, 123, 211, 0.5), rgba (22, 215, 177, 0.3)), url (https: //bg.jpg); 

Iată efectul rezultat:

2. Gradient pe text

Având un gradient pe text este un efect mare, deși nu este în întregime susținut într-un sens pur. În schimb, ne bazăm pe fundal clip proprietate (și prefixul său -webkit-background-clip prieten), care este ceva de hack, dar functioneaza foarte frumos.

Începem cu o bucată de text (an h1 în acest caz) și aplicați un gradient pentru a lui fundal. fundal clip proprietate, având o valoare de text, apoi elimină fundalul din întregul bloc, cu excepția zonei din spatele textului. Textul culoare ascunde fundalul, desigur, așa că reușim transparent pentru a lăsa gradientul să strălucească prin:

h1 background-image: gradient linear (la dreapta, # 0cebeb, # 20e3b2, # 29ffc6); -webkit-background-clip: text; fundal-clip: text; culoare: transparent; 

3. Frontiere de gradient

Gradienții de graniță sunt ceva pe care l-ați fi văzut pe Envato Elements și sunt o modalitate excelentă de a vă convinge vizual interfața. Este subtil făcut, dar aruncați o privire la gradientul liniar albastru-purpuriu de pe marginea acestor butoane: 

Pentru a realiza acest efect, există câteva abordări. Primul se bazează pe faptul că noi oferim mai întâi un element (o ancoră, un container, orice) o graniță transparentă. Apoi aplicăm gradientul nostru folosind border-image proprietate. În cele din urmă, am stabilit border-image-felie la 1, pentru ca gradientul să utilizeze conturul complet al frontierei.

.card1 margine: 5px solid transparent; imagine frontală: gradient liniar (spre fund, # 22c1c3, # fdbb2d); Frontieră-imagine-felie: 1; 

Iată rezultatul:

Cu toate acestea, există o serie de probleme cu această abordare. in primul rand, border-image nu este acceptat universal în toate browserele, mai ales versiunile mai vechi ale IE. În al doilea rând, această abordare nu vă va permite să adăugați border-radius cum vedeți în Interfața Envato Elements. Deci, să ne uităm la o abordare alternativă.

Începem prin a da div a noastră poziție: relativă. Apoi adăugăm un pseudo-element, dând că a negativ poziția absolută a oricărei opțiuni pe care am ales lățimea graniței să fie (în acest caz 5px):

.card2 :: după content: "; position: absolute; top: -5px; bottom: -5px; left: -5px; right: -5px;

Acest lucru ne va da un bloc de gradient solid care acoperă întreaga div. Adăugarea unui z-index din -1 va asigura că blocul de gradient se mișcă în spatele div. 

Înainte (phew, există o mulțime de pași pentru acest) adăugăm a border-radius la pseudo-element egal cu cel al părintelui său (să aplicăm câte 10px fiecare). Și apoi îi oferim părinților un fundal al ceea ce vrem; același lucru ca și fundalul paginii o va face să pară transparentă.

În cele din urmă, ne întoarcem din nou la prietenul nostru fundal clip, aplicând-o părintelui și de data aceasta oferindu-i o valoare padding-box.  Această ultimă acțiune vă asigură că umplerea lui div merge până la marginea frontierei și nu mai departe.

Deci, această abordare finală nu este de fapt o frontieră în adevăratul sens, dar atinge efectul pe care îl căutăm.

O a treia abordare este posibilă, de data aceasta folosind box-shadow pentru a obține efectul. Vă recomandăm să aruncați o privire la amestecul de granițe de graniță de către John Grishin pe CodePen pentru a vedea cum funcționează acest lucru.

Concluzie

Deci te duci! Acest primer pe gradientele CSS vă oferă începutul de care aveți nevoie, plus o privire asupra modului în care puteți utiliza gradiente pe web. Dacă ați văzut alte utilizări creative ale declivităților aflate în sălbăticie, vă rugăm să le aruncați în secțiunea de comentarii.

Resurse utile

  • Gradienți Web: O colecție gratuită de 180 de gradienți liniari pe care le puteți utiliza ca
    backdrop-uri de conținut în orice parte a site-ului dvs. web.
  • UI Gradients: Gradienți de culoare frumoși pentru design și cod
  • Generator gradient CSS
  • PostCSS Autoprefixer
  • Border-gradient mixin: de John Grishin