• HOME > 
  • CSS > 
  • CSSのfont-feature-settingsの使い方【...

CSSのfont-feature-settingsの使い方【テキストに文字詰め(カーニング)を設定】

投稿日:

このページにはGoogleアドセンス広告とアフィリエイト広告が含まれています。

カテゴリー記事のアイキャッチ画像
広告
広告

font-feature-settingsプロパティとは?

font-feature-settingsは、フォントの文字詰め(カーニング)を設定するためのプロパティです。

見出しタイトルなどは文字詰めを行わないと文字と文字の間隔が広がり過ぎて不格好に見えてしまうことがあります。

次の例を見て頂くとわかるように、文字詰めを行うと文字間隔が狭まり引き締まった印象を与えます。また、通常の状態では「『」の左側に不自然な余白ができていますが、文字詰めを行うとその余白も解消することができます。

文字詰めの例

不自然な余白が生じる原因は、原稿用紙のようにマス目の中に文字が表示されているためです。下記のように句読点も一文字にカウントするためスペースが発生しています。

マス目の例

読みやすさはあるのでページの本文などはこのままでもよいかもしれませんが、テキストを見栄え良くデザインして表示させるためには文字詰めが必要になります。

font-feature-settingsは、文字本来のサイズに応じて文字詰めを行ってくれます。

CSSのfont-kerningも文字詰め(カーニング)ができるプロパティですが、こちらは日本語に対応していないので、日本語テキストで文字詰めを行う場合はfont-feature-settingsを使う必要があります。

letter-spacingとの違いは?

似たように文字と文字の間隔を設定するプロパティとして「letter-spacing」というものがあります。

font-feature-settingsがひとつひとつの文字のサイズに合わせた適切な文字詰めを設定するのに対し、letter-spacingはテキストの一文字一文字すべてに均一な間隔を設定する機能を持ちます。

2つを合わせて使うことで、思い通りの形にテキストを表示することができるようになります。

リンク先のサムネイル
CSSのletter-spacingの使い方

letter-spacingは、テキストの文字と文字との間隔を設定するためのプロパティです。文字と文字の間を狭めたり、広げたりしてテキストのバランスを整えることができます...【もっと読む】

font-feature-settingsの使い方

font-feature-settingsで文字詰めを行うためには、あらかじめ対象のテキストがOpenTypeのフォントになっている必要があります。すべてのフォントで文字詰めが行えるわけではないので注意が必要です。

OpenTypeフォントについて

OpenTypeフォントとは、Appleが開発したTrueTypeというフォント規格をMicrosoftとAdobeが拡張させたものです。

前述のように一文字づつマス目に収めるような形式になっていますが、「プロポーショナルメトリクス」という文字間隔情報を備えています。font-feature-settingsは、このプロポーショナルメトリクスを有効にすることで文字詰めを行っています。

OpenTypeフォントには、「游ゴシック」や「游明朝」などがあります。

これに対して「MS P ゴシック」「MS P 明朝」などはTrueTypeフォントに該当するためfont-feature-settingsを使っても文字詰めはできません。

font-feature-settingsの書き方

font-feature-settingsは次のように、OpenTypeフォントが持つどの機能を有効にするかを値で指定して使用します。

font-feature-settingsの書き方

文字詰めの種類に添えて記述してある「1」は、文字詰めを有効にするという役割を持っています。「1」を書けば有効、「0」を書くと無効になります。「on」「off」でもOKです。省略した場合は自動的に有効になります。

HTML

<p class="sample">漢字「ひらがな、カタカナ。」</p>
<p class="sample sample1">漢字「ひらがな、カタカナ。」</p>

CSS

.sample{
    font-family:'游明朝','Yu Mincho';
}
.sample1{
    font-feature-settings:"palt" 1;/*文字詰め*/
}

プレビュー

漢字「ひらがな、カタカナ。123&ABCabcabc」
漢字「ひらがな、カタカナ。123&ABCabcabc」

値の種類

日本語に適用できるfont-feature-settingsの値はつぎの通りです。

説明
palt記号などもすべて文字詰め通常

漢字「ひらがな、カタカナ。123&ABCabcabc」

有効

漢字「ひらがな、カタカナ。123&ABCabc」

pwid平仮名カタカナ全角英数字文字詰め通常

漢字「ひらがな、カタカナ。123&ABCabc」

有効

漢字「ひらがな、カタカナ。123&ABCabc」

pkna平仮名カタカナのみ文字詰め通常

漢字「ひらがな、カタカナ。123&ABCabc」

有効

漢字「ひらがな、カタカナ。123&ABCabc」

他にも沢山の値が利用できますが、日本語には効果がないものや、特定のフォントや文字の組み合わせでしか適用されないものが多いので割愛します。

CSS での OpenType 機能の構文 | Adobe

font-feature-settingsが効かない時は?

font-feature-settingsは、前述の通り、すべてのフォントで文字詰めを行える訳ではありません。

font-feature-settingsが効かない時は、まず対象のテキストのフォントがOpenTypeであるかどうかの確認を行いましょう。

それでも効かないときは?

有効なフォントにも関わらず思い通りに反映されない場合は、次のような点を確認してみましょう。

  • コードに記述ミスはないかどうか?
  • 同じセレクターで重複して指定していないか?
  • セレクターの優先順位は正しいかどうか?

コードに記述ミスはないかどうか?

CSSはスペルミスやコロン・セミコロンを付け忘れているだけで反映されなくなりますので今一度確認してみてください。font-feature-settingsの箇所以外が間違っていても同様ですので遡ってチェックしましょう。

同じセレクターで重複して指定していないか?

CSSは同じセレクターの場合、後から記述したものが優先されます。同じセレクターでfont-feature-settingsを指定していないか確認してみてください。

セレクターの優先順位は正しいか?

同じ要素でもCSSのセレクターには優先順位があり、基本としてはタグよりもクラス、クラスよりもIDに指定した値が優先されます。以前に別のセレクターを使ってfont-feature-settingsを指定していないかなど確認してみてください。

リンク先のサムネイル
CSSのセレクターとは?【種類と使い方をわかりやすく解説】

CSSのセレクタ―は、スタイルを適用させたいHTML要素の特定に使います。このページではセレクターの種類と使い方を解説します。セレクタ―を使ってスタイルを指定することで...【もっと読む】

まとめ

以上が、CSSのfont-feature-settingsプロパティの使い方です。

フォントや文字間隔など細部までこだわるとページ全体の見栄えもよくなりますので、font-feature-settingsやletter-spacingで調整してみて下さい。

関連する記事

サムネイル

CSSでテーブルの先頭行や先頭列を固定する方法【sticky……

2024年04月12日
CSSのpositionプロパティの「sticky」を使えば、CSSだけでテーブルの行も列も簡単に固定することができるのでご紹介します。情報量の多い表を作る場合は、スクロールした時に項目名などの行や列は固定させておいたほうが見やすくなります。
サムネイル

CSSのwhite-spaceプロパティの使い方【半角スペー……

2024年03月07日
SSのwhite-spaceは、テキストにおける半角スペース・改行・タブの扱いと折り返しの有無を設定するプロパティです。
サムネイル

CSSのメディアクエリでスマホでのホバーの挙動の対策を行う【……

2023年10月01日
最終更新日:2023年09月28日
要素をタップしたときにホバー時のスタイルが適用され続けるという経験はありませんか?CSSだけで簡単にスマホでの疑似要素「hover」の挙動の対策を行う方法をご紹介します。
サムネイル

CSSの疑似クラス「:focus」の使い方【focus-wi……

2023年05月01日
最終更新日:2023年05月31日
CSSでは疑似クラスである「:focus」を用いることで、フォーカス時のスタイルを設定することが可能です。一方「:focus-within」は、その要素自体もしくは子要素にフォーカスがある状態で有効になります。
サムネイル

CSSのclamp()・max()・min()の使い方【プロ……

2023年01月16日
最終更新日:2023年03月10日
clamp()・max()・min()はCSSのプロパティの値の指定に利用できる比較関数です。複数の値を比較し1つの値を導きだし上限や下限を設定できます。
サムネイル

CSSのletter-spacingで文字間隔を設定【中央寄……

2023年01月16日
最終更新日:2023年03月10日
letter-spacingは、テキストの文字と文字との間隔を設定するためのプロパティです。文字と文字の間を狭めたり、広げたりしてバランスを整えることができます。