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.