1

CSS を使用して、次の行を使用してバイリンガル要素のスタイルを設定しています。

 font-family:persianFont, englishFont;

persianFont と englishFont の両方が で定義されてい@font-faceます。問題は、フォントがそのように作成されているため、englishFont の文字が少し大きく表示されることです。サンプル文は次のようにレンダリングされます。

BIG_ENGLISH_WORDS_small_persian_BIG_ENGLISH_AGAIN...

それで、私の質問は、 persianFont を少し大きくして(スケールを大きくして)、バイリンガルのペルシア語と英語の文の行が両方とも同じサイズで正しく表示されるようにするにはどうすればよいですか? これはまったく可能ですか?他の解決策はありますか?

前もって感謝します

4

2 に答える 2

2

理想的な解決策として、スパンを個別に作成し、font-size を大きくすることをお勧めします。

bodyデフォルトfont-sizeが であると仮定すると12px、それに比例して、スパン サイズを増やす必要があります。

例えば、

span{
     font-size:14px;
}

たとえば、あなたの例から、

<p>BIG_ENGLISH_WORDS_<span>small_persian</span>_BIG_ENGLISH_AGAIN...</p>

お役に立てれば。

PS: クラスまたは ID セレクターを作成することで、同じことができます。

于 2013-10-09T06:44:14.250 に答える
1

やっと意味がわかりました。unicode-rangeCSSプロパティを見たほうがいいと思います。まだ十分なブラウザー サポートがない可能性がありますが、それはターゲット ユーザーにも依存します。Chrome には、少なくともかなり良いサポートがあります。

24ways.org で読んだことを覚えています。以下はDrew McLellanの記事からの抜粋です( http://24ways.org/2011/creating-custom-font-stacks-with-unicode-range/ )

記述子は、unicode-rangeページで使用される文字を完全にカバーしていないフォントを使用する場合に役立つように設計されています。ルールにunicode-range プロパティを追加すること@font-faceで、フォントがカバーする文字の範囲を指定できます。

@font-face {
    font-family: BBCBengali;
    src: url(fonts/BBCBengali.ttf) format("opentype");
    unicode-range: U+00-FF;
}

この例では、フォントは 、Unicode テーブルの先頭にある非刺激的な制御文字 (感嘆符のような記号は で始まります ) から ÿ atU+00までの範囲の文字に使用されます。基本的なラテン文字の範囲。U+FFU+21U+FF

同じファミリに異なる範囲の複数の@font-faceルールを追加することで、異なるフォントを使用してページで使用する文字を完全にカバーすることができます。

私がJsFiddleに投稿した、 Richard Ishidaによる素晴らしい記事 (unicode-rangeテスト ケースを伴うもの)もあります。

[編集]

したがって、次のステップは、ペルシア語に対応する Unicode コード ポイントを特定し、上記のように CSS ルールを作成して、それらのコード ポイントを対象とし、それに応じてフォント サイズを変更することです。

于 2013-10-09T18:30:08.697 に答える