-webkit-text-size-adjust
iOS 5 と iOS 6 で UIWebView の CSS プロパティを使用すると、行の高さが正しく表示されません。すべての 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 の両方の値を小さくすることです。行の高さの値がパーセントで指定されていてもです。(これはバグのようです。) したがって、iOS 6.0 では、このテキストを私が書いたかのように表示しますfont-size: 1em; line-height: 75%;
。その結果、行の高さがフォント サイズの 75% になるように計算されます。つまり、テキストの行が非常に接近していて、ほとんど重なっています。
iOS 6.0 での解決策は、line-height: 3em;
. ただし、これは iOS 5.1 では機能しません。
iOS のバージョンに依存する CSS 属性はないと思います。アプリケーションを両方の iOS バージョンで動作させるにはどうすればよいですか?