Исправить проблему размера шрифта на мобильном Safari (iPhone), где текст отображается непоследовательно, а некоторые шрифты больше других?

наш сайт отображает несогласованные размеры шрифтов на мобильном Safari - и, насколько мы можем судить, только Mobile Safari. Это очень озадачило нас.

мы проанализировали сайт с Firebug, и неправильные области наследуют правильные стили, но шрифты по-прежнему отображаются с неправильными размерами.

1) посещение http://www.panabee.com.

2) провести поиск доменного имени.

коробки на левой стороне показывают неверные размеры шрифта. Размер шрифта должен соответствовать размеру шрифта на правой стороне (как заголовки коробки, так и копия коробки). Например, названия "вариации" и "Твиттер" намного больше, чем название "альтернативные окончания"."

любая подсказка почему?

4 ответов


Mobile Safari (например, Chrome для Android, Mobile Firefox и IE Mobile) увеличивает размер шрифта широких блоков (во все времена), так что если вы дважды нажмете, чтобы увеличить этот блок (который соответствует блоку по ширине экрана), текст будет разборчивым. Если вы установите -webkit-text-size-adjust: 100% (или none), он не сможет этого сделать, и поэтому, когда пользователь дважды нажимает для увеличения широких блоков, текст будет неразборчиво маленьким; пользователи смогут прочитать его, если они зажмут-увеличить, но тогда текст будет шире чем экран, и они должны будут панорамировать по горизонтали, чтобы прочитать каждую строку текста!

  1. в идеале вы бы исправить это с помощью Адаптивный Веб-Дизайн методы, чтобы сделать ваш дизайн адаптироваться к размерам мобильных экранов (в этом случае у вас больше не будет очень широких блоков, поэтому мобильные браузеры больше не будут регулировать размер шрифта).

  2. если это не вариант, и вы застряли, обслуживая сайт рабочего стола для мобильных пользователей, то см. если вы можете настроить ваш дизайн, так что ни один из ваших блоков текста шире, чем мобильные устройства-ширина (например, 320 пикс для многих портретных телефонов) (вы можете использовать мобильную версию CSS, чтобы избежать влияния настольных браузеров), то мобильный сафари не нужно увеличивать любой размер шрифта (и браузеры, переформатирование текста, как на Андроид браузер и опера Мобайл, и не нужно менять раскладку).

  3. наконец, если вы действительно необходимо предотвратить мобильное сафари от настройка размера шрифта вы можете установить -webkit-text-size-adjust: 100%, но это только в крайнем случае поскольку это, вероятно, вызовет у мобильных пользователей трудности с чтением текста, так как он будет либо слишком мал, либо им придется панорамировать из стороны в сторону после каждой прочитанной строки. Обратите внимание, что вы должны использовать 100% не none, потому что никто не имеет неприятных побочных эффектов в настольных браузерах. Есть также эквивалент -moz-text-size-adjust и -ms-text-size-adjust свойства для мобильных Firefox и IE Мобильный.

Edit: например, в вашем случае самый простой, вероятно, является 2-й альтернативой, поэтому вы можете попробовать добавить следующий CSS:

/* Mobile browsers only */
@media only screen and (max-device-width: 480px) {
    table#all_results {
        width: auto;
    }
    td#main_box {
        width: 320px;
    }
    td#side_box {
        width: 320px;
    }
}

хотя это не идеально для hardcode 320px, как это; вы можете улучшить это, используя различные медиа-запросы CSS или получая ширину устройства из JavaScript.


вот что в конечном итоге сработало (протестировано только на iPhone 4 tho):

/* Mobile browsers only */
@media only screen and (max-device-width: 480px) {      
        td#main_box { -webkit-text-size-adjust:100% }               
}

мы присудили ответ Джону, так как его решение было основой этого.

вероятно, не самый элегантный ответ, но он работает.


-webkit-text-size-adjust: none; заставит вас не сможет зум в мобильных устройствах. Вы должны использовать 100% вместо.


-webkit-text-size-adjust:none;

вероятно, решит вашу проблему.

target-element { -webkit-text-size-adjust:80% } 

будет по-прежнему масштабировать, но сохраняет его на 80% меньше, чем по умолчанию webkits.