Przewodnik po migracji z Edge do Chrome na Androida

Opublikowano: 28 lutego 2025 r.

Wyświetlanie od krawędzi do krawędzi to funkcja Androida, która umożliwia aplikacjom wyświetlanie treści na całej szerokości i wysokości ekranu, ponieważ są one rysowane za paskami systemu Android.

W wersjach wcześniejszych niż Chrome 135 przeglądarka Chrome na Androidzie nie wyświetlała treści od krawędzi do krawędzi. Z tego przewodnika dowiesz się, jak ta zmiana wpłynie na witryny i co możesz zrobić jako deweloper, aby się do niej dostosować.

Bary wszędzie

Android zawiera paski systemu udostępniane przez sam system operacyjny.

Pasek stanu, pasek podpisów i pasek nawigacyjny są razem nazywane paskami systemu. Wyświetlają ważne informacje, takie jak poziom baterii, godzina i powiadomienia, a także umożliwiają bezpośrednią interakcję z urządzeniem z dowolnego miejsca.

U góry ekranu znajduje się pasek stanu, który zawiera ikony powiadomień i ikony systemowe.

Ilustracja górnej części urządzenia z Androidem z podświetlonym paskiem systemowym.
Zaznaczony pasek stanu na Androidzie (źródło).

U dołu ekranu znajduje się pasek nawigacyjny, który umożliwia sterowanie nawigacją za pomocą przycisków wstecz, ekranu głównego i przeglądu. Może to być klasyczna nawigacja przy użyciu 3 przycisków lub nowoczesny pasek nawigacji przy użyciu gestów.

Ilustracja przedstawiająca dolną część urządzenia z Androidem z widocznym paskiem nawigacji przy użyciu gestów.
Pasek nawigacji przy użyciu gestów (źródło).

Oprócz pasków systemu Android Chrome ma też pasek adresu, który dynamicznie rozwija się i zwija podczas przewijania.

Chrome od krawędzi do krawędzi

Gdy wchodzisz na stronę internetową, jest ona wyświetlana w prostokącie zwanym okienkiem (układu).

W Chrome na Androida (w wersjach starszych niż Chrome 135) ten widoczny obszar układu jest rysowany między górnym paskiem stanu a dolnym paskiem nawigacji przy użyciu gestów. Obecność paska adresu Chrome (lub jego brak) może wpływać na rozmiar widocznego obszaru, ale widoczny obszar nigdy nie rozszerzy się na górny pasek systemowy ani dolny pasek nawigacji przy użyciu gestów.

Ilustracje przedstawiające urządzenie z Androidem z Chrome na Androida, który nie jest wyświetlany od krawędzi do krawędzi. Ilustracja po lewej stronie przedstawia Chrome z rozwiniętym paskiem adresu. Między paskiem adresu a paskiem nawigacji przy użyciu gestów znajduje się pole wyróżnione na zielono, którego rozmiar wynosi 100svh. Ilustracja po prawej stronie przedstawia Chrome ze schowanym paskiem adresu. Między paskiem stanu a paskiem nawigacji przy użyciu gestów znajduje się pole zaznaczone na zielono, którego rozmiar wynosi 100lvh. Sam widoczny obszar ma przerywany niebieski kontur.
Minimalny i maksymalny rozmiar widocznego obszaru w Chrome na Androida przed wersją Chrome 135. Te rozmiary są nazywane małym i dużym obszarem wyświetlania. Sam widoczny obszar ma przerywany niebieski kontur.

Od wersji Chrome 135 widoczny obszar może rozciągać się na pasek nawigacji przy użyciu gestów na Androidzie. Jest to tzw. wyświetlanie bez ramki.

Ilustracje przedstawiające widoczny obszar w Chrome na Androidzie, który nie jest wyświetlany od krawędzi do krawędzi (po lewej), oraz w Chrome na Androidzie, który jest wyświetlany od krawędzi do krawędzi (po prawej). Każda wizualizacja zawiera niebieskie pole, które reprezentuje element o wysokości 100vh. Tekst po lewej stronie wyjaśnia, co się dzieje, gdy interfejs nie jest wyświetlany od krawędzi do krawędzi. Tekst: „Okno pozostaje ograniczone między górnym paskiem stanu a dolnym paskiem nawigacji przy użyciu gestów”. Tekst po prawej stronie wyjaśnia, co się dzieje, gdy elementy interfejsu są wyświetlane od krawędzi do krawędzi. Tekst: „Widoczny obszar rozciąga się na pasek nawigacji przy użyciu gestów”.
Duży widoczny obszar wyświetlany w Chrome na Androidzie, który nie jest od krawędzi do krawędzi (po lewej), i w Chrome, który jest od krawędzi do krawędzi (po prawej). W Chrome z obsługą trybu od krawędzi do krawędzi obszar wyświetlania rozciąga się na obszar paska nawigacji przy użyciu gestów, gdy dynamiczne paski narzędzi Chrome są zwinięte.

Zachowanie Chrome bez wyświetlania bez ramki

Na tym nagraniu widać Chrome na Androidzie bez obsługi trybu od brzegu do brzegu. Pasek adresu Chrome (u góry) dynamicznie znika podczas przewijania strony. Jednak górny pasek stanu i dolny pasek nawigacyjny systemu Android pozostają na swoim miejscu.

Stare działanie: Chrome na Androida bez obsługi trybu od krawędzi do krawędzi i wczytana strona https://developer.chrome.com/.

W tym przypadku rozmiar widocznego obszaru układu zmienia się, gdy pasek adresu Chrome się zwija lub rozwija.

Działanie Chrome w trybie bez ramki

Od wersji Chrome 135 przeglądarka może wyświetlać treści z internetu aż do dolnej krawędzi urządzenia, rozszerzając obszar widoczny na obszar paska nawigacji przy użyciu gestów.

Dynamiczny ekran od krawędzi do krawędzi z „podbródkiem”

Domyślnie Chrome od krawędzi do krawędzi wyświetla nowy dynamiczny pasek dolny, znany jako „podbródek”, nad obszarem paska nawigacji przy użyciu gestów. Podobnie jak pasek adresu Chrome, ten element znika, gdy zaczynasz przewijać, i wpływa na rozmiar widocznego obszaru.

Na poniższym nagraniu Chrome na Androidzie z obsługą trybu od krawędzi do krawędzi pasek adresu Chrome i dolny pasek dynamicznie się chowają, gdy strona jest przewijana w dół. Powoduje to rozszerzenie widocznego obszaru, co umożliwia wyświetlanie treści z internetu aż do dolnej krawędzi urządzenia.

Nowe działanie: Chrome na Androida z obsługą trybu od brzegu do brzegu i wczytaną stroną https://developer.chrome.com/. Zwróć uwagę, jak dolny pasek przesuwa się podczas przewijania strony.

To zachowanie jest nowym domyślnym zachowaniem Chrome od wersji 135.

Domyślne wyświetlanie od krawędzi do krawędzi z możliwością rezygnacji

Witryny, które zostały utworzone z myślą o wyświetlaniu od krawędzi do krawędzi, mogą to wskazywać, dostosowując metatag viewport. Gdy ta opcja jest włączona, widoczny obszar domyślnie rozciąga się do dolnej krawędzi, a dolny pasek nie jest widoczny.

Nowe działanie z włączoną akceptacją wyświetlania bez ramki: po wczytaniu strony widoczny obszar rozciąga się do dolnej krawędzi. Brak podbródka.

Strona może wskazywać, że obsługuje tryb od krawędzi do krawędzi, za pomocą metatagu viewport i klucza viewport-fit.

Aby włączyć tryb od krawędzi do krawędzi, ustaw viewport-fit na wartość cover.

<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />

Więcej informacji o różnych wartościach viewport-fit znajdziesz na stronie MDN.

Postępowanie z treściami, które mogą być zasłonięte przez pasek nawigacji przy użyciu gestów

W trybie od krawędzi do krawędzi należy wziąć pod uwagę wszelkie treści, które mogą zostać zasłonięte przez pasek nawigacji przy użyciu gestów.

W większości przypadków nie musisz nic robić, ponieważ dolny pasek sam się przesunie. Użytkownicy nadal mogą uzyskać dostęp do wszystkich treści w Twojej witrynie, tak jak wcześniej.

Jeśli jednak domyślnie wybierzesz tryb od krawędzi do krawędzi lub masz element umieszczony u dołu widocznego obszaru, musisz wziąć pod uwagę, że ta treść może zostać zasłonięta.

.stuck-to-the-bottom-of-the-viewport {
  position: fixed;
  bottom: 0;
}

Gdy pasek jest widoczny, użytkownicy mogą początkowo uzyskać dostęp do treści, ale gdy pasek znika, treści są zasłaniane przez pasek nawigacyjny Androida.

Ilustracje przedstawiające urządzenie z Androidem z Chrome na Androida, który wyświetla się bez ramki. Ilustracja po lewej stronie przedstawia Chrome z widocznym paskiem. Treści zakotwiczone u dołu (zaznaczone na czerwono) znajdują się tuż nad nim. Ilustracja po prawej stronie przedstawia Chrome z niewidocznym paskiem. W tym przypadku treść zakotwiczona u dołu znajduje się przy dolnej krawędzi urządzenia. Tekst obok wyjaśnia, że treści na dole są teraz zasłonięte przez pasek nawigacji przy użyciu gestów.
Ilustracja przedstawiająca witrynę z elementem umieszczonym na dole z właściwością `bottom: 0`. Gdy pasek jest widoczny, element umieszczony na dole znajduje się nad paskiem nawigacyjnym Androida. Gdy dolny pasek się odsunie, element zostanie umieszczony za paskiem nawigacyjnym Androida, który częściowo go zasłania.

Aby rozwiązać ten problem, użyj wstawek bezpiecznego obszaru, aby zawsze umieszczać elementy, których dotyczy problem, nad natywnym paskiem nawigacji przy użyciu gestów na Androidzie lub aby ich tło rozciągało się na ten obszar.

Wstawki bezpiecznego obszaru

Wstawki bezpiecznego obszaru to 4 zmienne środowiskowe, które definiują prostokąt za pomocą górnej, prawej, dolnej i lewej wstawki od krawędzi widocznego obszaru.

Te 4 wartości tworzą prostokąt bezpiecznego obszaru, w którym można bezpiecznie umieszczać treści, aby nie były zasłaniane przez elementy takie jak pasek nawigacji przy użyciu gestów na Androidzie.

Ilustracja przedstawiająca urządzenie z Androidem z Chrome w trybie od krawędzi do krawędzi. Dolna ramka ma wysuwany widok. W Chrome wyświetla się prostokąt bezpiecznego obszaru, który jest pomalowany na żółto. Jego dolna krawędź znajduje się tuż nad paskiem nawigacji przy użyciu gestów. Na pasku nawigacji przy użyciu gestów jest widoczna dolna część widocznego obszaru, która jest pomalowana na niebiesko. Tekst obok informuje, że prostokąt bezpiecznego obszaru jest wstawiony w obszarze widocznym przez safe-area-bottom-inset, co zapobiega wyświetlaniu treści pod paskiem nawigacji przy użyciu gestów.
Ilustracja przedstawiająca Chrome w trybie od krawędzi do krawędzi z obszarem widocznego ekranu i prostokątem bezpiecznego obszaru pomalowanym na żółto. Ponieważ podbródek jest cofnięty, dolne wcięcie bezpiecznego obszaru zapobiega sięganiu prostokąta bezpiecznego obszaru do paska nawigacji przy użyciu gestów. W efekcie obszar widoczny jest widoczny pod paskiem nawigacji przy użyciu gestów.

Używanie dolnej wstawki bezpiecznego obszaru

W przypadku elementów umieszczonych u dołu widocznego obszaru użyj wartości safe-area-inset-bottom dla właściwości bottom, aby zapobiec umieszczeniu ich pod paskiem nawigacji przy użyciu gestów. Wartość zwracana przez safe-area-inset-bottom jest dynamicznie aktualizowana, gdy dolny pasek się przesuwa, dzięki czemu elementy umieszczone na dole pozostają nad paskiem nawigacji przy użyciu gestów Androida.

.stuck-to-the-bottom-of-the-viewport {
  position: fixed;
  bottom: env(safe-area-inset-bottom, 0px);
}
Ilustracja przedstawiająca urządzenie z Androidem z Chrome w trybie od krawędzi do krawędzi. Na wizualizacji po lewej stronie widoczny jest pasek, a treści zakotwiczone na dole znajdują się tuż nad nim. Na wizualizacji po prawej stronie nie widać dolnego paska, a treści zakotwiczone u dołu są umieszczone w tym samym miejscu co po lewej stronie. Dzięki temu zwykłe treści będą widoczne pod paskiem nawigacji przy użyciu gestów.
Ilustracje przedstawiające witrynę z elementem umieszczonym na dole, który wykorzystuje dolny bezpieczny obszar z właściwością bottom. Gdy jest widoczny, znajduje się nad paskiem nawigacji przy użyciu gestów na Androidzie. Gdy dolny pasek znika, element również znajduje się nad nim.

Jak widać na ilustracjach, wynik nie jest jeszcze idealny: gdy usuniesz podbródek, pozostała zawartość strony stanie się widoczna w obszarze paska nawigacji przy użyciu gestów. Dzieje się tak, ponieważ w tym stanie widoczny obszar rozciąga się na obszar paska nawigacji przy użyciu gestów.

Aby zapobiec renderowaniu treści pod treściami zakotwiczonymi na dole, często stosuje się ustawienie padding-bottom na safe-area-inset-bottom. Dzięki temu element zakotwiczony u dołu automatycznie się powiększa, gdy pasek się ukrywa. Chociaż to działa, nie zalecamy tego podejścia, ponieważ powoduje ono problemy z układem, gdy dolny pasek się przesuwa.

Nie ustawiaj właściwości padding na wartość safe-area-inset.

.stuck-to-the-bottom-of-the-viewport {
  position: fixed;
  bottom: 0;
  padding-bottom: env(safe-area-inset-bottom, 0px); /* 🛑 Don't do this, as it causes layout thrashing. */
}

Używanie dolnego wcięcia bezpiecznego obszaru i maksymalnego dolnego wcięcia bezpiecznego obszaru

Zamiast tego zalecamy użycie kombinacji filtrów safe-area-inset-bottom i safe-area-max-inset-bottom. W przeciwieństwie do dynamicznego safe-area-inset-bottom, który jest dynamicznie aktualizowany, gdy podbródek się przesuwa, safe-area-max-inset-bottom reprezentuje maksymalną wartość safe-area-inset-bottom.

Użyj tego safe-area-max-inset-bottom, aby powiększyć element zakotwiczony na dole, i połącz go z safe-area-inset-bottom, aby pociągnąć element w dół, tak aby znajdował się za brodą.

Używaj safe-area-max-inset-bottom w połączeniu z safe-area-inset-bottom.

:root {
  --safe-area-max-inset-bottom: env(safe-area-max-inset-bottom, 36px);
  --bottom-bar-height: 50px;
}

.stuck-to-the-bottom-of-the-viewport {
  position: fixed;
  bottom: 0;
  height: var(--bottom-bar-height);
  padding-bottom: var(--safe-area-max-inset-bottom);
  bottom: calc(env(safe-area-inset-bottom, 0px) - var(--safe-area-max-inset-bottom));
}

body {
  padding-bottom: calc(var(--bottom-bar-height) + var(--safe-area-max-inset-bottom));
}

Wypróbuj wersję demonstracyjną na żywo

Efekt wizualny jest taki sam jak w przypadku metody padding-bottom: env(safe-area-inset-bottom, 0px);, ale działa znacznie lepiej. Ponieważ tylko obliczona wartość bottom musi się zmienić, gdy podbródek się oddala, nie dochodzi do niszczenia układu.

Ilustracja przedstawiająca urządzenie z Androidem z Chrome w trybie od krawędzi do krawędzi. Na wizualizacji po lewej stronie widoczny jest pasek, a treści zakotwiczone na dole znajdują się tuż nad nim. W wizualizacji po prawej stronie nie widać dolnego paska, a treści zakotwiczone na dole wizualnie się powiększyły, aby zająć miejsce, w którym pierwotnie znajdował się dolny pasek. Daje to ładny efekt wizualny i zapobiega wyświetlaniu zwykłej zawartości strony pod obszarem paska nawigacji przy użyciu gestów.
Ilustracje przedstawiające witrynę z elementem zakotwiczonym u dołu, który uwzględnia bezpieczny obszar. Gdy dolny pasek jest widoczny (po lewej), element znajduje się nad nim. Gdy dolny pasek nie jest widoczny, element wizualnie zlewa się z paskiem nawigacji przy użyciu gestów na Androidzie.

Wypróbuj tryb od krawędzi do krawędzi przed Chrome 135

Aby wypróbować tryb od krawędzi do krawędzi przed jego publiczną stabilną wersją, musisz włączyć kilka flag funkcji Chrome na stronie chrome://flags:

  • EdgeToEdgeBottomChin (opcjonalnie ustaw „Włącz debugowanie”, aby połowa paska była różowa, co pozwoli wyraźniej odróżnić go od innych elementów interfejsu)
  • DrawCutOutEdgeToEdge
  • BottomBrowserControlsRefactor (don't set to "Enabled" but set to "Enabled Dispatch yOffset")
  • DynamicSafeAreaInsets
  • DynamicSafeAreaInsetsOnScroll
  • EdgeToEdgeWebOptIn
  • DrawKeyNativeEdgeToEdge
  • EdgeToEdgeSafeAreaConstraint (don't set to "Enabled" but set to "Enabled Scrollable Variation")

Upewnij się, że te flagi nie są włączone:

  • DrawNativeEdgeToEdge
  • EdgeToEdgeEverywhere

Dwukrotnie uruchom ponownie Chrome.

Chcemy poznać Twoją opinię

Jeśli masz uwagi na temat Chrome i wdrożenia trybu od krawędzi do krawędzi, skontaktuj się z nami, zgłaszając błąd Chromium w komponencie „UI > Browser > Mobile > EdgeToEdge”. Twoje uwagi są dla nas bardzo ważne.