Revised: Jun./22nd/2004
視覚フォーマット関連のプロパティは、大域的な(グローバルな)フォーマッティング(フォーマット化)に関して決定的なプロパティでした。これに対して、よりきめ細かい指定によって、最終的な視覚フォーマットモデルを決定する、より詳細なプロパティが存在します。
ここで紹介する幾つかは、他のフォーマッティング・プロパティによる指定によって、算出値として暗黙的に決定される一方で、明示的に指定することによって、見栄えに関する決定的な差異を実現することもあります。
widthプロパティ 'width' は、ブロックレベル要素と置換要素 (img, input, textarea, select, object) に指定可能です。セレクタにマッチした対象のボックスの内容の幅を指定します。
| プロパティ名 | 値 |
|---|---|
| width | <length> | <percentage> | auto | inherit |
'width' は子要素に継承されません。デフォルトの値は auto です。inherit は、親要素の値を明示的に継承する指定です。負の値は不正です。
画像データなどで置換される要素の場合は、置換結果の幅が指定されます。インライン要素には、指定できません。テーブルの行などにも、指定できません。
<percentage>automargin', 'left'/'right' 値に依存する。一般的なブロックレベル要素のボックスでは、次のような等式が成り立ちます:
包含ブロックの幅 =
'left'
+ 'margin-left' + 'border-left-width' + 'padding-left'
+ 'width'
+ 'padding-right' + 'border-right-width' + 'margin-right'
+ 'right'
min-width, max-widthプロパティ 'min-width' は、ブロックレベル要素と置換要素 (img, input, textarea, select, object) に指定可能です。セレクタにマッチした対象のブロックの幅の最大値と最小値を指定します。
| プロパティ名 | 値 |
|---|---|
| min-width | <length> | <percentage> | inherit |
| プロパティ名 | 値 |
|---|---|
| max-width | <length> | <percentage> | none | inherit |
'min-width', 'max-height' は子要素に継承されません。'min-width' のデフォルトの値はユーザエージェントに依存します。'max-width' のデフォルトの値はnone でます。inherit は、親要素の値を明示的に継承する指定です。負の値は不正です。
'width' の指定に基づいて計算された幅が、これらの指定を超える場合は、これらの指定値を 'width' の値として採用し、再計算されます。
heightプロパティ 'height' は、ブロックレベル要素と置換要素 (img, input, textarea, select, object) に指定可能です。セレクタにマッチした対象のボックスの内容の高さを指定します。
| プロパティ名 | 値 |
|---|---|
| height | <length> | <percentage> | auto | inherit |
'height' は子要素に継承されません。'height' のデフォルトの値は auto です。inherit は、親要素の値を明示的に継承する指定です。負の値は不正です。
<percentage>automargin', 'top'/'bottom' 値に依存する。一般的なブロックレベル要素のボックスでは、次のような等式が成り立ちます:
包含ブロックの高さ =
'top'
+ 'margin-top' + 'border-top-width' + 'padding-top'
+ 'height'
+ 'padding-bottom' + 'border-bottom-width' + 'margin-bottom'
+ 'bottom'
min-height, max-heightプロパティ 'min-height' は、ブロックレベル要素と置換要素 (img, input, textarea, select, object) に指定可能です。セレクタにマッチした対象のブロックの高さの最大値と最小値を指定します。
| プロパティ名 | 値 |
|---|---|
| min-height | <length> | <percentage> | inherit |
| プロパティ名 | 値 |
|---|---|
| max-height | <length> | <percentage> | none | inherit |
'min-height', 'max-height' は子要素に継承されません。'min-height' のデフォルトの値は 0 です。'max-height' のデフォルトの値は none です。inherit は、親要素の値を明示的に継承する指定です。負の値は不正です。
'height' の指定に基づいて計算された高さが、これらの指定を超える場合は、これらの指定値を 'height' の値として採用し、再計算されます。
line-heightプロパティ 'line-height' は、任意の要素に指定可能です。セレクタにマッチした対象のインラインボックスの最初の高さを指定します。
| プロパティ名 | 値 |
|---|---|
| line-height | normal | <number> | <length> | <percentage> | auto | inherit |
'line-height' は子要素に継承されます。'line-height' のデフォルトの値は normal です。inherit は、親要素の値を明示的に継承する指定です。負の値は不正です。
<number>normal が 1.0~1.2 と等価となる。<percentage>nromalテキストベースの要素の場合は、'line-height' の指定は明確です。行のベースラインからベースラインまでの距離が、フォントサイズと 'line-height' の指定値から計算された値に一致します。行間ではなく、行ブロックの高さ(行の高さ)となることに注意してください。
但し、行ブロックに置換要素 (img, input, textarea, select, object) を含む場合は、置換要素の 'height' が採用されます。
殆どのブラウザが、大文字と小文字の区別を持つラテン系の言語を想定して「適切な」行の高さを計算しています。小文字が主となるテキストの行の高さを適切として計算されるので、日本語のように、大文字と小文字がない言語(全て大文字の言語)の場合は、行の高さが詰まって見えます。ラテン系フォントのグリフの 'x-height' (大文字と小文字のサイズの比率)が .4~.5 前後であることを考えると、和文(属性 lang="ja" を持つ要素)の 'line-height' の値は 1.4~1.5 が望ましいと考えられます。
'line-height' の例:
/* p 要素のインラインボックスの高さが、
最低でもフォントの 1.3 倍 */
p { line-height: 1.3 }
/* strong 要素のインラインボックスの高さが、
最低でもフォントの 1.5 倍 */
strong { line-height: 150% }
vertical-alignプロパティ 'vertical-align' は、インラインレベルの要素と 'table-cell' の要素に指定可能です。セレクタにマッチした対象のインラインボックスの、行ボックス内部での上下方向の位置を指定します。
| プロパティ名 | 値 |
|---|---|
| vertical-align | baseline | sub | super | top | text-top | middle | bottom | text-bottom | <length> | <percentage> | inherit |
'vertical-align' は子要素に継承されません。'vertical-align' のデフォルトの値は baseline です。inherit は、親要素の値を明示的に継承する指定です。負の値は不正です。
baselinemiddlex-height' の半分だけ上に揃える。subsupertext-top
text-bottom<percentage>line-height' の値を 100% として指定する。0% が 'baseline' と等価。