Poznaj niektóre funkcje, które są częścią Baseline.
Internet stale się rozwija, a przeglądarki są stale aktualizowane, aby zapewnić deweloperom 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 i prostsze sposoby kodowania elementów projektu.
Ciągłe ewoluowanie i dostosowywanie się do zmian jest przydatne, ale może też wprowadzać zamieszanie. Może być trudno poruszać się pośród wszystkich tych zmian. 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 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 obecny stan internetu 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ą. Obejmuje to nasze działania w ramach projektów takich jak Interop 2023, które mają na celu poprawę interoperacyjności kluczowych funkcji. A co z funkcjami wprowadzonymi w ostatnich latach? 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 punkt graniczny, w którym naszym zdaniem większość deweloperów uzna daną funkcję za bezpieczną do użycia. Jest to zestaw funkcji, który nazywamy „poziomem bazowym”. 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 modale.
Aby go użyć, zdefiniuj element modalny, a następnie otwórz okno, wywołując metodę showModal()
elementu dialogu.
<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 podczas tworzenia złożonych animacji klatki kluczowej.
.target {
translate: 50% 0;
rotate: 30deg;
scale: 1.2;
}
Szczegółowe wyjaśnienie tej zmiany znajdziesz w artykule Większa kontrola nad przekształceniami CSS za pomocą właściwości transform.
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 svh
i lvh
, 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
Głębokie kopiowanie w JavaScript
W przeszłości, aby utworzyć głęboką kopię obiektu bez odniesienia do oryginalnego obiektu, popularnym sposobem było połączenie JSON.stringify
z JSON.parse
. Był to tak popularny sposób, że V8 (mechanizm JavaScriptu w Chrome) znacznie poprawił wydajność tego triku. Dzięki structuredClone
nie musisz już stosować tego sposobu.
const original = {id: 0, prop: {name: "Tom"}}
/* Old hack */
const deepCopy = JSON.parse(JSON.stringify(original));
/* New way */
const deepCopy = structuredClone(original);
Więcej informacji znajdziesz w artykule Głębokie kopiowanie w JavaScript za pomocą funkcji structuredClone.
Pseudoklasa :focus-visible
Jako deweloperzy stron internetowych 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 ma być widoczny fokus.
/* focus with tab key */
:focus-visible {
outline: 5px solid pink;
}
/* mouse click */
:focus:not(:focus-visible) {
outline: none;
}
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.
Podsumowanie
W ostatnim czasie wiele funkcji stało się interoperacyjnych i stabilnych w użyciu na platformie internetowej. W przyszłości będziemy współpracować z grupą społeczności WebDX, aby lepiej wyjaśnić te zestawy funkcji bazowych. 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.