フォント(font)とはデザイン、大きさなどが共通したグリフの集合のことです。グリフ(glyph)とは文字という抽象的な概念を視覚的に表した字形のことです。例えば、これらはどれも"A"という文字を表すグリフです。
フォントには正体、イタリック体、ボールド体、ボールドイタリック体などの書体(typeface)があります。これらの書体ごとのフォントはフォントフェイス(font face)と言います。フォントファミリ(font family)はよく似たフォントフェイスをまとめたものです。以下は、Times New Romanファミリの例です。
font-family
プロパティは文字通り要素のフォントファミリを指定するプロパティです。値にはフォントファミリ名か総称ファミリ名をカンマで区切って指定します。スペースや約物を含むフォントファミリ名は引用符で括る必要があります。
総称ファミリは、指定されたフォントが見つからなかったときにユーザーエージェントの側で適当なフォントを選択させるための、フォントの総称名です。総称ファミリには以下のキーワードが指定できます。
serif
sans-serif
cursive
fantasy
monospace
body { font-family: "Times", "平成明朝", "MS P明朝", serif }
指定したフォントファミリは先に書かれているものが優先されます。この例では、ある文字について最初に"Times"で、次に"平成明朝"で、その次に"MS P明朝"で、なければserif
で表示を試みます。
font-style
プロパティは、font-family
プロパティで指定されたフォントファミリの中からこのプロパティで指定されたのスタイルを選択します。値には次のキーワードを指定します。
normal
italic
oblique
font-variant
プロパティは、font-family
プロパティで指定されたフォントファミリの中からスモールキャプスを選択するプロパティです。スモールキャプスとは小文字をやや小さい大文字のように表示することです。値には以下のキーワードを指定します。
normal
small-caps
font-weight
プロパティはフォントファミリの中からフォントの太さを選択します。値には"100"から"900"までの100刻みの<整数値>か、以下のキーワードを指定します。
normal
bold
bolder
lighter
font-size
プロパティはフォントのサイズを指定します。値には<長さ>と<パーセント値>に加えて以下の絶対サイズのキーワードが利用できます。
xx-small
x-small
small
medium
large
x-large
xx-large
"medium
"が利用者の設定したフォントサイズになります。残りのキーワードと"medium
"との関係はユーザーエージェントの実装に任されています。ユーザーエージェントはデバイスの特性を考慮した、スケーリング係数の対照表をつくるべきであるとされています。
CSS 2では隣り合うキーワードどうしの比率を1:2にすることが推奨されていましたが、比率を固定することには問題があったため、この記述は削除されました。
また、次の相対サイズのキーワードも使えます。
larger
smaller
これらのキーワードは、親要素のフォントサイズのキーワードよりも1段階大きい、もしくは小さいキーワードを意味します。例えば、親要素が"medium
"なら、その子要素の"larger
"は"large
"であると解釈されます。
font
プロパティはフォント関連プロパティの簡略化プロパティです。このプロパティはその他の簡略化プロパティと違い、指定する値の順番にルールがあります。
font-style
プロパティの値 (任意)font-variant
プロパティの値 (任意)font-weight
プロパティの値 (任意)font-size
プロパティの値 (必須)/
"の後にline-height
プロパティの値 (任意)font-family
プロパティの値 (必須)1番目から3番目(フォントのスタイル、スモールキャプス、フォントの太さ)までは任意の順番で記述でき、省略することもできます。4番目(フォントサイズ)は必須で省略できません。5番目(行ボックスの高さ)は省略可能、6番目(フォントファミリ名)は省略不可能です。省略されたプロパティには初期値が使われます。
以下の規則は同じ内容です。
h1 {
font-style: italic;
font-variant: normal;
font-weight: bold;
font-size: 120%;
line-height: 1.2;
font-family: Arial, sans-serif
}
h1 {
font: italic normal bold 120%/1.2 Arial, sans-serif
}
また、このような指定を行う代わりにシステムフォントを指定することもできます。システムフォントについては15.8 Shorthand font property: the 'font' property - Fontsを参照してください。