Chrome na Androida zmienia rozmiar czcionki


84

Najwyraźniej, gdy akapit tekstu osiągnie określoną długość, Google Chrome na Androida decyduje się zmienić rozmiar tekstu i powiększyć go (powodując wszelkiego rodzaju zabawę). Teraz mam stronę internetową, na której około połowa p-tagów jest zgodna z ustawionym przeze mnie rozmiarem, a druga połowa zmienia się tak, jak chcą - najwyraźniej w zależności od długości akapitu.

Jak mam to naprawić?


1
Masz przykład? Poza tym, która wersja Androida i Chrome?
Junuxx

Odpowiedzi:


93

Dodaj max-height: 999999px;do elementu, w którym chcesz zapobiec wzmocnieniu czcionki, lub jego elementu nadrzędnego.


13
Android Chrome stosuje wzmocnienie czcionek tylko do elementów o dynamicznej wysokości. Po określeniu wysokości lub maksymalnej wysokości wzmocnienie czcionki nie zostanie zastosowane. Ustawienie maksymalnej wysokości na dużą liczbę jest proste i nie powinno mieć żadnych skutków ubocznych.
moeffju

1
Tylko ostrzeżenie. To rozwiązało problem, który miałem z czcionkami Chrome na Androida, które nie grały dobrze. Jednak zepsuło to widok strony na iPadzie w określonych wersjach iOS.
James McDonnell,

Oprócz tego spowodowało to pewne problemy na iPadzie w przypadku przejść CSS3.
James McDonnell,

4
Użycie tego znacznie psuje układ wielu elementów w Safari (5.1.7), nawet jeśli na początku nie używasz maksymalnej wysokości lub zdefiniowanych wysokości. Kilka witryn było całkowicie bezużytecznych, wszystkie divelementy strukturalne były niezgrabnie zwinięte na górę strony. Nie zakrywaj swojej witryny definicją maksymalnej wysokości! Używaj tylko w razie potrzeby i dokładnie przetestuj.
Radley Sustaire

2
Whelp ... Właśnie wtedy, gdy myślałem, że widziałem to wszystko ... Kolejna szalona usterka z kolejną szaloną poprawką. FWIW Nie widzę żadnych problemów w Safari i min-height: 1pxniestety nie przyniosło to żadnego efektu. max-height: 999999pxzałatwia sprawę. Mój przypadek polegał na bardzo długim przenoszeniu treści podczas wjazdu / wyjazdu z trasy. Podbijanie czcionek miało miejsce podczas lub tuż po przejściu, nie jestem pewien, które, ale spowodowało bardzo zauważalną zmianę.
Chase

60

Uwzględnij <meta>w dokumencie następujący tag <head>:

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

Pozwoli to poprawnie ustawić ramkę widoku, a tym samym wyeliminuje potrzebę „FontBoosting”.


6
To zdecydowanie preferowane rozwiązanie. Jeśli zależy Ci na tym, jak rzeczy wyglądają na urządzeniach mobilnych, przejmij na własność swój widoczny obszar!
Paul Irish

17
Nie wyłącza to jednak wzmocnienia czcionek.
Ed Hinchliffe

1
Z pewnością koryguje niechciane skalowanie i zamierzam go używać w przyszłości.
Dizzley

5
Uwaga: mam <meta name="viewport" content="width=device-width, initial-scale=0.5, user-scalable=no">i nadal otrzymuję okropne skalowanie Chromów
Sam,

Tak jest lepiej, ponieważ czcionka jest czytelna. Zachowuje proporcje, jednocześnie zwiększając rozmiar dla czytelności. Idealne dla mnie.
Jennifer Michelle

23

Istnieje teraz właściwość CSS, którą możesz ustawić, aby to kontrolować:

-webkit-text-size-adjust: none;
-moz-text-size-adjust: none;
-ms-text-size-adjust: none;

Zobacz https://developer.mozilla.org/en-US/docs/Web/CSS/text-size-adjust


dostosowywanie rozmiaru tekstu: żaden nie działał dla mnie na najnowszym Chrome dla Androida.
Stepan Yakovenko

Jest to preferowane rozwiązanie, jeśli używasz gazu wdrożonego jako aplikacja internetowa.
jpp

To nie działa dla mnie, ale max-height działa.
Radenko Zec

15

Umieść to w swoim resecie. html * {max-height:1000000px;}


powodował u mnie problemy z lepką stopką, zamiast tego musiałem wykonać treść html *
Sabrina Leggett

Jest to trochę zbyt agresywne, chyba że faktycznie masz problem z wieloma nieprzewidywalnymi elementami. W przeciwnym razie lepiej byłoby skupić się tylko na problematycznych elementach.
Chase

1
@Chase - w moim przypadku były to elementy nieprzewidywalne (dynamiczne), więc musieliśmy zastosować *podejście. To powiedziawszy, argumentowałbym, że jest to jedna z tych niejasnych rzeczy, o których prawdopodobnie zapomnisz i które mogą powodować problemy w przyszłości, więc ze względu na łatwość konserwacji prawdopodobnie zostawiłbym to, *nawet jeśli w tym czasie był to tylko jeden / a kilka elementów.
Ed Hinchliffe

Zaraz po tym, jak znalazłem ten wątek i skomentowałem, zacząłem dostrzegać dodatkowe problemy, które, jak podejrzewałem, były związane z ulepszaniem czcionek. Tak więc, na pewno (przynajmniej na razie) * max-height...w moim kodzie LOL
Chase

6

Po kilku testach ta zasada mi pomogła. Należy dodać do elementu zawierającego tekst wzmocniony lub do elementu nadrzędnego w zależności od struktury div / table.

element or parent element { 
    /* prevent font boosting on mobile devices */
    width: 100%;
    height: auto;
    min-height: 1px;
    max-height: 999999px;
}

Może wartości szerokości i wysokości należy dostosować do własnych potrzeb.


2

Znalazłem rozwiązanie dla moich stron: nadaj elementowi nadrzędnemu szerokość i wysokość! Czcionka nie wyjdzie poza te granice, więc pozostanie mała (er).


1

Nazywa się to „wzmocnieniem czcionek” i zostało szczegółowo opisane w tym błędzie WebKit . Obecnie nie ma sposobu, aby go wyłączyć.


Wygląda na to, że jest to rzeczywiście wzmocnienie czcionki, ale można temu zapobiec, ustawiając max-height: 999999px zgodnie z opisem @moeffju.
Ścigaj
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.