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

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

投稿日:

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

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

本記事は執筆時点(2023年01月16日)の情報をベースにしております。掲載している情報が最新ではない可能性がありますので何卒ご容赦ください。

広告
広告

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内で独自の変数を定義・参照する方法【カスタムプロパティ……

2025年02月06日
今更ながらCSSで変数を使えることを知ったので、今回はカスタムプロパティの使い方について備忘録としてまとめてみます。 CSSのカスタムプロパティとは? CSSの […]
サムネイル

CSSのcounter関数でカウントを行って連番を表示する

2025年02月06日
最近になって、contentプロパティのcounter関数を使えばCSSだけで要素をカウントして連番を表示できることを知りました。本記事ではcounter関数の […]
サムネイル

CSSのattr関数でHTMLの属性値を取得・表示する【ツー……

2025年02月06日
最近になって疑似要素で使うことができるCSSのattr関数の存在を知りました。コーディングの幅を広げる便利な関数だと感じましたので学んだ内容を備忘録としてまとめ […]
サムネイル

CSSのoutlineプロパティの使い方【borderとの違……

2025年02月06日
CSSのoutlineプロパティについて学び直す機会がありましたので、borderとの使い分けを含めて備忘録としてまとめます。 outlineプロパティとは? […]
サムネイル

CSSでPNG画像に影を落とす方法【filterプロパティd……

2025年01月15日
CSSでドロップシャドウをつけるには? CSSで要素に影(ドロップシャドウ)を付ける手段としては「box-shadow」や「text-shadow(テキストの場 […]
サムネイル

CSSのfilterプロパティの関数の種類と効果をまとめ【フ……

2025年01月06日
最終更新日:2025年01月15日
IEのサポートが終了したので、これまで使う機会の少なかったfilterプロパティを改めて調べたところ、CSSでの表現の幅を広げてくれる画期的なプロパティだと気づ […]
サムネイル

CSSで写真にぼかし加工を加える方法【filterプロパティ……

2025年01月06日
CSSだけで写真をぼかせる? CSSのfilterプロパティのblur()関数を使うと、画像(要素)にぼかしを加えることができます。 画像編集ソフトを使うことな […]