Gradienți CSS
O trecere lină între două sau mai multe culori în interiorul unui element se obține cu funcțiile de gradient CSS, pe care le dai proprietății background-image.
Există trei tipuri de gradienți:
- Gradienți Liniari — culorile se schimbă de-a lungul unei linii care merge în jos, în sus, la stânga, la dreapta sau pe diagonală
- Gradienți Radiali — culorile se extind spre exterior dintr-un punct central
- Gradienți Conici — culorile se rotesc în jurul unui punct central
Funcția CSS linear-gradient()
Apelează funcția CSS linear-gradient() atunci când culorile trebuie să se schimbe de-a lungul unei linii drepte, fie că aceasta merge în jos, în sus, la stânga, la dreapta sau pe diagonală.
Opririle de culoare sunt culorile care se amestecă, și sunt necesare cel puțin două. O direcție (sau un unghi) și un punct de pornire sunt adăugiri opționale.
De Sus în Jos (implicit)
În acest gradient liniar, roșul stă în partea de sus a elementului și se amestecă în jos, până la galbenul din partea de jos.
Rezultat: pagină HTML completă
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Linear Gradient - Top to Bottom</title>
</head>
<body>
<h1>Linear Gradient - Top to Bottom</h1>
<div id="grad" style="height: 200px; background-image: linear-gradient(to bottom, red, yellow);"></div>
</body>
</html>
De Jos în Sus
Inversarea direcției pune roșul în partea de jos a elementului, iar amestecul urcă până ajunge la galbenul din partea de sus.
Rezultat: pagină HTML completă
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Linear Gradient - Bottom to Top</title>
</head>
<body>
<h1>Linear Gradient - Bottom to Top</h1>
<div id="grad" style="height: 200px; background-image: linear-gradient(to top, red, yellow);"></div>
</body>
</html>
De la Stânga la Dreapta
Mergând în lateral, acest gradient liniar începe cu roșu pe marginea din stânga și ajunge la galben pe marginea din dreapta.
Rezultat: pagină HTML completă
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Linear Gradient - Left to Right</title>
</head>
<body>
<h1>Linear Gradient - Left to Right</h1>
<div id="grad" style="height: 200px; background-image: linear-gradient(to right, red, yellow);"></div>
</body>
</html>
Diagonal
Aici amestecul traversează elementul pe diagonală, cu roșu în colțul din stânga sus și galben în colțul din dreapta jos.
Rezultat: pagină HTML completă
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Linear Gradient - Diagonal</title>
</head>
<body>
<h1>Linear Gradient - Diagonal</h1>
<div id="grad" style="height: 200px; background-image: linear-gradient(to bottom right, red, yellow);"></div>
</body>
</html>
Sintaxă
background-image: linear-gradient(direction, color-stop1, color-stop2, ...);
Gradient Liniar - Folosind Unghiuri
Direcțiile predefinite (to bottom, to top, to right, to left etc.) pot fi înlocuite cu o valoare angle atunci când ai nevoie de un control mai fin asupra direcției în care arată gradientul.
- „to top” corespunde cu 0deg
- „to right” corespunde cu 90deg
- „to bottom” corespunde cu 180deg
- „to left” corespunde cu 270deg
Exemplu
Cu unghiul setat la 180deg, acest gradient liniar trece de la roșu la galben.
Rezultat: pagină HTML completă
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Linear Gradient - Using Angles</title>
</head>
<body>
<h1>Linear Gradient - Using Angles</h1>
<div id="grad" style="height: 200px; background-image: linear-gradient(180deg, red, yellow);"></div>
</body>
</html>
Sintaxă
background-image: linear-gradient(angle, color-stop1, color-stop2);
Gradient Liniar - Mai Multe Opriri de Culoare
Un gradient liniar nu este limitat la două opriri de culoare.
Trei Opriri de Culoare
În acest gradient, trei culori merg de sus în jos: roșu, galben și verde.
Rezultat: pagină HTML completă
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Linear Gradient - Multiple Color Stops</title>
</head>
<body>
<h1>Linear Gradient - Multiple Color Stops</h1>
<div id="grad" style="height: 200px; background-image: linear-gradient(red, yellow, green);"></div>
</body>
</html>
Gradient Curcubeu
Aici toate culorile curcubeului merg de la stânga la dreapta, cu un text așezat deasupra lor.
Rezultat: pagină HTML completă
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Linear Gradient - Rainbow</title>
</head>
<body>
<h1>Linear Gradient - Rainbow</h1>
<div id="grad" style="height: 200px; background-image: linear-gradient(to right, red, orange, yellow, green, blue, indigo, violet); text-align: center; line-height: 200px; color: white; font-size: 30px;">
Rainbow Background
</div>
</body>
</html>
Gradient Liniar - Transparență
Efectele de estompare sunt posibile pentru că gradienții CSS pot include transparență.
Setează opririle de culoare cu funcția rgba(), a cărei ultimă valoare controlează transparența pe o scară de la 0 la 1: 0 înseamnă complet transparent, iar 1 înseamnă complet opac (fără transparență).
Exemplu
De la stânga la dreapta, acest gradient începe complet transparent și se termină cu roșu complet.
Rezultat: pagină HTML completă
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Linear Gradient - Transparency</title>
</head>
<body>
<h1>Linear Gradient - Transparency</h1>
<div id="grad" style="height: 200px; background-image: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1));"></div>
</body>
</html>
Funcția CSS repeating-linear-gradient()
Ca să repeți un tipar de gradient liniar, folosește funcția CSS repeating-linear-gradient().
Exemplu
Aici tiparul repetat este roșu, apoi galben la 10%, apoi verde la 20%.
Rezultat: pagină HTML completă
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Repeating Linear Gradient</title>
</head>
<body>
<h1>Repeating Linear Gradient</h1>
<div id="grad" style="height: 200px; background-image: repeating-linear-gradient(red, yellow 10%, green 20%);"></div>
</body>
</html>