CSSのfont-variantでフォントの表示スタイルを変更する方法をわかりやすく解説

スポンサーリンク

font-variantプロパティは、フォントのスタイルを異なるバリエーションに変更するためのプロパティです。たとえば、小型の大文字(スモールキャップ)や、異なる数字の書式を指定することができます。

スポンサーリンク

font-variantの値とその効果の一覧

  • normal: デフォルトのフォントスタイルを使用します。
  • small-caps: 小文字を大文字に変換し、小型にした大文字を使用します。
  • all-small-caps: 全ての文字を小型の大文字に変換します。
  • lining-nums: 数字をライン上に揃えたスタイルにします。
  • ordinal: 番号に序数を適用します(例: 1st, 2nd)。
  • slashed-zero: ゼロに斜線を引いたスタイルにします。

注意点と関連情報

font-variantは、テキストの表示を微調整する際に役立ちます。特に、見出しや強調したいテキストに使用されることが多く、小型の大文字や異なる数字フォーマットを適用することで、フォントのバリエーションを豊かにできます。

font-variantプロパティが効かない時の原因と対策

フォントがバリエーションスタイルをサポートしていない

font-variantプロパティは、小文字の大文字化(small-caps)や他の特定のスタイル(例: normalall-small-caps)を指定するために使用されますが、フォント自体がこれらのバリエーションスタイルをサポートしていない場合、効果が現れません。
対策: 使用しているフォントが小文字の大文字化(small-caps)や他のバリエーションスタイルをサポートしているか確認しましょう。サポートされていないフォントでは、別のフォントを選ぶか、代替フォントを指定することで解決できます。

font-feature-settingsが優先されている

font-variantプロパティは、OpenTypeのフォント機能を制御しますが、font-feature-settingsプロパティが指定されている場合、これがfont-variantの効果を上書きしてしまうことがあります。
対策: font-feature-settingsfont-variantと競合していないか確認し、必要に応じて調整します。特に、小文字の大文字化などのスタイルに関連する設定がfont-feature-settingsで明示的に指定されていないか確認します。

font-familyプロパティとの相性

font-variantは、font-familyで指定されたフォントに依存しますが、フォントがsmall-capsや他のバリエーションをサポートしていない場合、font-variantは機能しません。
対策: font-familyで指定されたフォントがfont-variantをサポートしているか確認し、サポートされていない場合は、適切なバリエーションをサポートするフォントを選ぶか、フォールバックのフォントを指定しましょう。

共通するCSSコード

.css-sample-container {
  padding: 20px;
  border: 1px solid #ccc;
  margin-bottom: 20px;
  width: 300px;
  background-color: #f9f9f9;
  text-align: center;
}

.css-sample-text {
  font-family: 'Arial', sans-serif;
  font-size: 20px;
}

font-variant: normal

通常のフォントスタイルを使用する例です。

HTMLコード

<div class="css-sample-container">
  <p class="css-sample-text css-sample-font-variant-normal">Sample Text</p>
</div>

CSSコード

.css-sample-font-variant-normal {
  font-variant: normal;
}

表示結果

Sample Text

font-variant: small-caps

小文字をスモールキャップ(小型の大文字)に変換する例です。

HTMLコード

<div class="css-sample-container">
  <p class="css-sample-text css-sample-font-variant-small-caps">Sample Text</p>
</div>

CSSコード

.css-sample-font-variant-small-caps {
  font-variant: small-caps;
}

表示結果

Sample Text

font-variant: all-small-caps

全ての文字を小型の大文字に変換する例です。

HTMLコード

<div class="css-sample-container">
  <p class="css-sample-text css-sample-font-variant-all-small-caps">Sample Text</p>
</div>

CSSコード

.css-sample-font-variant-all-small-caps {
  font-variant: all-small-caps;
}

表示結果

Sample Text

font-variant-numeric: lining-nums

数字をライン上に揃えるスタイルにする例です。

HTMLコード

<div class="css-sample-container">
  <p class="css-sample-text css-sample-font-variant-lining-nums">1234567890</p>
</div>

CSSコード

.css-sample-font-variant-lining-nums {
  font-variant-numeric: lining-nums;
}

表示結果

1234567890

font-variant: ordinal

序数(例: 1st, 2nd)を適用する例です。

HTMLコード

<div class="css-sample-container">
  <p class="css-sample-text css-sample-font-variant-ordinal">1st, 2nd</p>
</div>

CSSコード

.css-sample-font-variant-ordinal {
  font-variant: ordinal;
}

表示結果

1st, 2nd

font-variant-numeric: slashed-zero

ゼロに斜線を引いたスタイルにする例です。

HTMLコード

<div class="css-sample-container">
  <p class="css-sample-text css-sample-font-variant-slashed-zero">1230456789</p>
</div>

CSSコード

.css-sample-font-variant-slashed-zero {
  font-variant-numeric: slashed-zero;
}

表示結果

1230456789

まとめ

  • font-variantプロパティは、テキストの特定のバリエーション(スモールキャップや数字スタイルなど)を制御します。
  • 主要な値としてnormalsmall-capslining-numsなどがあります。
  • スタイルの調整をする際に、表示の微調整に役立つプロパティです。