言語に応じてCSSを使用してテキストのスタイルを設定する方法はありますか?
たとえば、フォントTahomaはアラビア語のテキストに広く使用されていますが、同じテキストサイズの英語のテキストの場合、そのサイズは非常に小さいです。
したがって、アラビア語のテキスト内に英語のテキストがある場合、テキスト言語の変更を自動的に検出し、アラビア語のテキストに含まれる英語のテキストに大きなフォントサイズを使用する方法はありますか。
ありがとう。
言語に応じてCSSを使用してテキストのスタイルを設定する方法はありますか?
たとえば、フォントTahomaはアラビア語のテキストに広く使用されていますが、同じテキストサイズの英語のテキストの場合、そのサイズは非常に小さいです。
したがって、アラビア語のテキスト内に英語のテキストがある場合、テキスト言語の変更を自動的に検出し、アラビア語のテキストに含まれる英語のテキストに大きなフォントサイズを使用する方法はありますか。
ありがとう。
CSS にはこれを行うメカニズムはありませんが、JavaScript のすべてのテキスト ノードを反復処理し、無意識に文字 A ~ Z をテストすることで運試しできます(ただし、これはテキストが英語match(/^[a-z]+$/i)
になることを保証するものではありません)。
true の場合、次のようなクラスを親要素にアタッチし、appears-english
CSS を次のようにすることができます.appears-english { font-size: 120% }
。
リクエストに応じて、ここにいくつかのコードがあります...
var divs = document.getElementsByTagName('div');
for (var i = 0, divsLength = divs.length; i < divsLength; i++) {
var div = divs[i];
if (div.firstChild.nodeValue.match(/^[a-z]+$/)) {
div.className += 'appears-english';
}
}
.appears-english {
font-size: 170%;
}
jsFiddle .
フィドル[a-z]
\w
から、数字がある場合は一致しないことがわかります。正規表現を.
ところで、アラビア文字も含む要素内で英語の文字を更新する場合は、replace()
それらを使用して要素でラップし、そのspan
要素に追加appears-english
する必要があります。