6 fragmentów kodu CSS, które każdy programista interfejsów powinien znać w 2023 r.

Zaawansowany i stabilny kod CSS, który możesz już dziś wykorzystać w narzędziu.

Uważam, że każdy front-end developer powinien wiedzieć, jak używać zapytań dotyczących kontenerów, tworzyć przeskakiwanie przy przewijaniu, unikać position: absolutesiatce, szybko tworzyć koła, używać warstw kaskadowych i osiągać większą skuteczność przy mniejszych nakładach za pomocą właściwości logicznych. Oto krótkie omówienie każdego z tych oczekiwań.

1. Zapytanie dotyczące kontenera

Najbardziej pożądana przez użytkowników funkcja usługi porównywania cen przez 10 lat z rzędu jest stabilna w różnych przeglądarkach i będzie dostępna w 2023 r. w przypadku zapytań o szerokość.

.panel {   container: layers-panel / inline-size; }  .card {   padding: 1rem; }  @container layers-panel (min-width: 20rem) {   .card {     padding: 2rem;   } } 
@container

Browser Support

  • Chrome: 105.
  • Edge: 105.
  • Firefox: 110.
  • Safari: 16.

Source

container

Browser Support

  • Chrome: 105.
  • Edge: 105.
  • Firefox: 110.
  • Safari: 16.

Source

2. Przyciąganie podczas przewijania

Dobrze zorganizowane przewijanie odróżnia Twoją aplikację od innych, a snap to idealny sposób na dopasowanie systemu do wrażeń użytkownika podczas przewijania, przy jednoczesnym zapewnieniu istotnych punktów zatrzymania.

.snaps {   overflow-x: scroll;   scroll-snap-type: x mandatory;   overscroll-behavior-x: contain; }  .snap-target {   scroll-snap-align: center; }  .snap-force-stop {   scroll-snap-stop: always; } 

Dowiedz się więcej o potencjale tej funkcji CSS z tej ogromnej i inspirującej kolekcji Codepen, która zawiera około 25 demonstracji.

scroll-snap-type

Browser Support

  • Chrome: 69.
  • Edge: 79.
  • Firefox: 99.
  • Safari: 11.

Source

scroll-snap-align

Browser Support

  • Chrome: 69.
  • Edge: 79.
  • Firefox: 68.
  • Safari: 11.

Source

scroll-snap-stop

Browser Support

  • Chrome: 75.
  • Edge: 79.
  • Firefox: 103.
  • Safari: 15.

Source

overscroll-behavior

Browser Support

  • Chrome: 63.
  • Edge: 18.
  • Firefox: 59.
  • Safari: 16.

Source

3. Stos siatki

Unikaj stosowania pozycji bezwzględnej w przypadku siatki CSS z jedną komórką. Gdy elementy są ułożone jeden na drugim, użyj właściwości wyrównania, aby je ustawić.

.pile {   display: grid;   place-content: center; }  .pile > * {   grid-area: 1/1; } 
grid

Browser Support

  • Chrome: 57.
  • Edge: 16.
  • Firefox: 52.
  • Safari: 10.1.

Source

4. Szybki okrąg

Istnieje wiele sposobów tworzenia kół w CSS, ale ten jest zdecydowanie najbardziej minimalny.

.circle {   inline-size: 25ch;   aspect-ratio: 1;   border-radius: 50%; }
aspect-ratio

Browser Support

  • Chrome: 88.
  • Edge: 88.
  • Firefox: 89.
  • Safari: 15.

Source

5. Sterowanie wersjami za pomocą @layer

Warstwy kaskadowe mogą pomóc w wstawianiu wariantów odkrytych lub utworzonych później we właściwym miejscu w kaskadzie z pierwotnym zestawem wariantów.

/* file buttons.css */ @layer components.buttons {   .btn.primary {        } }

Następnie w zupełnie innym pliku, wczytanym w innym losowym momencie, dodaj nowy wariant do warstwy przycisku, tak jakby był tam od samego początku.

/* file video-player.css */ @layer components.buttons {   .btn.player-icon {        } }
@layer

Browser Support

  • Chrome: 99.
  • Edge: 99.
  • Firefox: 97.
  • Safari: 15.4.

Source

6. Mniej zapamiętuj, a więcej osiągaj dzięki właściwościom logicznym

Zapamiętaj ten nowy model pudełka i nigdy więcej nie martw się o zmianę wyrównania do lewej i prawej lub marginesu w przypadku międzynarodowych trybów i kierunków dokumentów. Dostosuj style z właściwości fizycznych do logicznych, takich jak padding-inline, margin-inlineinset-inline. Teraz przeglądarka wykona za Ciebie tę pracę.

button {   padding-inline: 2ch;   padding-block: 1ch; }  article > p {   text-align: start;   margin-block: 2ch; }  .something::before {   inset-inline: auto 0; }
padding-inline

Browser Support

  • Chrome: 87.
  • Edge: 87.
  • Firefox: 66.
  • Safari: 14.1.

Source

margin-block

Browser Support

  • Chrome: 87.
  • Edge: 87.
  • Firefox: 66.
  • Safari: 14.1.

Source

inset-inline

Browser Support

  • Chrome: 87.
  • Edge: 87.
  • Firefox: 63.
  • Safari: 14.1.

Source