私のウェブページでは、すべての文字に適したフォントを選択しました。ただし、すべての数字について、別のフォントを使用したいと思います。
ページ上のすべての番号をターゲットにするCSSルールを設定する方法はありますか?
CSSで厳密に実行できない場合、最初に考えたのは、正規表現を使用してすべての数値を「数値」クラスのスパンで囲み、そのクラスにフォントを適用することです。これを行うためのより良い方法はありますか?
私のウェブページでは、すべての文字に適したフォントを選択しました。ただし、すべての数字について、別のフォントを使用したいと思います。
ページ上のすべての番号をターゲットにするCSSルールを設定する方法はありますか?
CSSで厳密に実行できない場合、最初に考えたのは、正規表現を使用してすべての数値を「数値」クラスのスパンで囲み、そのクラスにフォントを適用することです。これを行うためのより良い方法はありますか?
JavaScriptでこれを行うには、ドキュメントをトラバースするだけspan
で、属性を持つ要素内の任意の数字のシーケンスをラップし、CSSでclass
宣言することができます。font-family
原則として純粋なCSSでも可能ですが、現在WebKitブラウザーのみがこれをサポートしています。
@font-face {
font-family: myArial;
src: local("Courier New");
unicode-range: U+30-39;
}
@font-face {
font-family: myArial;
src: local("Arial");
unicode-range: U+0-2f, U+40-10FFFF;
}
body { font-family: myArial; }
最後に、そして最も重要なことは、それをしないでください。フォントの数字に不満がある場合は、そのフォントを使用しないでください。
<span class="number">
数字を音で囲むことは、意味的に適切なアプローチのようです。
実際、CSS3は代替手段を提供しておらず、CSS4で今後何も予定されていません。最新のCSS3推奨事項を見ると、コンテンツセレクターは指定されていませんが、古い2001候補の推奨事項が疑似クラスを提供する最後のバージョンでした:contains()
。
これにより、数字を含む要素を照合できます。
/* Deprecated CSS3 */
p:contains(0), p:contains("1"), p:contains("2") {
background-color: red;
}
これが実際に利用可能であったとしても、それp
は数ではなく、と一致するので、全体p
がスタイリングされます...あなたが望むものではありません。CSSWGは、数値コンテンツをフォーマットするためのこれらのアイデアを開始しています...それでもあなたが望んでいたものではありません。
CSSを数値に適用するために、追加のマークアップを回避することはできません。