在 iOS 5 和 iOS 6 下的 UIWebView 中使用-webkit-text-size-adjust
CSS 属性时,呈现的行高不正确。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;
。iOS 5.1 上的 UIWebView 将显示行之间有巨大间隙的小文本。
iOS 5.1 的解决方案是编写line-height: 150%;
而不是line-height: 3em
. 然后 iOS 5.1 将line-height
值保持在 150% 不变,同时减小了字体大小。因此文本显示是正确的。
根据我的测试,iOS 6.0 的行为是同时减小font -size 和 line-height 值——即使 line-height 值以percent给出。(这似乎是一个错误。)因此,iOS 6.0 将显示此文本,就好像我写了font-size: 1em; line-height: 75%;
. 结果是行高计算为字体大小的 75%,即文本行非常靠近,几乎重叠。
iOS 6.0 上的解决方案是编写line-height: 3em;
. 但这不适用于 iOS 5.1。
我认为没有对 iOS 版本敏感的 CSS 属性......如何让我的应用程序在两个 iOS 版本上都工作?