Funkcje podstawowe, których możesz używać już dziś

Poznaj niektóre z funkcji dostępnych w ramach Baseline.

Mariko Kosaka

Sieć stale się rozwija, a przeglądarki nieustannie się aktualizują, udostępniając programistom nowe narzędzia do wprowadzania innowacji na platformie. Funkcje, które wcześniej wymagały bibliotek pomocniczych, stają się częścią platformy internetowej i są obsługiwane we wszystkich przeglądarkach, a także krótsze lub łatwiejsze sposoby kodowania elementów projektu.

Chociaż ciągła ewolucja i dostosowywanie się do zmian są pomocne, mogą też wprowadzać zamieszanie. Może być trudno poruszać się pośród wszystkich tych aktualizacji. Jako deweloperzy mamy pytania w rodzaju „Kiedy wszystkie przeglądarki będą obsługiwać tę nową funkcję?”. „Kiedy mogę zacząć używać tych funkcji w moim kodzie produkcyjnym?” „Jak długo powinniśmy obsługiwać starsze przeglądarki?”

Prawidłowa odpowiedź to „to zależy”. To, czego potrzebujesz i co jest przydatne, zależy od bazy użytkowników, pakietu technologicznego, struktury zespołu i obsługiwanych urządzeń. Wszyscy jednak zgadzamy się, że obecna sytuacja w internecie może utrudniać podejmowanie takich decyzji.

Aby wyjaśnić tę kwestię, zespół Chrome współpracuje z innymi silnikami przeglądarek i ze społecznością internetową. Dotyczy to także naszych projektów takich jak Interop 2023, które pomagają poprawić interoperacyjność zestawu kluczowych funkcji. A co z funkcjami, które pojawiły się w ciągu ostatnich kilku lat? Czy funkcje eksperymentalne, o których wspominaliśmy 2 lata temu, są już gotowe do użycia?

W tym poście chcę zwrócić uwagę na niektóre funkcje, które są teraz dostępne we wszystkich głównych silnikach przeglądarek w ostatnich 2 głównych wersjach. Jest to moment, w którym według nas większość deweloperów uzna, że dana funkcja jest bezpieczna w użyciu. To zestaw funkcji, który nazywamy Punktem odniesienia. Więcej informacji znajdziesz w powiadomieniu dotyczącym Baseline.

Element okna

Element <dialog> to nowy element HTML do tworzenia promptów dialogowych, takich jak wyskakujące okienka i okna modalne.

Obsługa przeglądarek

  • Chrome: 37.
  • Edge: 79.
  • Firefox: 98.
  • Safari: 15.4.

Źródło

Aby go użyć, zdefiniuj element modalny, a następnie otwórz okno, wywołując w nim metodę showModal().

<dialog id="d">
  <form method="dialog">
    <p>Hi, I'm a dialog.</p>
    <button>ok</button>
  </form>
</dialog>

<button onclick="d.showModal()">
  Open Dialog
</button>

Jako natywny element HTML obsługuje wbudowane funkcje takie jak zarządzanie punktem skupienia, śledzenie kart i zachowywanie kontekstu układania. Więcej informacji znajdziesz w artykule Tworzenie komponentu dialogowego.

Poszczególne właściwości transformacji CSS

Przekształcenia CSS to skuteczny sposób na dodanie ruchu do witryny.
Możesz znać sposób zapisywania transformacji CSS z 3 właściwościami w jednym wierszu.
Za pomocą właściwości transformacji możesz teraz określać poszczególne właściwości transformacji. Jest to przydatne, gdy tworzysz złożone animacje klatki kluczowej.

.target {
  translate: 50% 0;
  rotate: 30deg;
  scale: 1.2;
}

Obsługa przeglądarek

  • Chrome: 104.
  • Edge: 104.
  • Firefox: 72.
  • Safari: 14.1.

Źródło

Szczegółowe wyjaśnienie tej zmiany znajdziesz w artykule Większa kontrola nad przekształceniami CSS za pomocą właściwości przekształcenia.

Nowe jednostki widocznego obszaru

Na urządzeniach mobilnych rozmiar widocznego obszaru zależy od obecności lub braku dynamicznych pasków narzędzi.
Czasami pasek adresu URL i pasek narzędzi nawigacji są widoczne, ale czasami są całkowicie schowane.
Rzeczywisty rozmiar widocznego obszaru będzie się różnić w zależności od tego, czy paski narzędzi są widoczne, czy nie.
Nowe jednostki widoku, takie jak svhlvh, zapewniają deweloperom stron internetowych większą kontrolę podczas projektowania stron mobilnych. Więcej informacji znajdziesz w artykule Duże, małe i dynamiczne jednostki viewport.

Obsługa przeglądarek

  • Chrome: 108.
  • Edge: 108.
  • Firefox: 101.
  • Safari: 15.4.

Głębokie kopiowanie w JavaScript

W przeszłości, aby utworzyć głęboką kopię obiektu bez odniesienia do oryginalnego obiektu, popularnym hakerem był JSON.stringify w połączeniu z zasadą JSON.parse. Był to tak popularny sposób, że V8 (mechanizm JavaScriptu w Chrome) znacznie poprawił wydajność tego triku. Dzięki usłudze structuredClone nie musisz już korzystać z tego narzędzia.

const original = {id: 0, prop: {name: "Tom"}}

/* Old hack */ 
const deepCopy = JSON.parse(JSON.stringify(original));

/* New way */
const deepCopy = structuredClone(original);

Obsługa przeglądarek

  • Chrome: 98.
  • Edge: 98.
  • Firefox: 94.
  • Safari: 15.4.

Źródło

Więcej informacji znajdziesz w artykule Głębokie kopiowanie w JavaScript za pomocą funkcji structuredClone.

Pseudoklasa :focus-visible

Jako deweloperzy internetowi znamy wszyscy „pierścień fokusu”, który pojawia się, gdy poruszasz się po stronie za pomocą klawiatury lub klikasz elementy wprowadzania. Jest to niezbędna funkcja ułatwiająca dostępność, ale czasami przeszkadza w projektowaniu wizualnym dla różnych użytkowników. Pseudoklasa CSS :focus-visible sprawdza, czy według przeglądarki fokus powinien być widoczny. Teraz możesz określać style tylko wtedy, gdy zaznaczenie powinno być widoczne.

/* focus with tab key */
:focus-visible {
    outline: 5px solid pink;
}

/* mouse click */
:focus:not(:focus-visible) {
    outline: none;
}

Obsługa przeglądarek

  • Chrome: 86.
  • Edge: 86.
  • Firefox: 85.
  • Safari: 15.4

Źródło

Więcej informacji znajdziesz w sekcji Focus na temat nauki języka CSS.

Interfejs TransformStream

Interfejs TransformStream interfejsu Streams API umożliwia przesyłanie strumieni do siebie nawzajem.

Możesz na przykład przesyłać strumień danych z jednego miejsca, a potem kompresować go w innej lokalizacji. W artykule Wysyłanie żądań strumieniowych za pomocą interfejsu Fetch API znajdziesz przykładowe zastosowanie.

Obsługa przeglądarek

  • Chrome: 67.
  • Krawędź: 79.
  • Firefox: 102.
  • Safari: 14.1.

Źródło

Podsumowanie

Na platformie internetowej pojawiło się też wiele innych funkcji, które niedawno stały się współdziałające i stabilne. W przyszłości będziemy współpracować z grupą społeczności WebDX, aby lepiej wyjaśnić te zbiory funkcji podstawowych. Aby uzyskać więcej informacji, odwiedź stronę web.dev/baseline.

Jeśli chcesz być na bieżąco, nasz zespół publikuje artykuły w momencie, gdy funkcja staje się interoperacyjna, oraz miesięczne informacje o tym, co dzieje się na platformie internetowej, od funkcji eksperymentalnych po nowe funkcje interoperacyjne.

Zawsze interesuje nas, czy nasze działania są dla Ciebie przydatne i czy potrzebujesz innego rodzaju pomocy. Skontaktuj się z nami na stronie grupy społeczności WebDX.