目次
CSSプロパティは、著者が前景色と要素の背景を指定することを可能にする。背景は、色または画像であってもよい。背景のプロパティは、著者が背景画像を配置する、背景を繰り返す、背景がビューポートに対して固定または文書と一緒にスクロールすべきかどうかを宣言することを可能にする。
妥当な色の値の構文は、色の節を参照のこと。
プロパティ名: | color |
---|---|
値: | <color> | inherit |
初期値: | ユーザーエージェントに依存 |
適用要素: | すべての要素 |
継承: | yes |
パーセンテージ: | 利用不可 |
メディア: | visual |
算出値: | 指定される |
このプロパティは、要素のテキストコンテンツの前景色を表現する。赤を指定するさまざまな方法がある:
em { color: red } /* 定義済み色名 */ em { color: rgb(255,0,0) } /* RGB範囲0-255 */
著者は、色または画像のいずれかとして要素の背景(すなわち、レンダリング表面)を指定してもよい。ボックスモデルの見地から、"background"はコンテンツ、パディング、ボーダー領域の背景を参照する。ボーダーの色およびスタイルはボーダーのプロパティで設定される。マージンは常に透明である。
背景プロパティは継承されないが、親ボックスの背景は、'background-color'の初期'transparent'値のためにデフォルトで透けて見える。
あたかも背景がルート要素自身に対してのみ描かれるかのように存在するだろう同じ場所で('background-position'に対して)固定されつつ、ルート要素の背景はキャンバスの背景となり、かつキャンバス全体を覆う。ルート要素は、再びこの背景を描かない。
しかし、HTML文書に対して、著者はHTML要素よりもBODY要素の背景を指定することを推奨する。'background-color'の'transparent'と'background-image'の'none'との値を計算した、ルート要素がHTMLの"HTML"要素またはXHTMLの"html"の要素である文書に対して、ユーザーエージェントは、キャンバスの背景を描く場合、その要素の最初のHTMLの"BODY"要素またはXHTMLの"body"要素の子からの背景プロパティの算出値を代わりに使用しなければならず、その子要素の背景を描画してはならない。背景がルート要素にのみ塗られた場合、このような背景はまた背景のように同じ位置に固定しなければならない。
しかし、キャンバスの背景に使用される要素の背景に対してどのボックスも生成されない場合、キャンバスの背景は透過である。(CSS 2.2において、これは要素または祖先が'display: none'を持つ場合である。)
要素が'visibility: hidden'を持つが'display: none'を持たない場合、ボックスは要素に対して生成されかつその要素の背景はキャンバスに対して使用されることに注意する。
この規則に従って、次のHTML文書の下敷きとなるキャンバスは"marble"の背景を持つ:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <TITLE>Setting the canvas background</TITLE> <STYLE type="text/css"> BODY { background: url("http://example.com/marble.png") } </STYLE> <P>My background is marble.
HTMLパーサーは存在しないタグを推論するので、BODY要素の規則は、BODYタグがHTMLソースでは省略されているにもかかわらず動作することに注意する。
スタックコンテキスト('z-index'プロパティを参照)を形成する要素の背景は、そのスタックコンテキストで何かの下の、要素のスタッキングコンテキストの下部に描かれる。
プロパティ名: | background-color |
---|---|
値: | <color> | transparent | inherit |
初期値: | transparent |
適用要素: | すべての要素 |
継承: | no |
パーセンテージ: | 利用不可 |
メディア: | visual |
算出値: | 指定される |
このプロパティは、要素の背景色を設定する。下敷きになる色が透けて見えるようにするには、<color>値または'transparent'キーワードのいずれかを設定する。
h1 { background-color: #F00 }
プロパティ名: | background-image |
---|---|
値: | <uri> | none | inherit |
初期値: | none |
適用要素: | すべての要素 |
継承: | no |
パーセンテージ: | 利用不可 |
メディア: | visual |
算出値: | 絶対URIまたはnone |
このプロパティは要素の背景画像を設定する。背景画像を設定する場合、著者は画像が使用不能である場合に使用される背景色を指定すべきである。画像が使用可能である場合、背景色の上にレンダリングされる。(したがって、色は画像の透明部分で表示される)。
このプロパティの値は、画像を指定する<uri>、またはどの画像も使用されない場合の'none'のいずれかである。
body { background-image: url("marble.png") } p { background-image: none }
パーセンテージとして表される内在次元は、'background-position'プロパティの座標系を設置し、矩形の大きさに対して相対的に解決されなければならない。
画像が内在幅または高さと内在比のいずれか一方を持つ場合、不足している次元が与えられた次元との比から計算される。
画像が内在幅または内在高さのいずれか一方を持ち、内在アスペクト比を持たない場合、不足している次元は'background-position'プロパティの座標系を設置し、矩形の大きさであると見なされる。
画像が内在次元を持たず、かつ内在比を持つ場合、次元は'background-position'プロパティの座標系を設置する矩形のどちらの次元を超えないような比で最大の次元であると仮定しなければならない。
画像が内在比を持たない場合、次元は'background-position'プロパティの座標系を設置し、矩形であると仮定しなければならない。
プロパティ名: | background-repeat |
---|---|
値: | repeat | repeat-x | repeat-y | no-repeat | inherit |
初期値: | repeat |
適用要素: | すべての要素 |
継承: | no |
パーセンテージ: | 利用不可 |
メディア: | visual |
算出値: | 指定される |
背景画像が指定される場合、このプロパティは画像が繰り返されるかどうか(タイル状)、そしてどのように繰り返すかを指定する。すべてのタイルは、ボックスのコンテンツ、パディングとボーダー領域を覆う。
インライン要素の背景画像の敷き詰めと配置は、この仕様で未定義である。将来のCSSレベルは、インライン要素に背景画像の敷き詰めと配置を定義してもよい。
値は次の意味を持つ:
body { background: white url("pendant.png"); background-repeat: repeat-y; background-position: center; }
プロパティ名: | background-attachment |
---|---|
値: | scroll | fixed | inherit |
初期値: | scroll |
適用要素: | すべての要素 |
継承: | no |
パーセンテージ: | 利用不可 |
メディア: | visual |
算出値: | 指定される |
背景画像が指定される場合、このプロパティは、ビューポートに関して固定される('fixed')、または包含ブロックとともにスクロールする('scroll')かどうかを指定する。
ビューごとに1つのビューポートがあることに注意する。要素がスクロール機構('overflow'を参照)を持つ場合、'fixed'の背景要素は要素とともに移動せず、'scroll'背景はスクロール機構とともに移動しない。
たとえ画像が固定される場合でも、要素のコンテンツ、パディングまたはボーダー領域にある場合にのみ表示される。したがって、画像がタイル状の場合('background-repeat: repeat')を除き、画像は不可視であってもよい。
ビューポートがないページメディアにおいて、'fixed'の背景はページボックスに対して固定されるため、ページごとに複製される。
この例は、要素がスクロールされる場合にビューポートに"接着"のまま無限の縦帯を作成する。
body { background: red url("pendant.png"); background-repeat: repeat-y; background-attachment: fixed; }
'fixed'の背景をサポートしない(たとえばハードウェアプラットフォームの制限に起因するなど)ユーザーエージェントは、キーワード'fixed'をもつ宣言を無視すべきである。たとえば:
body { background: white url(paper.png) scroll; /* すべてのユーザーエージェント */ background: white url(ledger.png) fixed; /* 固定背景にするユーザーエージェント */ }
詳細は適合性の節を参照のこと。
プロパティ名: | background-position |
---|---|
値: | [ [ <percentage> | <length> | left | center | right ] [ <percentage> | <length> | top | center | bottom ]? ] | [ [ left | center | right ] || [ top | center | bottom ] ] | inherit |
初期値: | 0% 0% |
適用要素: | すべての要素 |
継承: | no |
パーセンテージ: | ボックス自身の大きさを参照 |
メディア: | visual |
算出値: | <length>は絶対値、そうでなければパーセンテージ |
背景画像が指定されている場合、このプロパティはその背景画像の初期位置を指定する。1つの値のみが指定される場合、2番目の値は'center'を仮定する。少なくとも1つの値がキーワードでない場合は、最初の値は水平方向の位置を表し、2番目は垂直位置を表す。負の<percentage>と<length>値は許可される。
しかし、画像が内在の大きさでなく内在比を持つ場合、CSS 2.2で位置は未定義である。
body { background: url("banner.jpeg") right top } /* 100% 0% */ body { background: url("banner.jpeg") top center } /* 50% 0% */ body { background: url("banner.jpeg") center } /* 50% 50% */ body { background: url("banner.jpeg") bottom } /* 50% 100% */
インライン要素の背景画像の敷き詰めと配置は、この仕様で未定義である。将来のCSSレベルは、インライン要素に背景画像の敷き詰めと配置を定義してもよい。
背景画像がビューポート(を参照)内に固定される場合、画像は要素のパディングボックスの代わりにビューポートに対して配置される。たとえば、
body { background-image: url("logo.png"); background-attachment: fixed; background-position: 100% 100%; background-repeat: no-repeat; }
上記の例において、(単一の)画像がビューポートの右下隅に配置される。
プロパティ名: | background |
---|---|
値: | [<'background-color'> || <'background-image'> || <'background-repeat'> || || <'background-position'>] | inherit |
初期値: | 個々のプロパティを参照 |
適用要素: | すべての要素 |
継承: | no |
パーセンテージ: | 'background-position'で許可される |
メディア: | visual |
算出値: | 個々のプロパティを参照 |
'background'プロパティは、スタイルシートの同じ場所で個別の背景のプロパティ(すなわち、'background-color'、'background-image'、'background-repeat'、、'background-position')を設定するための略式プロパティである。
妥当な宣言である場合、'background'プロパティは、まず初期値にすべての個別の背景のプロパティを設定し、宣言で指定された明示的な値を割り当てる。
次の例の最初の規則で、'background-color'の値のみが与えられ、他の個別のプロパティは初期値に設定される。2番目の規則で、すべての個別のプロパティが指定されている。
BODY { background: red } P { background: url("chess.png") gray 50% repeat fixed }