Karta zaciskowa

W tej demonstracji ustawiasz szerokość za pomocą parametru clamp(): width: clamp(<min>, <actual>, <max>).

Służy do ustawiania bezwzględnego i maksymalnego rozmiaru oraz rzeczywistego rozmiaru. W przypadku wartości tego parametru mogą one wyglądać podobnie do tych:

.parent {
  width: clamp(23ch, 60%, 46ch);
}

Minimalny rozmiar to 23ch – 23 znaki, a maksymalny – 46ch – 46 znaków. Jednostki szerokości znaków zależą od rozmiaru czcionki elementu (a konkretnie szerokości glifu 0). Rozmiar rzeczywisty to 50%, co stanowi 50% szerokości nadrzędnej tego elementu.

Funkcja clamp() pozwala elementowi zachować szerokość 50% do 50%, która będzie większa niż 46ch (w większych widocznych obszarach) lub mniejsza niż 23ch (w mniejszych widocznych obszarach). Na filmie zobacz, jak szerokość tej karty zwiększa się do zamocowanego punktu maksymalnego i maleje do minimum, gdy karta nadrzędna się rozciąga i zmniejsza. Pozostaje wyśrodkowany na elemencie nadrzędnym za pomocą dodatkowych właściwości. Umożliwia to tworzenie bardziej czytelnych układów, ponieważ tekst nie będzie zbyt szeroki (powyżej 46ch) ani zbyt wąski (poniżej 23ch).

Korzystając z tej techniki, możesz stosować elastyczną typografię. Na przykład: font-size: clamp(1.5rem, 20vw, 3rem). W takim przypadku rozmiar czcionki nagłówka zawsze będzie ograniczony od 1.5rem do 3rem, ale będzie się zwiększać i zmniejszać zgodnie z rzeczywistą wartością 20vw, aby dopasować ją do szerokości widocznego obszaru.

To świetny sposób na zapewnienie czytelności przy minimalnych i maksymalnych wartościach rozmiaru. Pamiętaj jednak, że nie jest ona obsługiwana we wszystkich nowoczesnych przeglądarkach, więc przygotuj kreacje zastępcze i przetestuj je.

HTML

<div class="parent">
  <div class="card">
    <h1>Title Here</h1>
    <div class="visual"></div>
    <p>Descriptive Text. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Sed est error repellat veritatis.</p>
  </div>
</div>

CSS


        .parent {
  display: grid;
  place-items: center;
}

.card {
  width: clamp(23ch, 60%, 46ch);
  display: flex;
  flex-direction: column;
  padding: 1rem;
}

.visual {
    height: 125px;
    width: 100%;
  }