Revised: Jun./20th/2004
フォントとは、テキストを表示する文字の形(グリフ)の集合です。一般的な区分けでは、ゴシック体、明朝体などがありますが、その他にも、大きさ、太さ、斜体などの特性があります。同じデザイン系統に含まれる複数のフォントの集合を、フォント・ファミリーと呼びます。
CSS2 では、フォント関連のプロパティとして、つぎのものが挙げられます。
font-family
'font-style
'font-variant
'font-weight
'font-stretch
'font-size
'font-size-adjust
' も同時に指定できます。これらのプロパティは、'font-stretch
' と 'font-size-adjust
' を除いたものは、省略プロパティ 'font
' で、一括指定が可能です。
※ 'font-stretch
' と 'font-size-adjust
' は、CSS2.1 では存在しません。
font-family
プロパティ 'font-family
' は、セレクタにマッチした対象のフォント・ファミリーを指定します。フォントファミリーに複数のフォントが含まれる場合は、他のフォント関連のプロパティの指定に依存して、採用されるフォントが決定します。
プロパティ名 | 値 |
---|---|
font-family | [[ <family-name> | <generic-family> ],]* [<family-name> | <generic-family>] | inherit |
'font-family
' は子要素に継承されます。デフォルトの値は、ユーザエージェントに依存します。inherit
は、親要素の値を明示的に継承する指定です。
複数のフォントファミリーを指定する場合は、カンマ区切りのリストで指定します。
<family-name>
<generic-family>
serif
', 'sans-serif
', 'cursive
', 'fantasy
', 'monospace
'。これらの一般フォントファミリ名はキーワードであり、引用符で括ることはできません。<family-name>
CSS では、複数のフォントを、優先順位をつけたカンマ区切りのリストで指定できます。
次の例の場合は、英数文字は "Georgia" でレンダリングされ、"Georgia" に存在しない文字は、"MS 明朝" でレンダリングされるはずです。
p { font-family: Gergia, "MS 明朝"; }
閲覧しているコンピュータに、何れのフォントも実装(インストール)されていない場合は、ブラウザに標準として登録されているフォントが使われます。デザインを詳細に指定する場合にフォントを指定するには、画像にするのが一般的です。
<generic-family>
CSS では、次の五つの一般ファミリ名をキーワードとして定義しています。これらは、デザイン系統で分類したもので、製作者が指定した <font-family>
が何れも利用できない場合、最後に採用される、最悪の場合のフォールバック機能として提供されます。
各々の一般ファミリ名に、ブラウザがどのフォントを関連付けているかは知るすべがありませんし、全てが異なるフォントに関連づいている保障もありませんが、個別のフォント名を指定するよりも、意図したデザインに近く表示される可能性が高まります。
キーワード | 概要 |
---|---|
serif | ひげつき文字で、縦横線に強弱がある。明朝体系統のフォント。 |
sans-serif | ひげのない文字で、線に強弱がなく、跳ね払いがない。ゴシック体系統のフォント。 |
cursive | 筆記体。続け書き風と手書き風のフォント。 |
fantasy | 装飾が主となるフォント。絵文字も含む。 |
monospace | 固定幅フォントで、タイプライター体とも呼ばれる。 |
'font-fmaily
' の値のリストの最後には、指定した全てのフォントが利用できない場合に備えて、一般フォントファミリを指定するように推奨されます。
次の例の場合は、"Georgia" と "MS 明朝" の両方とも利用可能でない場合は、serif に関連付けられたフォントが使われます。通常は、明朝体系統のフォントが関連付けられていると期待できます。
p { font-family: Gergia, "MS 明朝", serif; }
ひげ付きの文字で、跳ね、払いがあり、線に強弱を持ちます。印刷物は、serif が読みやすいとされます。
serif | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
---|---|
'Times' | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
'Times New Roman' | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
'Century' | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
'Georgia' | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
ひげなしの文字で、跳ね、払いがなく、線に強弱がありません。太字/細字の区別が付きやすく、モニターでは、sans-serif が読みやすいとされます。
sans-serif | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
---|---|
'Helvetica' | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
'Arial' | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
'Verdana' | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
手書き風の文字で、筆記体を含みます。
cursive | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
---|---|
'Zapf Chancery' | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
'Comic Sans MS' | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
'Monotype Corsiva' | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
装飾が主となるフォントです。
fantasy | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
---|---|
'Cottonwood' | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
'alba' | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
全てのグリフが同じ幅を持ち、タイプライター体とも呼ばれます。monospace でない、グリフごとに幅が異なるフォントを、プロポーショナルフォントと呼びます。自然言語の英文はプロポーショナルフォントが読みやすいとされます。
コンピュータコードや SYSLOG のメッセージなどは monospace でないと、読みづらいことがあります。日本語の文章も monospace が読みやすいとされます。
monospace | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
---|---|
'Courier' | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
'Courier New' | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
'Andale Mono' | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
'Lucida Console' | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
font-style
プロパティ 'font-style
' は、セレクタにマッチした対象のフォント・ファミリーの、普通(normal)/イタリック(italic)/斜体(oblique)の区別を指定します。
プロパティ名 | 値 |
---|---|
font-style | normal | italic | oblique | inherit |
'font-style
' は子要素に継承されます。デフォルトの値は、normal
です。inherit
は、親要素の値を明示的に継承する指定です。
フォントファミリーに、イタリックやオブリークが存在すれば、該当するフォントが使われます。イタリックは、斜体よりも続け書き風だとされます。いずれも存在しない場合は、標準フォントを傾けただけのものが使われます。
normal | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
---|---|
italic | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
oblique | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
normal | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
---|---|
italic | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
oblique | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
font-variant
プロパティ 'font-variant
' は、セレクタにマッチした対象のフォント・ファミリーの、小文字(normal)/スモールキャプス(small-caps)の区別を指定します。
プロパティ名 | 値 |
---|---|
font-variant | normal | small-caps | inherit |
'font-variant
' は子要素に継承されます。デフォルトの値は、normal
です。inherit
は、親要素の値を明示的に継承する指定です。
値に small-caps
を指定する場合、フォントファミリーに、スモールキャプスフォントが存在すれば、該当するフォントが使われます。存在しない場合は、通常の大文字を使ったり、大文字を小文字の高さにして表示します。
address { font-variant: small-caps }
normal | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
---|---|
small-caps | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
normal | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
---|---|
small-caps | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
font-weight
プロパティ 'font-weight
' は、そこで使われているフォントの、グリフの線の太さを指定します。
プロパティ名 | 値 |
---|---|
font-weight | normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit |
'font-weight
' は子要素に継承されます。デフォルトの値は、normal
です。inherit
は、親要素の値を明示的に継承する指定です。
数値で指定する場合は、100-900 の範囲内で 100 飛びで指定し、数字が大きい方が太くなります。normal
が 400
と同じで、bold
は 700
と同じです。bolder
は、継承した値と同じかそれよりも太く、lighter
は、継承した値と同じかそれよりも細くなります。
strong { font-weight: bolder }
100 | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
---|---|
400 | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
700 | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
900 | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
100 | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
---|---|
400 | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
700 | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
900 | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
font-stretch
プロパティ 'font-stretch
' は、そこで使われているフォントの、グリフの幅を指定します。
プロパティ名 | 値 |
---|---|
font-stretch | normal | wider | narrower | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | inherit |
'font-stretch
' は子要素に継承されます。デフォルトの値は、normal
です。inherit
は、親要素の値を明示的に継承する指定です。
文字の幅の狭い順に並べると、次のようになります。
wider
/narrower
の場合は、継承した値と同じかそれよりも広く/狭くなります。
h2 { font-stretch: extra-expanded }
ultra-condensed | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
---|---|
condensed | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
normal | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
expanded | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
ultra-expanded | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
ultra-condensed | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
---|---|
condensed | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
normal | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
expanded | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
ultra-expanded | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
この指定が有効になるブラウザ、ユーザエージェントは、存在しないものと思われます。
font-size
プロパティ 'font-size
' は、そこで使われているフォントの大きさを指定します。
プロパティ名 | 値 |
---|---|
font-size | <absolute-size> | <relative-size> | <length> | <percentage> | inherit |
'font-size
' は子要素に継承されます。デフォルトの値は、medium
です。inherit
は、親要素の値を明示的に継承する指定です。
<absolute-size>
[ xx-small | x-small | small | medium | large | x-large | xx-large ]
<relative- size>
[ larger | smaller ]
<length>
<percentage>
h1 { font-size: xx-large } h2 { font-size: x-large } h3 { font-size: large } h4,h5,h6 { font-size: medium } strong { font-size: larger } li { font-size: .9em } th,dt { font-size: 110% }
一般的には、フォントのサイズは、キーワード指定、em
単位指定、%
指定の何れかが好まれます。ブラウザの設定で文字の大きさを簡単に変更できるため、アクセシビリティの観点で好ましいからです。その反面、デザインを固定できないというデメリットもあります。
きめ細かいデザインの指定には、px
単位が便利ですが、ブラウザで文字の大きさを変更できないというデメリットもあります。ただし、十分大きなサイズを指定しておけば、デザインが固定できるので、結果として読みやすくなることも考えられます。
絶対単位(pt
, in
など)は、ウェブページに使うメリットが殆どありません。出力メディアが特定できる場合を除いては、使うべきではないといえます。
.8em | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
---|---|
1em | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
1.2em | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
small | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
large | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
.8em | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
---|---|
1em | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
1.2em | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
small | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
large | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
font-size-adjust
プロパティ 'font-size-adjust
' は、そこで使われているフォントのアスペクト値を指定します。アスペクト値とは、大文字と小文字の高さの比率を意味します。
プロパティ名 | 値 |
---|---|
font-size-adjust | <number> | none | inherit |
'font-size-adjust
' は子要素に継承されます。デフォルトの値は、'font-size
' だけでフォントの大きさを指定する none
です。inherit
は、親要素の値を明示的に継承する指定です。
<number>
は、利用可能なフォントに適用するアスペクト値を数値で指定します。最初に指定されたフォントの 'font-size
' の値を y、最初に指定されたフォントのアスペクト値を a
、実際に利用可能なフォントのアスペクト値('font-size-adjust
' の値)を a'、利用可能なフォントのフォントサイズを c とすると、c は次の式で算出されます:
y(a/a') = c where: y = 'font-size' of first-choice font a' = aspect value of available font c = 'font-size' to apply to available font
例えば、'font-size
' を 14px で Verdana (アスペクト値は0.58)を指定している場合、Verdana が利用できず、'font-size-adjust
' の値(利用可能なフォントのアスペクト値)を 0.58 に指定している場合、代替フォントのアスペクト値が 0.46 であれば、実際のサイズは 14 * (0.58/0.46) = 17.65px で計算されます。
p { font-family: 'Verdana', 'Times New Roman'; font-size: 1em; font-size-adjust: .56 }
'font-size-adjust' 指定あり | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
---|---|
'font-size-adjust' 指定なし | The quick brown fox jump ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
大文字と小文字を持つフォントの場合、文字の読みやすさの観点では、'font-size-adjust
' 指定は、見栄え上の同じ大きさを確保するために、非常に有意義です。同じ 'font-size
' でも、アスペクト値が異なるフォント間では、体感的な文字の大きさに雲泥の差があることはよく知られています。
Mozilla では有効ですが、残念ながら、他にこの指定が有効なブラウザ、ユーザエージェントを知りません。
font
プロパティ 'font
' は、フォント関連の省略プロパティです。
プロパティ名 | 値 |
---|---|
font | [ [ <'font-style'> || <'font-variant'> || <'font-weight'> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'> ] | caption | icon | menu | message-box | small-caption | status-bar | inherit |
'font
' は子要素に継承されます。デフォルトの値は、各々のプロパティで定義された値に従います。inherit
は、親要素の値を明示的に継承する指定です。
キーワードで指定されるシステムフォントを指定しない場合、次のようにフォント関連のプロパティを一括指定できます。
<'font-style'> || <'font-variant'> || <'font-weight'> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'>
これらの指定は、システムフォントのキーワード指定と排他的です。システムフォントを指定する機会はめったにないでしょうから、通常は、このシンタックスを覚えていれば十分だといえます。
# | プロパティ | 概要 | 必要性 |
---|---|---|---|
1 | font-style | フォントのスタイル。1〜3は順不同 | 任意 optional |
2 | font-variant | フォントのバリエーション。1〜3は順不同 | 任意 optional |
3 | font-weight | フォントの太さ。1〜3は順不同 | 任意 optional |
4 | font-size | フォントの大きさ。 | 必須 required |
5 | line-height | 行の高さ。指定する場合は値の直前にスラッシュが必須 | 任意 optional |
6 | font-family | フォントのファミリー。 | 必須 required |
ここで見るように、'font-stretch
', 'font-size-adjust
' は、省略プロパティ 'font
' では指定できません。
/* 'font-style', 'font-weight' が normal 'font-variant' が small-caps 'font-size' が 1.2em 'line-height' が 1.3 倍 'font-family' は serif */ address { font: normal small-caps 1.2em/1.3 serif } /* 'font-style' が oblique 'font-size' が 12px 'font-family' が 'Helvetica', sans-serif 他のプロパティは初期値 'font-stretch' は condensed */ td { font: oblique 12px 'Helvetica', sans-serif; font-stretch: condensed }
個別のフォントのプロパティを指定せずに、システムフォントと呼ばれる OS にデフォルトのフォントを指定することができます。
SEO |