Chrome на Android змінює розмір шрифту


84

Очевидно, як тільки абзац тексту досягає певної довжини, Google Chrome на Android вирішує змінити розмір тексту і збільшити його (викликаючи всілякі розваги). Зараз у мене є веб-сайт, де приблизно половина pтегів відповідає розміру, який я встановив, а інша половина змінюється, як їм заманеться - очевидно, в залежності від довжини абзацу.

Як, богу, це виправити?


1
У вас є приклад? Крім того, яка версія Android та Chrome?
Junuxx

Відповіді:


93

Додайте max-height: 999999px;до елемента, який ви хочете запобігти посиленню шрифту, або його батьківського елемента.


13
Android Chrome застосовує посилення шрифту лише до елементів з динамічною висотою. Як тільки ви вказали висоту або максимальну висоту, посилення шрифту не застосовується. Установити максимальну висоту на велику кількість просто і не повинно мати побічних ефектів.
moeffju

1
Просто попередження для цього. Це вирішило проблему зі шрифтами Chrome на андроїд, які не грали добре. Однак це порушило ipad-перегляд сайту на конкретних версіях ios.
James McDonnell

А також це спричинило деякі проблеми на ipad для переходів css3.
James McDonnell

4
Використання цього значно порушує компонування багатьох елементів у Safari (5.1.7), навіть якщо для початку ви не використовуєте максимальну висоту або визначені висоти. Кілька сайтів були абсолютно непридатні для використання, всі структурні divелементи були незграбно згорнуті до верхньої частини сторінки. Не "покривайте" свій сайт визначенням максимальної висоти! Використовуйте лише там, де це потрібно, і ретельно протестуйте.
Radley Sustaire

2
Кліп ... Тільки коли я подумав, що все це бачив ... Черговий божевільний глюк із черговим божевільним виправленням. FWIW Я не бачу жодних проблем у Safari, і, min-height: 1pxна жаль, не мав ефекту. max-height: 999999pxробить фокус, хоча. Моя справа була дуже тривалим переходом вмісту під час в'їзду / виїзду з маршруту. Підсилення шрифту відбувалося або під час, або просто після переходу, не впевнений, який, але це спричинило дуже помітний зсув.
Чейз

60

Включіть такий <meta>документ у документ <head>:

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

Це дозволить правильно встановити рамку перегляду і, таким чином, усуне потребу в "FontBoosting".


6
Це, безумовно, найкраще рішення. Якщо ви дбаєте про те, як все виглядає в мобільному, перейміть право власності на область перегляду!
Пол Ірланд

17
Однак це не відключає збільшення шрифтів.
Ед Хінчліфф,

1
Це, безумовно, виправляє небажане масштабування, і я буду використовувати його в майбутньому.
Дізлі,

5
Як примітка, у мене є, <meta name="viewport" content="width=device-width, initial-scale=0.5, user-scalable=no">і я все ще отримую жахливе масштабування Chromes
Сем

Це краще, оскільки шрифт розбірливий. Він підтримує пропорцію, одночасно збільшуючи розмір для читабельності. Для мене ідеально.
Дженніфер Мішель

23

Зараз є властивість CSS, яку ви можете встановити для управління цим:

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

Див. Https://developer.mozilla.org/en-US/docs/Web/CSS/text-size-adjust


text-size-Adjust: жоден не працював у мене на останньому андроїд-хромі.
Степан Яковенко

Це найкраще рішення, якщо ви використовуєте газ, розгорнутий як веб-програма.
jpp

Це не працює для мене, але max-height працює.
Раденко Зець

15

Помістіть це у свій скидання. html * {max-height:1000000px;}


спричиняв проблеми зі мною через липкий нижній колонтитул, замість цього потрібно було зробити html body *
Сабріна Леггетт

Це трохи занадто агресивно, якщо ви насправді не стикаєтесь із проблемою з багатьма непередбачуваними елементами. В іншому випадку було б краще орієнтуватися лише на елементи проблеми.
Чейз

1
@Chase - у моєму випадку це були непередбачувані (динамічні) елементи, тому нам довелося застосувати *підхід. Тим не менш, я б стверджував, що це одна з тих незрозумілих речей, про яку ви, напевно, забудете і можуть спричинити проблеми в майбутньому, тому для ремонтопридатності я б, мабуть, залишив це, *навіть якщо на той час це було лише одне / одне мало елементів.
Ед Хінчліфф,

Відразу після того, як я знайшов цю тему і прокоментував, я почав бачити додаткові проблеми, які, як я підозрював, були пов'язані з підвищенням шрифтів. Тож, звичайно (принаймні на даний час) * max-height...у моєму коді є LOL
Чейз

6

Після деяких тестів це правило мені допомогло. Потрібно додати або до елемента, що містить підсилений текст, або його батьківського, залежно від структури div / table.

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

Можливо, значення ширини та висоти повинні бути скориговані відповідно до ваших потреб.


2

Я знайшов рішення для своїх сторінок: надайте батьківському елементу ширину та висоту! Шрифт не буде виходити за межі цих меж, і тому він залишиться маленьким (е-е).


1

Це називається "підвищення шрифтів" і докладно описано в цій помилці WebKit . Наразі немає можливості його відключити.


Схоже, це справді посилення шрифту, але цього можна запобігти, встановивши, max-height: 999999pxяк описано @moeffju.
Чейз
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.