CodeGym /Kursy /Frontend SELF PL /Funkcje min(), max() oraz clamp()

Funkcje min(), max() oraz clamp()

Frontend SELF PL
Poziom 32 , Lekcja 1
Dostępny

7.1 Funkcja min()

Funkcja min() zwraca najmniejszą wartość z listy argumentów. Jest to przydatne do ustawiania wartości, które nie przekraczają określonego limitu.

Składnia:

    
      selektor {
        właściwość: min(wartość1, wartość2 ...);
      }
    
  

Przykład użycia:

W tym przykładzie szerokość bloku nie będzie większa niż 300 pikseli, ale jeśli 100% elementu rodzica jest mniejsze niż 300 pikseli, zostanie użyta wartość 100%:

CSS
    
      /* Szerokość bloku nie większa niż 300px, ale nie mniejsza niż 100px */

      .block {
        width: min(300px, 100%);
      }
    
  

Przykład 2: Ograniczenie rozmiaru czcionki

W tym przykładzie rozmiar czcionki nie będzie większy niż 2em, ale jeśli 5% szerokości okna przeglądarki jest mniejsze, zostanie użyta ta wartość:

CSS
    
      .text {
        font-size: min(2em, 5vw);
      }
    
  

7.2 Funkcja max()

Funkcja max() zwraca największą wartość z listy argumentów. Jest to przydatne do ustawiania wartości, które nie spadają poniżej określonego limitu.

Składnia:

    
      selektor {
        właściwość: max(wartość1, wartość2, ...);
      }
    
  

Przykład użycia

W tym przykładzie szerokość bloku nie będzie mniejsza niż 200 pikseli, ale jeśli 50% szerokości elementu rodzica jest większe niż 200 pikseli, zostanie użyta wartość 50%:

CSS
    
      /* Szerokość bloku nie mniejsza niż 200px, ale może być większa */
      .block {
        width: max(200px, 50%);
      }
    
  

Przykład 2: Minimalny rozmiar czcionki

W tym przykładzie rozmiar czcionki nie będzie mniejszy niż 1.5em, ale jeśli 2% szerokości okna przeglądarki jest większe, zostanie użyta ta wartość:

CSS
    
      .title {
        font-size: max(1.5em, 2vw);
      }
    
  

7.3 Funkcja clamp()

Funkcja clamp() zwraca wartość ograniczoną minimalną i maksymalną wartością. Przyjmuje trzy argumenty: wartość minimalną, preferowaną wartość i wartość maksymalną.

Składnia:

    
      selektor {
        właściwość: clamp(min, wyrażenie, max);
      }
    
  

Przykład użycia

W tym przykładzie rozmiar czcionki będzie się zmieniać w zależności od szerokości okna przeglądarki: minimalnie 12 pikseli, maksymalnie 24 piksele, a preferowana wartość — 2% szerokości okna:

CSS
    
      /* Czcionka o rozmiarze od 12px do 24px, w zależności od szerokości ekranu */

      .text {
        font-size: clamp(12px, 2vw, 24px);
      }
    
  

Przykład 2: Ograniczenie szerokości bloku

W tym przykładzie szerokość bloku będzie się zmieniać w zależności od szerokości elementu rodzica, ale nie mniej niż 200 pikseli i nie więcej niż 600 pikseli:

CSS
    
      .box {
        width: clamp(200px, 50%, 600px);
      }
    
  

7.4 Przykład pełnej implementacji

CSS
    
      .container {
        display: flex;
        flex-direction: column;
        gap: 20px;
        padding: 20px;
      }

      .box {
        background-color: #3498db;
        color: white;
        padding: 10px;
        text-align: center;
        width: clamp(200px, 50%, 600px);
      }

      .text {
        font-size: clamp(1em, 2vw, 2em);
      }

      .sidebar {
        background-color: #2ecc71;
        color: white;
        padding: 10px;
        text-align: center;
        width: max(200px, 30%);
      }

      .text-small {
        font-size: min(2em, 5vw);
      }
    
  
HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Przykład użycia funkcji min(), max() i clamp()</title>
          <link rel="stylesheet" href="styles.css">
        </head>
        <body>
          <div class="container">
            <div class="box">Szerokość: clamp(200px, 50%, 600px)</div>
            <p class="text">Rozmiar czcionki: clamp(1em, 2vw, 2em)</p>
            <div class="sidebar">Szerokość: max(200px, 30%)</div>
            <p class="text-small">Rozmiar czcionki: min(2em, 5vw)</p>
          </div>
        </body>
      </html>
    
  
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION