Я получаю неправильную высоту строки при использовании свойства -webkit-text-size-adjust
CSS в UIWebView под iOS 5 и iOS 6. Кажется, что ошибка в iOS 5, а также в iOS 6, но поведение отличается, и я пытаясь исправить презентацию, чтобы она работала во всех версиях IOS.
То, что я пытаюсь достичь: загружаю следующий HTML-код в UIWebView. Код просто устанавливает размер шрифта, высоту строки и настройку размера текста для всего текста.
<html><head>
<style language="text/css">
body {
-webkit-text-size-adjust : 50%;
}
p {
font-size: 2em;
line-height: 3em;
/* line-height: 150%; */
}
</style>
</head><body>
<p>Text text text... </p>
</body>
Значение 50% атрибута -webkit-text-size-adjust
должно уменьшать (на 50%) размер всего текста. Имеет смысл одновременно уменьшить размер шрифта и высоту линии, иначе текст будет выглядеть довольно уродливым. Теперь кажется, что ни iOS 5.1, ни iOS 6 не делают этого последовательно. (В моем приложении я должен использовать атрибут -webkit-text-size-adjust
, потому что пользователь должен иметь возможность изменять размер текста.)
Поведение iOS 5.1 заключается в уменьшении размера шрифта; высота линии остается равной одному значению. Поэтому iOS 5.1 интерпретирует вышеуказанный HTML, как будто я написал font-size: 1em; line-height: 3em;
. UIWebView на iOS 5.1 покажет небольшой текст с огромными промежутками между строками.
Решение для iOS 5.1 состояло в том, чтобы написать line-height: 150%;
, а не line-height: 3em
. Затем iOS 5.1 сохранил значение line-height
без изменений на 150%, а размер шрифта был уменьшен. Поэтому текстовое отображение было правильным.
Поведение iOS 6.0, как следует из моих тестов, заключается в уменьшении как размера шрифта, так и значений высоты строки, даже если значение высоты строки указано в процентах. (Кажется, это ошибка). Поэтому iOS 6.0 отобразит этот текст так, как будто я написал font-size: 1em; line-height: 75%;
. В результате высота линии вычисляется как 75% от размера шрифта, т.е. Строки текста настолько близки друг к другу, что они почти перекрываются.
Решение на iOS 6.0 должно написать line-height: 3em;
. Но это не будет работать на iOS 5.1.
Я не думаю, что есть атрибут CSS, который чувствителен к версии iOS... Как я могу заставить приложение работать на обеих версиях iOS?