Chrome на Android изменяет размер шрифта


84

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

Как мне это исправить?


1
У вас есть пример? Также какая версия Android и Chrome?
— Junuxx 02

Ответы:


93

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


13
Android Chrome применяет усиление шрифта только к элементам с динамической высотой. Как только вы укажете высоту или максимальную высоту, усиление шрифта не применяется. Установка большого числа max-height проста и не должна иметь побочных эффектов.
— moeffju 01

1
Просто предупреждение за это. Это решило проблему, с которой я столкнулся со шрифтами Chrome на Android, которые не играли хорошо. Однако это нарушило представление сайта ipad на определенных версиях ios.
— Джеймс МакДоннелл,

Кроме того, это вызвало некоторые проблемы на ipad для переходов css3.
— Джеймс МакДоннелл,

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
Это, безусловно, исправляет нежелательное масштабирование, и я собираюсь использовать его в будущем.
— Dizzley 06

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

Так лучше, потому что шрифт разборчивый. Он сохраняет пропорции, увеличивая размер для удобства чтения. Отлично для меня.
— Дженнифер Мишель

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: никто не работал у меня на последнем Android Chrome.
— Степан Яковенко

Это предпочтительное решение, если вы используете газ, развернутый как веб-приложение.
— jpp

15

Поместите это в свой сброс. html * {max-height:1000000px;}


вызывал у меня проблемы из-за липкого нижнего колонтитула, вместо этого пришлось делать html body *
— Сабрина Леггетт

Это слишком агрессивно, если только вы не столкнетесь с проблемой во многих непредсказуемых элементах. В противном случае было бы лучше ориентироваться только на элементы проблемы.
— Чейз

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

Сразу после того, как я нашел эту ветку и прокомментировал, я начал замечать дополнительные проблемы, которые, как я подозревал, были связаны с увеличением шрифтов. Итак, конечно же (по крайней мере, на данный момент) * max-height...в моем коде есть LOL
— Chase

6

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

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

Возможно, необходимо скорректировать значения ширины и высоты в соответствии с вашими потребностями.


2

Я нашел решение для своих страниц: задайте родительскому элементу ширину и высоту! Шрифт не будет выходить за эти границы, поэтому он останется маленьким (er).


1

Это называется «усиление шрифта» и подробно описано в этой ошибке WebKit . В настоящее время нет возможности отключить его.


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