ホームページ  >  記事  >  ウェブフロントエンド  >  中国語と英語の文字とCSSの漢字の行の高さが異なる場合はどうすればよいですか?

中国語と英語の文字とCSSの漢字の行の高さが異なる場合はどうすればよいですか?

高洛峰
高洛峰オリジナル
2016-11-24 14:33:161982ブラウズ

最近、CSS を作成するときに問題に遭遇しました。英語の文字と中国語の文字の行の高さが異なるため、すべての漢字、すべての英語の文字、および中国語の文字が混在する場合に設定されたマージンまたはパディングのプロパティにずれが生じます...もちろん、これは事実です。IE ブラウザ、Safari、Google Chrome、Firefox、Opera には同様の問題がありません。

原因:

すべての漢字が選択されている場合:

通常、テキストを選択すると、漢字が上揃えになっているのがわかります(具体的にはフォントが選択されていることが分かります。背景から下に余分な部分があるように見えます。CSSで言うとpadding-bottom属性が生成されます。説明すると問題は、padding 属性があるとします。)

すべて英語の文字が使用されている場合:

すべての英語文字が使用されている場合のすべての漢字の下揃えと同様に、padding-top に似た属性が表示されます。すべて漢字であっても、すべて英語であっても、行の高さは同じです。

文字と漢字の混合:

しかし、中国語の文字と英語の文字を一緒にすると、違いがわかります。次に、すべてのフォントを選択すると、このときのパディングがpadding=padding-top+paddingであることがわかります。 . -bottom、つまり、余分なpadding-top(またはpadding-bottom)が存在します。通常、フォントが12pxの場合、余分な部分は約2pxです。

解決策:

フォントの変更:

本来は line-height を使って修正したかったのですが、 line-height は各行のベースライン間の距離であり、中国語と英語の文字のベースラインは異なるため、したがって、これは機能せず、1行だけのナビゲーションメニューとして使用すると役に立ちません。
この問題を解決できる唯一の方法は、「simsun」です。ファイル名は「Song Ti」です。 Windows フォントフォルダー内の「simsun」であり、弟の「simhei」は通称「Heishi」です。
したがって、解決策はフォントファミリーを「simsun」に設定することです。これにより、一部の効果が失われる可能性があります。誰かがより良い解決策を持っている場合は、アドバイスをお願いします。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。