Масштабирование сложное, потому что браузеры имеют три средства для этого:
- Только масштабирование текста (стандартные IE и Safari <= 3 way) </li>
- Интеллектуальное масштабирование всей страницы (опция Opera, FF 3+, Safari 4+, Chrome и IE 9)
- Визуализация страницы в «нормальном» размере и масштабирование всего объекта (способ iPhone, опционально в Safari5 на Lion)
Проблема в том, что браузеры не делают этого разумно:
- IE <= 9 не будет масштабировать элементы, размер которых измеряется в пикселях, никогда.Если ваша страница использует все шрифты в px, она не масштабируется.Если вы затем зададите базовый шрифт как что-то вроде 10px, пользователям IE, которые не смогут его прочитать, не повезет, если у них не будет IE 9. </li>
- Safari (и некоторые другие) будет, если установлен масштаб шрифтовтолько масштабирование шрифтов в px, но без настройки высоты строки или другого макета, указанного в px.Это усугубляется до крайности.
- Safari 4+ не будет масштабировать шрифт, указанный в процентах от значения в пикселях.Это означает, что если ваш базовый шрифт имеет размер 10px и вы указываете селектор как имеющий font-size: 100%, каждый элемент и изображение будут увеличиваться, а текст тупо - нет.Это сломано, и я не могу заставить никого в Apple это признать.Chrome, вероятно, страдает тем же идиотизмом.
Решение
Я должен сказать, что первым шагом является серьезное оскорбление любого, кто использует базовый шрифт на всем сайте.10 пикселей, потому что с все более и более высоким показом DPI это просто жестокая вещь для ваших пользователей.Но это решение посетителей.Ваш автор должен быть немного другим:
- Если ваш сайт не имеет фиксированной ширины 740 пикселей или чего-то еще, установите базовый шрифт на 1em и оставьте его там.Если вы не можете отойти от модели дизайна 740px, не устанавливайте базовый шрифт меньше 12px.С экранами 100 точек на дюйм, 12px составляет 8.6pt.При разрешении 132 DPI (iPhone4 и других устройствах) он составляет 6,5 пикс.Доступна всем, кому за 40, даже близко, не говоря уже о таких людях со слабым зрением, как я.Следовательно, шрифт с разрешением 10px, столь любимый людьми, которые считают текст «акцентом» страницы, равен 5,5pt на экране с разрешением 132 DPI.
- Если в заголовке используется изображение, которое нельзя масштабировать, сделайтеубедитесь, что ваш заголовок выглядит хорошо, если все за исключением масштабирования.Укажите шрифты заголовка в пикселях, переопределяя 1em в базе.IE <= 9 никогда не масштабирует его, никогда.Safari <4, вероятно, испортит его.Ничего не поделаешь. </li>
- Убедитесь, что ваш CSS и макет допускают переполнение по вертикали или прокрутке.Переполнение прокрутки не работает на iOS, но все, что у нас есть, это все равно пинч-зум.Нетрудно сделать ваше содержимое body жидким.Fluid-width требует больше работы (но я тоже так делаю!)
- Никогда не измеряйте шрифты в процентах.Всегда используйте дроби их.1.2em составляет 120%.Аналогичным образом, 0,75em составляет 75%.Я никогда не использую базовый шрифт менее 0,75 мкм, и только для случайного текста.
Результат
IE может увеличить тело вашей страницы,но не заголовок.
Safari 4 увеличит масштаб всей страницы.Избегая процентного содержания основного шрифта в пикселях, вы избегаете ошибки Safari, которую я не могу заставить Apple признать, что шрифты НИКОГДА не масштабируются, даже если каждая другая часть страницы делает это.Вероятно, это проблема, с которой вы столкнулись.
Вероятно, iPhone будет продолжать зависеть от масштабирования, если вы не предоставите мобильную таблицу стилей.(Если вы это сделаете, пожалуйста, не устанавливайте max-zoom: 1.0, это раздражает!)
Вот и все в двух словах.