この文書は「CSS Backgrounds and Borders Module Level 3 (W3C Candidate Recommendation 15 February 2011)」の日本語訳である。日本語訳は参考情報であり、公式な文書ではない。また、翻訳に誤りがある可能性にも注意されたい。
原文の最新版 は、この日本語訳が参照した版から更新された可能性がある。また、日本語訳自身も更新された可能性がある。他の仕様の訳については Web 標準仕様 日本語訳一覧 を参照されたい。
Copyright © 2011 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
CSS は画面や紙、音声など様々な媒体に対して HTML や XML など構造化された 文書 の描画や提供方法を指示する言語だ。この仕様は CSS3 (CSS Level 3) のうち、ボーダーと背景に関する機能を定義する。この仕様は、CSS2 [CSS21] の機能を含んだ上で拡張している (CSS2 もまた、CSS1 [CSS1] を拡張している)。CSS2 からの変更のうち特筆すべきは、画像によるボーダー指定、背景の複数指定、角を丸めたボックスの実現、ボックスに影を落とす表現の追加が挙げられる。
このモジュールは、過去に策定された CSS3 Backgrounds と CSS3 Border という2つの仕様を置き換えたものだ。
この章は、この文書の公開時におけるステータスについて説明する。他の文書がこの文書を上書きする可能性に注意されたい。この技術文書や W3C から公開された他の文書の最新版は W3C 技術文書インデックス (http://www.w3.org/TR/) より探すことができる。
この文書は CSS Working Group により作成された勧告候補 (Candidate Recommendation) である。
勧告候補とは広くレビューがなされ実装段階に入った文書を指す。W3C はこの仕様の実装と、仕様に関するコメントの公開メーリングリスト www-style@w3.org (アーカイブ) への送信を奨励している (メーリングリストへの 参加手順 も参照されたい)。メールを送信する際には、“css3-background” を件名に含めていただきたい。たとえば “[css3-background] …コメントの要約…” といった形が望ましい。
勧告候補としての公開は、W3C Member による支持を意味するものではない。この文書は草案段階にあり、更新、置き換え、もしくは廃止される可能性もある。策定中であることを記さずに、この文書を参照することは適当ではない。
この文書は 5 February 2004 W3C Patent Policy の下で活動するグループにより作成された。W3C は 特許情報の開示に関する公開リスト を関連する団体と共に、その成果物とあわせて管理している。リストには情報開示に関する説明もあるため、あわせて参照されたい。特許について十分に知識のある人物が、当該仕様に Essential Claim(s) が認められると判断した場合は、W3C 特許方針の第 6 章 に従い情報を開示する必要がある。
‘box-decoration-break
’ プロパティは at-risk として考えられ、実装者の関心が充分に寄せられない場合は CR 期間の終了後に仕様から外される可能性がある。
CSS WG はこのモジュールに関する issues list を公開している。CSS Backgrounds and Borders Level 3 の テストスイート については、勧告候補期間中に作成される。
background-color
’ プロパティ
background-image
’ プロパティ
background-repeat
’
プロパティ
background-attachment
’ プロパティ
background-position
’
プロパティ
background-clip
’ プロパティ
background-origin
’
プロパティ
background-size
’ プロパティ
background
’ 短縮形プロパティ
このセクションは規範的ではない。
要素が CSS のボックスモデル [CSS21] によって描画されるとき、要素はまったく表示されないか、あるいは1つ以上の矩形ボックスとして整形される。各ボックスは矩形の内容領域、内容を囲むパディング、パディングの周りにあるボーダー、そしてボーダーの外側にあるマージンを持つ。(マージンは負の値を持つこともあるが、マージンは背景とボーダーには影響しない。)
この仕様で定義されるプロパティは、ボーダー領域、内容、パディング、ボーダー領域の背景を装飾する。また、‘box-shadow
’ プロパティはボックスにドロップシャドウ効果を与える。
要素が複数のボックスに分割された場合、‘box-decoration-break
’ が分割されたボックスに対しボーダーと背景のスタイルをどう適用するかを定義する。(要素は行や段組、ページをまたぐときに、複数のボックスに分割されることがある。)
背景やボーダー、影の重ね順についてもこのモジュールが定義する。重ね順が描画内容とどう関係するかについては、CSS 2.1 [CSS21] の付録 E “Elaborate description of Stacking Contexts” を参照されたい。
この仕様で定義するプロパティの表記は CSS 2.1 [CSS21] の プロパティ表記 に倣う。
値 <color> は CSS3 Color [CSS3COLOR] が定義している。
値 <image> は、この仕様において <image> = <uri>
と定義する。
これは、画像のスライスなど他の値を持てるように、将来的に他の仕様が <image> の定義を拡張する可能性があることを示唆している。
その他の値はすべて CSS 2.1 [CSS21] が定義する。
この仕様で定義するすべてのプロパティは、その値に inherit をとることができるが、仕様書の読みやすさを考慮し仕様書では記載していない。
ボックスは背景レイヤーを持つ。各レイヤーは透明 (規定) もしくは指定された色、あるいは1つ以上の画像によって描画される。背景関連プロパティには、背景色 (‘background-color
’) や背景画像 (‘background-image
’) を指定するものや、背景の大きさや配置、敷き詰め方を指定するものがある。
背景関連プロパティは継承されないが、‘background-color
’ の初期値が ‘transparent
’ であることから、親ボックスの背景が透過され表示されることになる。
CSS3 では、ボックスの背景が複数のレイヤーを持つことができる。レイヤーの数は ‘background-image
’ プロパティに指定される、カンマで区切られた値の数により決定される。なお、値 ‘none
’ も1つのレイヤーを生成することに注意されたい。
それぞれの背景画像は、他の背景関連プロパティによって、大きさが変更され、配置され、そして敷き詰められる。レイヤーが複数ある場合、各プロパティの最初の値から順に指定される。指定された値がレイヤーの数を超える場合、レイヤーの数を超えた値は利用されない。指定された値がレイヤーの数に満たない場合、UA はレイヤーの数を満たすまで値のリストを繰り返し、使用値を計算しなければならない。
たとえば、次の宣言が指定されたとしよう。
background-image: url(flower.png), url(ball.png), url(grass.png); background-position: center center, 20% 80%, top left, bottom right; background-origin: border-box, content-box; background-repeat: no-repeat;
この宣言では ‘background-position
’ に生成されるレイヤーの数を超えて値が指定されている。一方で ‘background-origin
’ と ‘background-repeat
’ では、生成されたレイヤーの数に対し指定した値が満たない。しかしながら前述の規則が適用され、次の宣言と同じ効果を与えることになる (ここでは足りない値を見やすさのため強調している)。
background-image: url(flower.png), url(ball.png), url(grass1.png); background-position: center center, 20% 80%, top left; background-origin: border-box, content-box, border-box; background-repeat: no-repeat, no-repeat, no-repeat;
最初に指定された画像がユーザーに一番近いレイヤーになり、以降の画像は最初の画像の後ろに順に描画されていく。背景色が指定された場合、それは他のすべてのレイヤーの後ろに描画される。
画像ボーダー関連プロパティ も背景画像を定義できることに注意されたい。画像ボーダーで背景画像が定義された場合、その画像は背景関連プロパティで生成された背景の手前に描画される。
background-color
’ プロパティ名前: | background-color |
---|---|
値: | <color> |
初期値: | transparent |
適用対象: | すべての要素 |
継承: | なし |
パーセンテージ: | なし |
媒体: | visual |
計算値: | 計算された色 |
このプロパティは要素の背景色を指定する。背景色はすべての背景画像の後ろに描画される。
h1 { background-color: #F00 } /* 背景色を赤にする */
背景色は ‘background-clip
’ プロパティの値と一番奥の背景画像によって切り抜かれる。
background-image
’ プロパティ名前: | background-image |
---|---|
値: | <bg-image> [ , <bg-image> ]* |
初期値: | none |
適用対象: | すべての要素 |
継承: | なし |
パーセンテージ: | なし |
媒体: | visual |
計算値: | 指定された通りだが、URI が指定された場合は絶対 URI になる |
このプロパティは要素の背景画像を指定する。背景画像は最初に指定したものが一番上 (ユーザーの最も近く) に描画され、以降は指定した順に前の画像の背後に表示される。
<bg-image> = <image> | none
値 ‘none
’ は画像レイヤーとして加算されるが、何も描画しない。空の画像 (幅や高さが0)、ダウンロードに失敗した画像、表示できない画像 (サポートされていない画像フォーマットなど) も同様にレイヤーを構成するが、これらも何も描画しない。
‘background-image
’ が他のカンマ区切り値をとる背景関連プロパティとどのように関わり、背景画像レイヤーを構成するかを知るには “複数の背景レイヤー” を参照されたい。
制作者は背景画像を指定する際、画像が表示できない場合でもテキストと背景のコントラストが保たれるよう ‘background-color
’ も指定すべきである。
制作者は重要な情報を伝える際には、背景画像に依存した表現を利用すべきではない。これはアクセシビリティに関する事項であり、詳しくは Web Content Accessibility Guideline F3 [WCAG20] を参照されたい。要約すると、視覚的でない表現において画像はアクセシブルではなく、またハイコントラスト表示において背景画像は無効にされる可能性がある。
上記のガイドラインには 日本語訳 が存在する。あわせて参照されたい。
表象的な画像は、‘content
’ プロパティを使うことで背景ではなく前景に表示できる。(しかしながら、意味的に重要な前景画像は、たとえば HTML における <img> のような文書マークアップで記述すべきだ。)
Media fragments によって、画像の一部分を表示するといったことが計画されている。また、CSS Images モジュールでは画像フォーマットが対応しない場合のフォールバック構文や、新しい画像表示に関する機能を提供する予定だ。
次は背景画像を指定する例である。
body { background-image: url("marble.svg") } p { background-image: none } div { background-image: url(tl.png), url(tr.png) }
実装は、不透明な画像の後ろに描画されたものをはじめ、表示されない画像のダウンロードや描画をしないといった処理の最適化を行える。
background-repeat
’ プロパティ名前: | background-repeat |
---|---|
値: | <repeat-style> [ , <repeat-style> ]* |
初期値: | repeat |
適用対象: | すべての要素 |
継承: | なし |
パーセンテージ: | なし |
媒体: | visual |
計算値: | 指定の通り |
このプロパティは背景画像が 拡大もしくは縮小 され、さらに 配置 された後に、どのように敷き詰められるかを指定する。
<repeat-style> = repeat-x | repeat-y | [repeat | space | round | no-repeat]{1,2}
<repeat-style> に値が1つだけ指定された場合、それぞれの値は次の意味を持つ。
repeat-x
’
repeat no-repeat
’ と等価。
repeat-y
’
no-repeat repeat
’ と等価。
repeat
’
repeat repeat
’ と等価。
space
’
space space
’ と等価。
round
’
round round
’ と等価。
no-repeat
’
no-repeat no-repeat
’ と等価。
<repeat-style> の値が2つのキーワードからなる場合、1番目のキーワードが水平方向を、2番目のキーワードが垂直方向を意味する。キーワードの意味は次の通り。
repeat
’
space
’
background-position
’ の値は、画像を2つ並べるだけのスペースがない限り無視される。画像を2つ並べるスペースが無い場合、1つの画像だけが配置され、‘background-position
’ がその方向を決定する。
round
’
background-size
’ を参照のこと。背景描画領域が背景配置領域よりも大きい場合、背景画像は背景描画領域を覆うまで繰り返される。
no-repeat
’
2つあるキーワードの1つが ‘no-repeat
’ でない限り、背景描画領域の全面に画像が敷き詰められる。縦や横に画像が一本延びるわけではない。
body { background: white url("pendant.png"); background-repeat: repeat-y; background-position: center; }
body { background-image: url(dot.png) white; background-repeat: space }
‘background-repeat
’ が他のカンマ区切り値をとる背景関連プロパティとどのように関わり、背景画像レイヤーを構成するかを知るには “複数の背景レイヤー” を参照されたい。
background-attachment
’ プロパティ名前: | background-attachment |
---|---|
値: | <attachment> [ , <attachment> ]* |
初期値: | scroll |
適用対象: | すべての要素 |
継承: | なし |
パーセンテージ: | なし |
媒体: | visual |
計算値: | 指定の通り |
このプロパティは背景画像が指定されたとき、画像が viewport に対し固定配置される (‘fixed
’) のか、要素とともにスクロールする (‘scroll
’) のか、内容とともにスクロールする (‘local
’) かを決定する。値は次の <attachment> がとりうるキーワードをカンマで区切り指定する。
<attachment> = scroll | fixed | local
fixed
’ が指定された背景は ページボックス に対し固定され、そしてすべてのページに複製される。1つの view に viewport は1つしかないことに注意されたい。要素がスクロール機構 (‘overflow
’ プロパティ [CSS21] を参照) を備えていたとしても、‘fixed
’ の指定された背景が要素とともに動くことはない。
background-attachment
’ が ‘local
’ であり、かつ要素内容がスクロールする場合、UA は ‘background-clip
’ の ‘border-box
’ を ‘padding-box
’ として扱うことができる。
画像が固定であっても、画像が要素の 背景描画領域 にある場合は表示される。それ以外の場合において、画像が切り取られることはない。(背景画像が切り取られない条件については “特別な要素の背景” を参照されたい。) つまり、敷き詰められない限り、その画像は見えない可能性がある。
次の例は無限に続く縦の帯を生成するが、要素がスクロールしてもその帯は viewport に「のりづけ」されたように見える。
body { background: red url("pendant.gif"); background-repeat: repeat-y; background-attachment: fixed; }
ハードウェアプラットフォームの制約などから ‘fixed
’ をサポートしない UA については、‘fixed
’ が与えられた宣言を無視すべきである。
body { /* すべての UA 用 */ background: white url(paper.png) scroll; /* fixed をサポートする UA 用 */ background: white url(ledger.png) fixed; } h1 { /* すべての UA 用 */ background: silver; /* fixed をサポートする UA 用 */ background: url(stripe.png) fixed, white url(ledger.png) fixed; }
‘background-attachment
’ が他のカンマ区切り値をとる背景プロパティとどのように関わり、背景画像レイヤーを構成するかを知るには “複数の背景レイヤー” を参照されたい。
background-position
’ プロパティ名前: | background-position |
---|---|
値: | <bg-position> [ , <bg-position> ]* |
初期値: | 0% 0% |
適用対象: | すべての要素 |
継承: | なし |
パーセンテージ: | 背景配置領域 の大きさから背景画像の大きさを引いたものを参照する (説明を参照) |
媒体: | visual |
計算値: | 1つもしくは2つの値が指定されたとき、<length> の場合は絶対長、それ以外はパーセンテージとなる。3つもしくは4つの値が指定されたとき、キーワードに長さもしくはパーセンテージを加えたものが2つとなる。 |
このプロパティは、背景画像が指定された際に該当する 背景配置領域 の初期位置 (拡大縮小 後) を指定する。
値は次の通り。
<bg-position> = [ [ top | bottom ] | [ <percentage> | <length> | left | center | right ] [ <percentage> | <length> | top | center | bottom ]? | [ center | [ left | right ] [ <percentage> | <length> ]? ] && [ center | [ top | bottom ] [ <percentage> | <length> ]? ] ]
指定された値が1つのみの場合、2番目の値に ‘center
’ が与えられたものとして扱われる。2つの値が指定され、かつその1つ以上がキーワードでない場合、1番目の値は水平方向の位置 (オフセット) を、2番目の値は垂直方向の位置 (オフセット) を表す。ここでの <percentage> および <length> は、背景画像領域の左上から、背景画像の左上までのオフセットを表す。
3つもしくは4つの値が指定された場合、指定された <percentage> または <length> の前には、どの縁からのオフセットかを示すキーワードが存在しなくてはならない。たとえば、‘background-position: bottom 10px right 20px
’ は下端から垂直方向に ‘10px
’, 右端から水平方向に ‘20px
’ の位置を表す。3つの値が指定された場合、残りの未指定となるオフセットは 0 として扱われる。
正の値は背景配置領域の端から内側に向かうオフセットを表す。負の値は背景配置領域の端から外側に向かうオフセットを表す。
次の宣言はすべて、左上からのオフセットを与えるものだ。
background-position: left 10px top 15px; /* 10px, 15px */ background-position: left top ; /* 0px, 0px */ background-position: 10px 15px; /* 10px, 15px */ background-position: left 15px; /* 0px, 15px */ background-position: 10px top ; /* 10px, 0px */ background-position: left top 15px; /* 0px, 15px */ background-position: left 10px top ; /* 10px, 0px */
水平方向のパーセンテージは (背景配置領域の幅 - 背景画像の幅) に比例する。垂直方向のパーセンテージは (背景配置領域の高さ - 背景画像の高さ) に比例する。画像の大きさは ‘background-size
’ によって与えられた値となる。
たとえば、‘0% 0%
’ という値が指定された場合、画像の左上は基本的にボックスのパディングエッジの左上に沿う。‘100% 100%
’ も同様に、画像の右下が領域の右下に沿う。‘75% 50%
’ という値の場合、領域の横75%、縦50%の位置に、画像の左端から75%、上端から50%の位置が沿うことになる。
2cm 1cm
’ という2つの長さが与えられた場合、画像の左上は背景配置領域の左端より2cm, 上端より1cmのところに配置される。
top
’
0%
’ が指定されたものと同じ。そうでない場合は、このキーワードの次に指定されるオフセットの起点を背景配置領域の上端とするよう指示する。
right
’
100%
’ が指定されたものと同じ。そうでない場合は、このキーワードの次に指定されるオフセットの起点を背景配置領域の右端とするよう指示する。
bottom
’
100%
’ が指定されたものと同じ。そうでない場合は、このキーワードの次に指定されるオフセットの起点を背景配置領域の下端とするよう指示する。
left
’
0%
’ が指定されたものと同じ。そうでない場合は、このキーワードの次に指定されるオフセットの起点を背景配置領域の左端とするよう指示する。
center
’
50%
’ (‘left 50%
’) が指定されたものと同じ。同様に、垂直方向の値が指定されていない場合、‘50%
’ (‘top 50%
’) が指定されたものと同じ。
次の ‘background
’ 短縮形プロパティによる宣言は ‘background-position
’ の指定にキーワードを利用している。記した値は、コメントに書かれたパーセンテージによる指定と同じになる。
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% */
次の例では、1つの画像が viewport の右下に配置されている。
body { background-image: url("logo.png"); background-attachment: fixed; background-position: 100% 100%; background-repeat: no-repeat; }
左上以外の角を配置の基点とすることもできる。次の指定は基点を変更し、背景画像を下から 10px, 右から 3em の位置に配置している。
background-position: right 3em bottom 10px
‘background-position
’ が他のカンマ区切り値をとる背景プロパティとどのように関わり、背景画像レイヤーを構成するかを知るには “複数の背景レイヤー” を参照されたい。
background-clip
’ プロパティ名前: | background-clip |
---|---|
値: | <box> [ , <box> ]* |
初期値: | border-box |
適用対象: | すべての要素 |
継承: | なし |
パーセンテージ: | なし |
媒体: | visual |
計算値: | 指定の通り |
このプロパティは、背景描画領域 を指定する。<box> の定義は次のとおり。
<box> = border-box | padding-box | content-box
値は次の意味を持つ。
border-box
’
padding-box
’
content-box
’
ルート要素は異なる背景描画領域を持つため、‘background-clip
’ プロパティが指定されても何の影響もないことに注意されたい。詳細は “特別な要素の背景” を参照のこと。
背景は常にボーダーの背後に描画されることに注意されたい。詳細は CSS 2.1 [CSS21] の “Elaborate description of Stacking Contexts” を参照のこと。
‘background-clip
’ が他のカンマ区切り値をとる背景プロパティとどのように関わり、背景画像レイヤーを構成するかを知るには “複数の背景レイヤー” を参照されたい。
background-origin
’ プロパティ名前: | background-origin |
---|---|
値: | <box> [ , <box> ]* |
初期値: | padding-box |
適用対象: | すべての要素 |
継承: | なし |
パーセンテージ: | なし |
媒体: | visual |
計算値: | 指定の通り |
1つのボックスとして描画される要素において、このプロパティは 背景配置領域 を定義する。複数のボックスとして描画される要素 (行をまたぐインラインボックス、ページをまたぐボックスなど) においては、‘box-decoration-break
’ に指定された値が背景配置領域の定義に影響する。
padding-box
’
0 0
’ はパディングエッジの左上を、‘100% 100%
’ はパディングエッジの右下を表す。)
border-box
’
content-box
’
画像の ‘background-attachment
’ に ‘fixed
’ が指定された場合、このプロパティは何の効果ももたらさない。このときの背景配置領域は 初期コンテナブロック [CSS21] となる。
‘background-clip
’ が ‘padding-box
’, ‘background-origin
’ が ‘border-box
’, ‘background-position
’ が ‘top left
’ (初期値), そして要素が0ではないボーダーを持つ場合、背景画像の左と上が切り取られることに注意されたい。
‘background-origin
’ が他のカンマ区切り値をとる背景プロパティとどのように関わり、背景画像レイヤーを構成するかを知るには “複数の背景レイヤー” を参照されたい。
background-size
’ プロパティ名前: | background-size |
---|---|
値: | <bg-size> [ , <bg-size> ]* |
初期値: | auto |
適用対象: | すべての要素 |
継承: | なし |
パーセンテージ: | 説明を参照 |
媒体: | visual |
計算値: | <length> であればその絶対値、その他は指定の通り |
このプロパティは背景画像の大きさを指定する。<bg-size> の定義は次のとおり。
<bg-size> = [ <length> | <percentage> | auto ]{1,2} | cover | contain
値は次の意味を持つ。
contain
’
cover
’
1番目の値は画像の幅を、2番目の値は画像の高さを指定する。値が1つのみ指定された場合、2番目の値は ‘auto
’ とみなされる。
パーセンテージは背景配置領域の大きさを参照する。
一辺の値に ‘auto
’ が指定された場合、もう一辺の値と画像の内在寸法比から計算される。できない場合は、画像の内在寸法を利用する。それもできない場合は、100% として扱う。
どちらの辺にも ‘auto
’ が指定されたとき、画像の内在寸法が存在するならそれを利用すべきである。画像がどちらの辺についても内在寸法を持たない場合、画像の大きさは ‘contain
’ として計算される。
負の値を指定することはできない。
いくつかの例を紹介しよう。最初の例は内容領域を完全に覆うように、背景画像を縦横個別に指定している。
div { background-image: url(plasma.png); background-repeat: no-repeat; background-size: 100% 100%; background-origin: content-box }
次の例は画像を縮小し、同じ画像が水平方向にちょうど2つ並ぶよう配置している。画像のアスペクト比も保たれている。
p { background-image: url(tubes.png); background-size: 50% auto; background-origin: border-box }
次の例は背景画像を 15px × 15px の大きさに指定している。
para { background-size: 15px 15px; background-image: url(tile.png) }
次の例は画像の内在寸法を利用している。CSS1 や CSS2 では、この指定しかできないことに注意されたい。
body { background-size: auto; /* デフォルト */ background-image: url(flower.png) }
次の例では、画像の高さが指定された 30% から 33.333...% に拡大される。30% では全体が表示される画像が3つだけになり、4つ目は一部しか表示されない。そこで画像が収まるように高さが拡大される。一方、画像の幅は背景領域の 20% のままで、拡大縮小が行われることはない。
p { background-image: url(chain.png); background-repeat: no-repeat round; background-size: 20% 30% }
‘background-repeat
’ に ‘round
’ が1つもしくは2つ指定された場合、大きさの計算に次の処理が加わる。UA は ‘round
’ が指定された方向の大きさを拡大もしくは縮小し、背景配置領域に整数倍で収まるようにしなければならない。次に記すのは幅を拡大縮小する際の処理となる (高さについても同様の計算が行われる)。
前述の計算によって導き出された画像の幅を X ≠ 0, W を背景配置領域の幅とする。このとき、拡大縮小後の値は X' = W / round(W / X) として計算される。なお、関数 round() は引数に一番近い自然数を返す関数を表す。
一辺のみ ‘background-repeat
’ に ‘round
’ が指定され、もう一辺の ‘background-size
’ に ‘auto
’ が指定される場合、さらに次の処理が加わる。‘background-size
’ に ‘auto
’ が指定された辺の大きさは、もとのアスペクト比を保持するように拡大もしくは縮小される。
次の例では、背景画像が内在寸法のまま表示されている。
div { background-image: url(image1.png); background-repeat: repeat; /* デフォルト */ background-size: auto } /* デフォルト */
次の例は、背景画像の幅に 3em を指定したものになる。高さはアスペクト比を保つように拡大縮小が行われ表示されている。
div { background-image: url(image2.png); background-repeat: repeat; /* デフォルト */ background-size: 3em } /* '3em auto' と同じ */
次の例では、背景画像の幅がおおよそ 3em となる。背景領域の幅にあわせ、画像が整数倍で敷き詰められるように縮小されることにある。画像の高さは、元画像のアスペクト比を保持するように縮小される。
div { background-image: url(image3.png); background-repeat: round repeat; background-size: 3em auto }
次の例において、背景画像の幅は 3em となる。高さについては、アスペクト比を保持するように縮小された値、もしくはそれより小さくなる。
div { background-image: url(image4.png); background-repeat: repeat round; background-size: 3em auto }
次の例において、背景画像の高さはおおよそ 4em となる。背景領域の高さにあわせ、画像が整数倍で敷き詰められるように縮小されることにある。画像の幅は、元画像のアスペクト比を保持するように縮小された値におおよそなる。
div { background-image: url(image5.png); background-repeat: round; background-size: auto 4em }
背景画像の幅もしくは高さが 0 と算出された場合、画像は表示されない。(これは、透明な画像が背景に指定されたと同じ効果を生ずる。)
‘background-size
’ が他のカンマ区切り値をとる背景プロパティとどのように関わり、背景画像レイヤーを構成するかを知るには “複数の背景レイヤー” を参照されたい。
background
’
短縮形プロパティ名前: | background |
---|---|
値: | [ <bg-layer> , ]* <final-bg-layer> |
初期値: | 個々のプロパティを参照 |
適用対象: | すべての要素 |
継承: | なし |
パーセンテージ: | 個々のプロパティを参照 |
媒体: | visual |
計算値: | 個々のプロパティを参照 |
値の内容は次のとおり。
<bg-layer> = <bg-image> || <bg-position> [ / <bg-size> ]? || <repeat-style> || <attachment> || <box>{1,2}
<final-bg-layer> = <bg-image> || <bg-position> [ / <bg-size> ]? || <repeat-style> || <attachment> || <box>{1,2} || <'background-color'>
色の指定が <final-bg-layer> のみに許可され、<bg-layer> では指定できないことに注意されたい。
‘background
’ は多くの背景プロパティをまとめて指定できる短縮形プロパティである。カンマで区切られた値の数によって、背景レイヤーの数が決定する。妥当な宣言において、この短縮形プロパティはまず各レイヤーの ‘background-color
’, ‘background-position
’, ‘background-size
’, ‘background-repeat
’, ‘background-origin
’, ‘background-clip
’, ‘background-attachment
’ に初期値を指定してから、短縮形プロパティ中に明示的に指定した値で上書きする。最後に ‘background-color
’ の指定が行われる。値が指定された場合はその値が、指定されていなければ初期値が適用される。
<box> となる値が1つだけ指定された場合、それは ‘background-origin
’ および ‘background-clip
’ の値となる。値が2つの場合、1番目の値が ‘background-origin
’ を、2番目の値が ‘background-clip
’ を指定する。
次の例にある最初の規則では、‘background-color
’ の値のみが指定されており、他の背景プロパティは短縮形プロパティの定義によってすべて初期値となっている。2番目の規則では、多くの背景プロパティが短縮形プロパティより指定されている。
body { background: red } p { background: url("chess.png") 40% / 10em gray round fixed border-box; }
最初の規則は、次の指定と同じになる。
body { background-color: red; background-position: 0% 0%; background-size: auto auto; background-repeat: repeat repeat; background-clip: border-box; background-origin: padding-box; background-attachment: scroll; background-image: none }
2番目の規則は、次の指定と同じになる。
p { background-color: gray; background-position: 40% 50%; background-size: 10em 10em; background-repeat: round round; background-clip: border-box; background-origin: border-box; background-attachment: fixed; background-image: url(chess.png) }
次の例は、背景色 (#CCC) と背景画像 (url(metal.jpg)) がどのように指定されるかを示す。画像は要素の幅を覆うように拡大縮小される。
E { background: #CCC url("metal.jpg") top left / 100% auto no-repeat }
次の宣言は同じものを指す。
div { background: padding-box url(paper.jpg) white center } div { background-color: white; background-image: url(paper.jpg); background-repeat: repeat; background-attachment: scroll; background-position: center; background-clip: padding-box; background-origin: padding-box; background-size: auto auto }
次の宣言は、複数の値をカンマで区切り指定したものになる。
background: url(a.png) top left no-repeat, url(b.png) center / 100% 100% no-repeat, url(c.png) white;
上記は次と等価になる。
background-image: url(a.png), url(b.png), url(c.png); background-position: top left, center, top left; background-repeat: no-repeat, no-repeat no-repeat, repeat; background-clip: border-box, border-box, border-box; background-origin: padding-box, padding-box, padding-box; background-size: auto auto, 100% 100%, auto auto; background-attachment: scroll, scroll, scroll; background-color: white;
ルート要素の背景は canvas の背景となり、また 背景描画領域 は canvas 全体を覆うように広がるが、画像は大きさが決定され、かつルート要素に対しあたかもその要素のみが存在するかのように相対配置される。(つまり、背景配置領域はルート要素によって決定される。) ルート要素の ‘background-color
’ は ‘transparent
’ だが、canvas の背景色は UA 依存となる。ルート要素はこの背景を再描画することはない。つまり、背景の使用値は transparent のままである。
ルート要素が HTML の HTML
要素 [HTML401] もしくは XHTML の html
要素 [XHTML11] である文書において、ルート要素に指定された ‘background-image
’ の計算値が ‘none
’ であり、かつその ‘background-color
’ が ‘transparent
’ である場合、UA はルート要素ではなくその子要素である HTML の BODY
要素もしくは XHTML の body
要素が持つ背景関連プロパティの計算値を、ルート要素に伝播しなければならない。BODY
要素の計算値は各プロパティの初期値となり、伝播された値はルート要素に指定されたかのように扱われる。HTML 文書の制作者は canvas の背景スタイルを指定する場合、HTML
要素ではなく BODY
要素に指定することが望ましい。
前述の規則に従うと、次の HTML 文書の canvas はマーブル模様の背景を持つことになる。
<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.0//EN'> <html> <head> <title>canvas の背景を指定</title> <style type="text/css"> body { background: url("http://example.org/marble.png") } </style> </head> <body> <p>背景はマーブル模様です。</p> </body> </html>
‘::first-line
’ 擬似要素の背景は、インラインレベル要素に似た働きをする ([CSS21] の 5.12.1 を参照されたい)。つまり、最初の行が左揃えの場合、背景は必ずしも右マージンまで拡張されることはない。
ボーダーは定義済スタイル (実線、二重線、点線、擬似立体線など) もしくは画像により表現される。定義済スタイルの場合、ボーダーはスタイル (‘border-style
’), 色 (‘border-color
’), 太さ (‘border-width
’) といった個々のプロパティから定義される。
border-color
’
プロパティ名前: | border-top-color , border-right-color, border-bottom-color, border-left-color |
---|---|
値: | <color> |
初期値: | currentColor |
適用対象: | すべての要素 |
継承: | なし |
パーセンテージ: | なし |
媒体: | visual |
計算値: | 計算された色 |
名前: | border-color |
---|---|
値: | <color>{1,4} |
初期値: | (個別のプロパティを参照) |
適用対象: | すべての要素 |
継承: | なし |
パーセンテージ: | なし |
媒体: | visual |
計算値: | 個別のプロパティを参照 |
これらのプロパティは、‘border-style
’ プロパティで指定されたボーダーの前景色を指定する。
‘border-color
’ は4つの ‘border-*-color
’ の短縮形を表す。4つの値は上、右、下、左という順で指定する。左の値が欠けた場合は右と同じ値に、下の値が欠けた場合は上と同じ値に、そして右の値が欠けた場合は上と同じ値になる。
border-style
’
プロパティ名前: | border-top-style, border-right-style, border-bottom-style, border-left-style |
---|---|
値: | <border-style> |
初期値: | none |
適用対象: | すべての要素 |
継承: | なし |
パーセンテージ: | なし |
媒体: | visual |
計算値: | 指定値 |
名前: | border-style |
---|---|
値: | <border-style>{1,4} |
初期値: | (個別のプロパティを参照) |
適用対象: | すべての要素 |
継承: | なし |
パーセンテージ: | なし |
媒体: | visual |
計算値: | 個別のプロパティを参照 |
これらのプロパティはボーダーのスタイルを指定する。ただし、画像によるボーダー が指定されている場合、これらのプロパティは適用されない。
‘border-style
’ は4つのプロパティの短縮形を表す。4つの値は上、右、下、左という順で指定する。左の値が欠けた場合は右と同じ値に、下の値が欠けた場合は上と同じ値に、そして右の値が欠けた場合は上と同じ値になる。
<border-style> に指定可能な値は次の通り。
<border-style> = none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset
各値の意味は次の通り。
none
’
background-image
’ も参照。)
hidden
’
none
’ と同等だが、ボーダーが折りたたまれた表において、ボーダーの衝突解決に関する処理が異なる [CSS21]。
dotted
’
dashed
’
solid
’
double
’
border-width
’ と等しくなければならない。)
groove
’
border-color
’ より少し薄い色と濃い色の2色から「影」を生成することで表される。)
ridge
’
inset
’
ridge
’ として扱われる。[CSS21]
outset
’
groove
’ として扱われる。[CSS21]
ボーダーは要素の背景の手前、要素内容の背後に描画される。
Note: 点や破線の間隔、破線の長さを制御することはできない。実装は角を対称にするよう間隔を調整することが奨励される。
Note: 本仕様では異なるスタイルのボーダーが角でどのように結合するかを定義しない。また、パディングが角丸の半径よりも小さい場合、丸められた角が要素内容とオーバーラップする可能性があることに注意されたい。
border-width
’
プロパティ名前: | border-top-width, border-right-width, border-bottom-width, border-left-width |
---|---|
値: | <border-width> |
初期値: | medium |
適用対象: | すべての要素 |
継承: | なし |
パーセンテージ: | コンテナブロックの幅† |
媒体: | visual |
計算値: | 絶対値 ― ボーダースタイルが ‘none ’ もしくは ‘hidden ’ の場合は ‘0 ’
|
† コンテナブロックの書字方向が水平方向の場合。そうでない場合はコンテナブロックの高さとなる。 |
名前: | border-width |
---|---|
値: | <border-width>{1,4} |
初期値: | (個別のプロパティを参照) |
適用対象: | すべての要素 |
継承: | なし |
パーセンテージ: | 個別のプロパティを参照 |
媒体: | visual |
計算値: | 個別のプロパティを参照 |
これらのプロパティは、ボーダーの太さを指定する。<border-width> に指定可能な値は次の通り。
<border-width> = <length> | thin | medium | thick
<length> には負の値を指定できない。キーワード ‘thin
’, ‘medium
’, ‘thick
’ に対応する長さは定義されないが、値は 文書 内で一貫しており、また thin ≤ medium ≤ thick を満たす。たとえば、UA は フォントサイズ ‘medium
’ が 17px 以下の場合、それぞれに 1px, 3px, 5px を割り当てることが考えられる。
‘border-width
’ は4つの ‘border-*-width
’ プロパティの短縮形を表す。4つの値は上、右、下、左という順で指定する。左の値が欠けた場合は右と同じ値に、下の値が欠けた場合は上と同じ値に、そして右の値が欠けた場合は上と同じ値になる。
Note: 初期値は ‘medium
’ であるが、‘border-style
’ の初期値が ‘none
’ であるため、利用値は 0 となる。
‘border-width
’ の利用値が 0 の場合、そのボーダーは不在 (absent) と呼ばれる。
名前: | border-top, border-right, border-bottom, border-left |
---|---|
値: | <border-width> || <border-style> || <color> |
初期値: | 個別のプロパティを参照 |
適用対象: | すべての要素 |
継承: | なし |
パーセンテージ: | なし |
媒体: | visual |
計算値: | 個別のプロパティを参照 |
このプロパティはボックスの上・右・下・左ボーダーについて、その幅・スタイル・色を指定する短縮形プロパティである。値が省略された場合は、初期値が指定される。
名前: | border |
---|---|
値: | <border-width> || <border-style> || <color> |
初期値: | 個別のプロパティを参照 |
適用対象: | すべての要素 |
継承: | なし |
パーセンテージ: | なし |
媒体: | visual |
計算値: | 個別のプロパティを参照 |
‘border
’ プロパティは、ボックスの上下左右すべてのボーダーに対し、幅・色・スタイルを指定する短縮形プロパティである。‘margin
’ や ‘padding
’ とは異なり、‘border
’ は上下左右にそれぞれ異なる値を指定することはできない。異なる値を指定したい場合は、別のプロパティを利用しなければならない。
‘border
’ 短縮形プロパティはまた、‘border-image
’ プロパティを初期値にリセットする。このことから、他の要素から継承されたボーダー関連のスタイル指定を上書きしたい場合、利用者は他の個別プロパティもしくは短縮形プロパティではなく ‘border
’ を利用することが推奨される。こうすることにより、 ‘border-image
’ についても継承されたスタイルをリセットし、新しいスタイルを与えることができる。
CSS Working Group は将来の CSS レベルで導入される他のボーダー関連プロパティについても、‘border
’ によってスタイルが初期値にリセットされるように定義することを検討している。たとえば、もし文字グリフをボーダーとして指定する ‘border-characters
’ が定義されたとしても、その値は ‘border
’ で初期値にリセットされる。‘border
’ 短縮形プロパティにボーダーをリセットするという目的を与えることで、将来導入されるプロパティがどんなものであっても、制作者は「空の canvas」を得る手法が保証されることになる。
たとえば、次のコードにある最初のスタイル規則は、その次に現れる4つの規則に等しい。
p { border: solid red } p { border-top: solid red; border-right: solid red; border-bottom: solid red; border-left: solid red; border-image: none; }
プロパティの機能がいくつか重複することもあり、プロパティの指定順が重要になる。
次の例を考えてみよう。
blockquote { border-color: red; border-left: double; color: black }
この例では、左ボーダーの色が黒で、他のボーダーの色は赤となる。これは ‘border-left
’ が幅・スタイル・色を指定する事による。色がこの ‘border-left
’ からは与えられていないため、‘color
’ プロパティの値が利用される。‘color
’ が ‘border-left
’ より後に指定されているが、この例に対しては何ら影響しない。
border-radius
’
プロパティ名前: | border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-top-left-radius |
---|---|
値: | [ <length> | <percentage> ] [ <length> | <percentage> ]? |
初期値: | 0 |
適用対象: | すべての要素 (注: 後述のテキストを参照) |
継承: | なし |
パーセンテージ: | 関連する ボーダーボックス の寸法を参照 |
媒体: | visual |
計算値: | 2つの絶対 <length> もしくはパーセンテージ |
名前: | border-radius |
---|---|
値: | [ <length> | <percentage> ]{1,4} [ / [ <length> | <percentage> ]{1,4} ]? |
初期値: | 0 |
適用対象: | すべての要素、ただし ‘border-collapse ’ に ‘collapse ’ が指定された表要素を除く
|
継承: | なし |
パーセンテージ: | 関連する ボーダーボックス の寸法を参照 |
媒体: | visual |
計算値: | 個別のプロパティを参照 |
‘border-*-radius
’ プロパティは、ボックスの角における外ボーダーエッジのカーブを定義する四半楕円の径を定める (下の図版を参照)。四半楕円の径は、プロパティに与えられた2つの <length> もしくは <percentage> が定義する。1番目の値は水平方向の径に、2番目の値は垂直方向の径になる。2番目の値が欠けた場合は1番目の値がコピーされる。どちらかの値に 0 がある場合、角は丸くならず直角になる。水平方向の径に与えられたパーセンテージはボーダーボックスの幅から、垂直方向の径に与えられたパーセンテージはボーダーボックスの高さから決定される。
‘border-radius
’ は、4つの ‘border-*-radius
’ プロパティをまとめて指定する短縮表記である。値がスラッシュによって区切られると、スラッシュ前の値が水平方向の径を、スラッシュ後の値が垂直方向の径をとなる。スラッシュのない場合、値は水平方向・垂直方向どちらにも等しく指定される。径に与えた4つの値は、左上、右上、右下、左下の順になる。左下の値が欠けた場合は右上と同じ値に、右下の値が欠けた場合は左上と同じ値に、そして右上の値が欠けた場合は左上と同じ値になる。
border-radius: 4em;これは次と等価である。
border-top-left-radius: 4em; border-top-right-radius: 4em; border-bottom-right-radius: 4em; border-bottom-left-radius: 4em;また、次の指定
border-radius: 2em 1em 4em / 0.5em 3em;これは次と等価である。
border-top-left-radius: 2em 0.5em; border-top-right-radius: 1em 3em; border-bottom-right-radius: 4em 0.5em; border-bottom-left-radius: 1em 3em;
パディングエッジ (内ボーダー) の径は、外ボーダーの径と ‘border-width
’ の差になる。値が負となる場合、内径は 0 になる。(このような状況においては、内ボーダーの中心と外ボーダーの中心が一致しないことがあるだろう。) 同様に、コンテントエッジの径はパディングエッジとパディングの差になり、値が負となる場合は 0 になる。カーブにおけるボーダーとパディングの大きさは、隣接する2辺から補完される。隣接するボーダーの太さが異なる場合、角のボーダーの太さは2辺がスムーズに結合するよう、段階的に変化する。
Note: つまり、外のカーブが隣接する角のパディングエッジを超えて広がる場合、内側の曲線は完全な四半楕円にならない可能性がある。
すべてのボーダースタイル (‘solid
’, ‘dotted
’, ‘inset
’ など) はボーダーの曲線に沿って描画される。
画像ボーダーのないボックスの背景は、角のカーブにしたがって適切に切り抜かれる (‘background-clip
’ が影響する)。ボーダーまたはパディングエッジまでクリッピングする他の効果 (‘visible
’ 以外の ‘overflow
’ など) もまた、角のカーブに沿って切り抜かれる必要がある。置換要素の内容はコンテントエッジのカーブに沿って切り取られる。また、ボーダーエッジのカーブ外側にある領域において、その要素に関連するマウスイベントは受け付けない。
この例では要素に適切なパディングを与えているため、内容が角からはみ出ることがない。なお、ボーダーはないが、背景の角が丸まっていることに注意されたい。
DIV { background: black; color: white; border-radius: 1em; padding: 1em }
色とスタイルの変移は、隣接するボーダーの径と内カーブの中心を含む、最小な矩形領域内で行われなければならない (‘border-radius
’ が ‘border-width
’ よりも小さい場合、カーブの中心はパディングエッジの角となる)。
ボーダーが結合する際に発生する色とスタイルの変移は、ボーダーの太さの比から求められる角度を中心点とする。たとえば、上と右のボーダーが同じ太さの場合、中心は水平から 45° の箇所にある。上が右よりも2倍の太さをもつ場合、中心は水平から 30° の箇所にある。変移の境界線は、外側のカーブおよび内側のカーブと、求められた角度との交点を結んだものになる。
遷移の見た目については定義しない。
角のカーブは重なってはならない。隣接するボーダー径の和がボーダーボックスの大きさを上回る場合、UA はすべてのボーダー径が重複しなくなるまで、適切にその利用値を縮小させなければならない。径の縮小アルゴリズムは次の通り。
変数 f, i, Li, Si について、それぞれ f = min(Li/Si), i ∈ {top, right, bottom, left}, Si を側面 i の径の和、Ltop = Lbottom = ボックスの幅、Lleft = Lright = ボックスの高さとする。f < 1 のとき、すべての角の径には f が掛けられ縮小される。
Note: この公式は四半円が四半円として存在し、また大きな径は小さな径よりも大きくあり続けることを保証するものである。しかし、充分に小さい角も小さくしてしまうため、同じように見えるべき近接要素のボーダーも異なるように見えることがある。
カーブがスクロールバーなど UI 要素に接するとき、UA は影響するボーダー径 (のみ) をさらに必要なところまで縮小させることができる。ただし、必要以上の縮小は認められない。
‘border-radius
’ の値が縮小されたとしても、ボックスの描画はもともと指定されたものと全く同じでなければならない。
たとえば、以下の図 における A と D は、次のコードが指定されたものの結果とする。
box-sizing: border-box; width: 6em; height: 2.5em; border-radius: 0.5em 2em 0.5em 2em
この場合、与えられた高さ (2.5em) は指定された径 (0.5em と 2.5em) に充分である。ところが、高さが 2em しかない場合を考えてみよう。
box-sizing: border-box; width: 6em; height: 2em; border-radius: 0.5em 2em 0.5em 2em
この場合、足りない高さに合わせるため、すべての角は 0.8 倍される必要がある。つまり、‘border-radius
’ の利用値は 0.5em と 2em ではなく、0.4em と 1.6em になる。図の B と C のボーダーを見てみよう。
‘border-radius
’ は ‘table
’ や ‘inline-table
’ にも適用される。‘border-collapse
’ が collapse
’ のとき、UA は ‘border-radius
’ 関連プロパティを ‘table
’ や ‘inline-table
’ 要素に指定することができるが、これは必須ではない。この場合、隣接する角のボーダー径が重なってはいけないどころか、水平方向および垂直方向の角の径についてもセルの角の境界を超えて伸びてはならない (つまり、あるセルの角は他の角の ‘border-radius
’ に影響してはならない)。もし ‘border-radius
’ の計算値が影響する場合、テーブルに指定されたすべての ‘border-radius
’ の仕様値に対し、交差もしくは関係する角のセルとの境界を超えることがなくなるまで、等しく縮小されなければならない。
表内部の要素 に ‘border-radius
’ が与えられた時の効果は CSS3 Backgrounds and Borders では未定義であるが、将来の仕様で定義されるかもしれない。CSS3 UA は ‘border-collapse
’ が ‘collapse
’ であるとき、テーブル内部要素に適用される ‘border-radius
’ を無視すべきである。
次の例は、15em の幅と 10em の高さをもつ楕円を描く。
DIV.standout { width: 13em; height: 8em; border: solid black 1em; border-radius: 7.5em 5em }
制作者はボーダーのスタイルが適用される箇所に画像を指定することができる。このとき、ボーダーのデザインは ‘border-image-source
’ で指定された画像の角と側面が利用される。指定された画像は 画像ボーダーの領域 に合うようにスライス、拡大縮小、変形が行われることがある。画像ボーダー関連プロパティはレイアウトには影響しない。ボックスのレイアウト、内容、周辺の内容は ‘border-width
’ と ‘border-style
’ のみを基とする。
次の例では、オレンジの菱形を画像ボーダーとして利用する。想定する結果は、上ボーダーと下ボーダーでは菱形が並び、左と右では1つの菱形を伸長したものが表示される。角にも菱形が指定されるが、その色は異なる。ボーダーに仕様する画像は次のとおりで、菱形の部分を除いて透過されているものとする。
画像が 81 × 81 ピクセルとして、これを9等分したい場合、スタイル規則は次のようになる。
DIV { border: double orange 1em; border-image: url("border.png") 27 round stretch; }
このスタイル規則が幅 12em 高さ 5em の DIV に適用された場合、そのボックスは次のように見えるだろう。
次の例はより複雑なもので、どのように画像ボーダーがフォールバックのボーダースタイルと関連し、またボーダー領域を超えられるかを示す。画像ボーダーは緑の波打つ線で、角に凝った表現が施されている。
スライスされた画像は、残りのボーダー関連プロパティと次のように関係する。
ここで、たとえ ‘border-width
’ が 12px であっても、‘border-image-width
’ プロパティは 124px として計算される。画像ボーダー領域はボーダーボックスから 31px はみ出し、マージン領域まで進出する。画像ボーダーの読み込みが失敗する (もしくは UA がサポートしない) とき、フォールバックとして緑色の二重線が描画される。
‘border
’ 短縮形プロパティが ‘border-image
’ の指定をリセットすることに注意されたい。短縮形プロパティを利用することで、すべてのボーダー効果を簡単に無効にできる。
.notebox { border: double orange; /* 'border' は最初に書かれる必要がある。そうしないと 'border-image' もリセットされるからだ。 */ border-image: url("border.png") 30 round; /* 他の 'border' 関連プロパティについて後で指定することも可能だ。 */ border-width: thin thick; } ... .sidebar .notebox { box-shadow: 0 0 5px gray; border-radius: 5px; border: none; /* 全てのボーダーを無効にする。 */ /* 'border' 短縮形プロパティが 'border-image' をリセットする。 */ }
border-image-source
’ プロパティ名前: | border-image-source |
---|---|
値: | none | <image> |
初期値: | none |
適用対象: | ‘border-collapse ’ が ‘collapse ’ であるテーブル内部要素を除くすべての要素
|
継承: | なし |
パーセンテージ: | なし |
媒体: | visual |
計算値: | ‘none ’ もしくは絶対化された画像の URI
|
このプロパティは ‘border-style
’ で指定されるボーダースタイルの代わりに利用される画像を指定し、また新しい背景レイヤーを追加する。値が ‘none
’ のときもしくは画像が表示できないときには画像ボーダーが表示されず、ボーダースタイルが利用される。
border-image-slice
’ プロパティ名前: | border-image-slice |
---|---|
値: | [<number> | <percentage>]{1,4} && fill? |
初期値: | 100% |
適用対象: | ‘border-collapse ’ が ‘collapse ’ であるテーブル内部要素を除くすべての要素
|
継承: | なし |
パーセンテージ: | ボーダー画像の大きさを参照 |
媒体: | visual |
計算値: | 指定の通り |
‘border-image-slice
’ に与えられた4つの値は、上、右、下、左の順で画像のオフセットを表し、このオフセットの値から画像を4つの角、4つの側面、そして中央からなる9つの領域にスライスする。‘fill
’ キーワードが指定されない場合、中央の領域は破棄される (透明なものとして扱われる)。(画像は背景の上に描画される。詳細は 画像ボーダーの描画プロセス を参照されたい。)
4番目の値/パーセンテージが欠けた場合は2番目と同じ値に、3番目が欠けた場合は1番目と同じ値に、2番目が欠けた場合は1番目と同じ値になる。
fill
’
fill
’ が指定される場合、画像ボーダーの中心部も描画される。 (通常では中心部は省かれ、空として扱われる。)
負の値は認められない。また、画像の大きさよりも大きな値は ‘100%
’ と解釈される。
‘border-image-slice
’ の値によって与えられる領域は重なることがある。しかし、右と左の幅の和が画像の幅以上の場合、上辺と下辺および中央部の画像は空となり、空ではない透明な画像がそれらの箇所に指定された状態と同じ効果を与える。上と下の高さの和が画像の高さ以上の場合についても、同様の効果を与える。
border-image-width
’ プロパティ名前: | border-image-width |
---|---|
値: | [ <length> | <percentage> | <number> | auto ]{1,4} |
初期値: | 1 |
適用対象: | ‘border-collapse ’ が ‘collapse ’ であるテーブル内部要素を除くすべての要素
|
継承: | なし |
パーセンテージ: | 画像ボーダー領域 の幅/高さに比例 |
媒体: | visual |
計算値: | すべての <length> は絶対値に、他は指定の通り |
画像ボーダーは 画像ボーダー領域 と呼ばれる区域の中に描画される。この領域の境界は、通常ではボーダーボックスとなる。詳細は ‘border-image-outset
’ を参照されたい。
‘border-image-width
’ に指定される4つの値は、この画像ボーダー領域を9つにスライスするオフセットを指定する。値は内向きの距離を上、右、下、左の順に指定する。4番目の値が欠けた場合は2番目と同じ値に、3番目が欠けた場合は1番目と同じ値に、2番目が欠けた場合は1番目と同じ値になる。値は次のような意味を持つ。
border-width
’ (計算値) の倍数を表す。
auto
’
auto
’ が指定されたとき、画像ボーダーの幅は画像スライス中の該当箇所に内在する幅もしくは高さとなる (‘border-image-slice
’ を参照)。画像が必須の内在寸法を持たないときは、該当する箇所の border-width が代わりに使用される。
Are percentages of the border-image area useful? Should percentages be used instead of numbers for ratios?
いかなる ‘border-image-width
’ の値にも負の値を指定することは許されない。
2つの対になる ‘border-image-width
’ のオフセットが重なるとき、‘border-image-slice
’ の利用値は重ならなくなるまで等しく縮小される。数式では次のように表す。Lwidth が画像ボーダー領域の幅、Lheight が画像ボーダー領域の高さ、Wside が側面 side における画像ボーダーの幅オフセットとして与えられるとき、f = min(Lwidth/(Wleft+Wright), Lheight/(Wtop+Wbottom)) とする。f < 1 のとき、すべての W には f が掛けられ縮小される。
border-image-outset
’ プロパティ名前: | border-image-outset |
---|---|
値: | [ <length> | <number> ]{1,4} |
初期値: | 0 |
適用対象: | ‘border-collapse ’ が ‘collapse ’ であるテーブル内部要素を除くすべての要素
|
継承: | なし |
パーセンテージ: | なし |
媒体: | visual |
計算値: | すべての <length> は絶対値に、他は指定の通り |
画像ボーダー領域がボーダーボックスをどこまで超えられるかを、上、右、下、左の順に指定する。4番目の値が欠けた場合は2番目と同じ値に、3番目が欠けた場合は1番目と同じ値に、2番目が欠けた場合は1番目と同じ値になる。数値は関連する ‘border-width
’ の倍数を表す。
いかなる ‘border-image-outset
’ の値にも負の値を指定することは許されない。
ボーダーボックスの外に描画される画像ボーダーについて、はみ出した部分がスクロールを発生させることはない。そのような部分はマウスイベントにも反応せず、また要素のイベントとしてキャプチャされることはない。
Note: スクロールを発生させることはないが、領域が親要素もしくは viewport によって切り抜かれることは引き続きある。
border-image-repeat
’ プロパティ名前: | border-image-repeat |
---|---|
値: | [ stretch | repeat | round ]{1,2} |
初期値: | stretch |
適用対象: | ‘border-collapse ’ が ‘collapse ’ であるテーブル内部要素を除くすべての要素
|
継承: | なし |
パーセンテージ: | なし |
媒体: | visual |
計算値: | 指定の通り |
このプロパティはボーダー画像の周辺部と中心部がどのように拡大縮小するか、もしくはどのように並ぶかを指定する。2番目のキーワードが存在しない場合、1番目と同じ値が使用される。各キーワードの意味は次の通り。
stretch
’
repeat
’
round
’
space
’
正確な画像ボーダーの拡大縮小/敷き詰め処理は、次のセクションにて説明する。
‘border-image-source
’ で指定された画像は ‘border-image-slice
’ の値によってスライスされる。スライスされた9つの画像は次の4つのステップを経て、該当する画像ボーダーの区画領域に拡大縮小され、配置され、敷き詰められる。
border-image-width
’ に関する拡大縮小処理を行う。
上と下に配置される画像は、画像ボーダー領域 で指定された区画の高さと同じになり、幅は比例して拡大もしくは縮小される。
左と右に配置される画像は、画像ボーダー領域 で指定された区画の幅と同じになり、高さは比例して拡大もしくは縮小される。
角に配置される画像は、画像ボーダーエッジの幅と高さと同じになり、拡大もしくは縮小される。
中心部に配置される画像の幅は、上の画像と同じ係数で拡大もしくは縮小される。上の画像の係数が 0 もしくは無限大の場合は、下の画像の係数が代わりに利用される。どちらの条件も満たせない場合、幅は拡大も縮小もされない。同様に、中心部に配置される画像の高さは、左の画像と同じ係数で拡大もしくは縮小される。左の画像の係数が 0 もしくは無限大の場合は、右の画像の係数が代わりに利用される。どちらの条件も満たせない場合、高さは拡大も縮小もされない。
border-image-repeat
’ に関する拡大縮小処理を行う。
1番目のキーワードが ‘stretch
’ である場合、上、中心部、下の画像は 画像ボーダー領域 の中心部の幅と同じ大きさにさらに拡大もしくは縮小される。高さは変化しない。
1番目のキーワードが ‘round
’ である場合、上、中心部、下の画像は ‘background-repeat
’ プロパティにおける ‘round
’ と同じように、その幅が画像ボーダー領域の幅に整数倍でちょうど収まるように拡大もしくは縮小される。
1番目のキーワードが ‘repeat
’ もしくは ‘space
’ である場合、上、中心部、下の画像はそれ以上変化しない。
2番目のキーワードについて ‘stretch
’, ‘round
’, ‘repeat
’, ‘space
’ は1番目のキーワードと同様の働きを、左、中心部、右の画像と画像ボーダー領域の高さに対し行う。
1番目のキーワードが ‘repeat
’ である場合、上、中心部、下の画像は該当する区画の水平中心に配置される。それ以外の場合、画像は画層ボーダー領域の該当する区画の左端に配置される。
2番目のキーワードが ‘repeat
’ である場合、左、中心部、右の画像は該当する区画の垂直中心に配置される。それ以外の場合、画像は画層ボーダー領域の該当する区画の上端に配置される。
画像は該当する区画を埋めるように敷き詰められる。すべての画像は標準ボーダーと同じスタッキングレベルに描画される。すなわち、背景レイヤーの直前に描画される。
キーワードが ‘space
’ である場合、一枚全部を表示できない画像は破棄され、画像と画像の間に隙間が挿入される。(つまり、最初の画像の前、最後の画像の後、そして画像と画像の間に等しい隙間が設けられる。) これによって、側面に空の画像ボーダーがもたらされることもある。
border-image
’
短縮形プロパティ名前: | border-image |
---|---|
値: | <‘border-image-source ’> ||
<‘border-image-slice ’> [ /
<‘border-image-width ’>? [ /
<‘border-image-outset ’> ]? ]? ||
<‘border-image-repeat ’>
|
初期値: | 各プロパティを参照 |
適用対象: | 各プロパティを参照 |
継承: | なし |
パーセンテージ: | なし |
媒体: | visual |
計算値: | 各プロパティを参照 |
このプロパティは ‘border-image-source
’, ‘border-image-slice
’, ‘border-image-width
’, ‘border-image-outset
’, ‘border-image-repeat
’ を指定する短縮形プロパティである。省略された値には、該当するプロパティの初期値が指定される。
box-decoration-break
’ プロパティ名前: | box-decoration-break |
---|---|
値: | slice | clone |
初期値: | slice |
適用対象: | すべての要素 |
継承: | なし |
パーセンテージ: | なし |
媒体: | visual |
計算値: | 指定の通り |
ボックスがページの区切りやカラムの区切りによって、あるいはインライン要素が改行によって分割されることがある。このとき、‘box-decoration-break
’ プロパティはその分割された個々のボックスが、1つの連続したボックスの一部であるか、もしくは個別のボックスとなりボーダーやパディングをそれぞれ持つかを指定する。また、背景についても 背景配置領域 がこれら複数のボックスからどのように導きだされ、そして背景がそれらの中にどう描画されるかがこのプロパティにより決定される。値は次の意味を持つ。
clone
’
border-radius
’ と ‘border-image
’、‘box-shadow
’ がある場合は、それらは個別に適用される。背景は個々のボックスにそれぞれ描画される。背景画像が繰り返しなしと指定された場合も、それぞれのボックスに1つずつ描画される。
slice
’
区切りにボーダーやパディングが挿入されない。境界に box-shadow
’ が描画されることもない。‘border-radius
’ も境界の角には適用されない。そして、‘border-image
’ も、ボックスが分割されていないものと同じように描画される。表示としては、要素が区切りのない状態で描画されたのち、区切りの部分でスライスされたものとなる。
背景は、要素の配置が (均等割付、bidi 再配置、ページ区切りなども含め) 完了した後、すべての要素のボックスが視覚的な順序で並べられたかのように描画される。背景はもとのボックスの境界ボックスに適用され、その後ボックス全体における各ボックスの割合を勘案され背景が適用される。
行をまたぐボックスについては、まず同じ行にあるボックスが視覚的に結合される。その後、次の行にあるボックスが要素の書字方向とベースラインによって並べられる。たとえば、書字方向が左から右に流れるコンテナブロック (‘direction
’ が ‘ltr
’) の場合、最初のボックスは最初の行の一番左にあるボックスになり、次に続くボックスのラインはその右側に連なることになる。書字方向が右から左に流れるコンテナブロックの場合は、最初のボックスは最初の行の一番右にあるボックスとなり、次に続くボックスはそのラインの左側に連なることになる。
カラムをまたぐボックスについては、カラムが一続きの要素として扱われ、マルチカラム要素におけるブロックの流れる方向に沿い、各カラムが結合されたようになる。ページをまたがるボックスについては、ページの内容領域がルート要素におけるブロックの流れる方向に沿って結合されたようになる。これらの場合、各部分が異なる幅 (縦書きの場合は高さ) を持つ場合、各部分はすべての要素が同じ幅 (高さ) を持つように扱い背景を描画する。これにより、右寄せの画像は常に右端にならび、左寄せの画像は左端にならび、中央寄せの画像は中央にならぶことを保証できる。
インライン要素において、ボックスの区切りに面した箇所は、コンテナブロックの書字方向ではなく、その要素の書字方向によって決定する。たとえば、‘direction: rtl
’ なインライン要素が ‘direction: ltr
’ なブロック内にある場合、そのインライン要素は左端で区切られる。
box-shadow
’
プロパティ名前: | box-shadow |
---|---|
値: | none | <shadow> [ , <shadow> ]* |
初期値: | none |
適用対象: | すべての要素 |
継承: | なし |
パーセンテージ: | なし |
媒体: | visual |
計算値: | すべての <length> は絶対値に、すべての色は計算値に、他は指定の通り |
‘box-shadow
’ プロパティはボックスに1つ以上のドロップシャドウを適用する。このプロパティはカンマ区切りの <shadow> を指定する。1つの <shadow> は2~4の <length> と、<color> (任意) および ‘inset
’ キーワード (任意) をとる。<length> が省かれた場合は 0 が、<color> が省かれた場合は UA の選んだ色が使われる。
<shadow> の定義は次の通り。
<shadow> = inset? && [ <length>{2,4} && <color>? ]
<shadow> の各コンポーネントは次のように解釈される。
inset
’ が指定されたとき、ドロップシャドウ効果は外側 (浮き上がったような効果) から内側 (ボックスの領域が切り取られ、その奥に影があたったような効果) に切り替わる。
外側の影は要素のボーダーボックスが不透明であるかのように振舞う。また影はボーダーエッジの外側のみに描画され、その内側は切り取られる。
内側の影はパディングエッジの外側が不透明であるかのように振舞う。内側の影はパディングエッジの内側にのみ描画され、パディングボックスの外側は切り取られる。
ボックスが 0 でない ‘border-radius
’ を持つ場合、影の形状も同じように丸くなる。‘border-image
’ は ‘box-shadow
’ の形状には影響しない。
スプレッドが与えられると、影は拡張もしくは収縮する。次に記すぼかし処理にスプレッドの絶対値が反映され、さらに次に記す調整と等価な処理が行われる。正のスプレッドにおいては、ぼかし処理の結果からすべての透過されていないピクセルが影に指定された色と同じであるように調整される。負のスプレッドにおいては、ぼかし処理の結果からすべての不透過でないピクセルが透過されるように調整される。UA は、もとの影の外周から指定された距離分だけ垂直方向に伸ばした形状を得るという概算を行える。UA ははっきりした影のエッジを与えられた距離分だけ伸長 (内側の影の場合はは伸縮) して変形された影の外周からなる形状を得るという概算も行える。(UA はこれらの方法を組み合わせ、外側には一方の手法を、内側にはもう一方の手法を利用することもできる。) しかし、‘border-radius
’ が 0 の角については、角はくっきりしたままでなければならない。これは影の形状を拡大縮小する処理においても等価である。どのような場合でも、影からなる形状の実質的な幅と高さの最小値は 0 となる。(大きさが 0 の影は外側の影を見えなくさせ、内側の影はパディングボックスを覆う。)
ぼかしの距離が 0 でない場合、描画される影はガウスフィルタなどによりぼかされることを意味する。ぼかしのアルゴリズムは定義しないが、描画される影は標準偏差がぼかしの半径の半分に等しいガウスぼかしを影に適用した結果と近似 (各ピクセルにおいて想定値の 5% 以内) していなければならない。
長くはっきりした影のエッジにおいて、エッジから外側・内側にぼかしの半径分を垂直方向にとった領域内で、視覚的に区別できる色の遷移が行われることを意味する。遷移は、影の内側にある視点から外側にある終点において、プロパティに指定された色から透明に変化する。
次の例は影に与えたスプレッドとぼかしを説明するものだ。
影の効果は正面から背後に向かって適用される。1番目の影が最も手前にあり、以降の影は前の影の背後に描画される。影はレイアウトに影響せず、また他のボックスやそれらの影と重なることがある。stacking contextと描画の順番により、外側の影は要素の背景の背後に描画され、内側の影は背景の手前 (ボーダーや画像ボーダーの背後) に描画される。
要素が複数のボックスを持つ場合、全てのボックスにドロップシャドウが適用される。しかし、影はボーダーが描画される箇所にのみ描画される。これについては ‘box-decoration-break
’ を参照されたい。
影はスクロールを発生させることもなければ、スクロール可能な領域を広げることもない。
次は青いボーダーを持つオレンジ色のボックスにドロップシャドウを適用した例だ。
|
|
|
---|---|---|
| ||
| ||
| ||
|
‘box-shadow
’ プロパティは ‘::first-letter
’ 擬似要素に適用されるが、‘::first-line
’ 擬似要素には適用されない。ボーダーの折りたたまれた表内部要素において、外側の影は何の効果も適用しない。太さが複数ある折りたたまれたボーダーのモデルにおいて影がひとつのボーダーエッジに定義される場合 (テーブル内である行のボーダーが他の行よりも古いようなテーブルに外側の影を与えた場合や、異なるボーダーの太さをもち行をまたいだセルに内側の影を与えた場合) 、その影の位置や描画は未定義となる。
The following terms and abbreviations are used in this module.
A program that reads and/or writes CSS style sheets on behalf of a user in either or both of these categories: programs whose purpose is to render documents (e.g., browsers) and programs whose purpose is to create style sheets (e.g., editors). A UA may fall into both categories. (There are other programs that read or write style sheets, but this module gives no rules for them.)
A tree-structured document with elements and attributes, such as an SGML or XML document [XML11].
Conformance requirements are expressed with a combination of descriptive assertions and RFC 2119 terminology. The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in the normative parts of this document are to be interpreted as described in RFC 2119. However, for readability, these words do not appear in all uppercase letters in this specification. All of the text of this specification is normative except sections explicitly marked as non-normative, examples, and notes. [RFC2119]
Examples in this specification are introduced with the words “for
example” or are set apart from the normative text with
class="example"
, like this:
This is an example of an informative example.
Informative notes begin with the word “Note” and are set apart from
the normative text with class="note"
, like this:
Note, this is an informative note.
Conformance to CSS Backgrounds and Borders Level 3 is defined for three classes:
A style sheet is conformant to CSS Backgrounds and Borders Level 3 if all of its declarations that use properties defined in this module have values that are valid according to the generic CSS grammar and the individual grammars of each property as given in this module.
A renderer is conformant to CSS Backgrounds and Borders Level 3 if, in addition to interpreting the style sheet as defined by the appropriate specifications, it supports all the properties defined by CSS Backgrounds and Borders Level 3 by parsing them correctly and rendering the document accordingly. However the inability of a UA to correctly render a document due to limitations of the device does not make the UA non-conformant. (For example, a UA is not required to render color on a monochrome monitor.)
An authoring tool is conformant to CSS Backgrounds and Borders Level 3 if it writes syntactically correct style sheets, according to the generic CSS grammar and the individual grammars of each property in this module.
This section is informative. CSS has different levels of features, each a subset of the other. (See [CSSBEIJING] for a full explanation.) The lists below describe which features from this specification are in each level.
background-color
’
background-image
’ only one image (no
layers)
background-repeat
’: only ‘repeat
’ | ‘repeat-x
’ | ‘repeat-y
’ | ‘no-repeat
’
background-attachment
’: only ‘scroll
’ | ‘fixed
’
background-position
’: only one or two
values allowed
background
’ shorthand: only color, image,
repeat, attachment and position
border-color
’ properties
border-style
’ properties
border-width
’ properties
border-top
’, ‘border-bottom
’, ‘border-right
’,
‘border-left
’, and ‘border
’ shorthands
background-color
’
background-image
’: only one image (no
layers)
background-repeat
’: only ‘repeat
’ | ‘repeat-x
’ | ‘repeat-y
’ | ‘no-repeat
’
background-attachment
’: only ‘scroll
’ | ‘fixed
’
background-position
’: only one or two
values allowed
background
’: only color, image, repeat,
attachment and position
border-color
’ properties
border-style
’ properties
border-width
’ properties
border-top
’, ‘border-bottom
’, ‘border-right
’,
‘border-left
’, and ‘border
’ shorthands
As described in the W3C process document, a Candidate Recommendation (CR) is a specification that W3C recommends for use on the Web. The next stage is “Recommendation,” when the specification is sufficiently implemented.
For this specification to be proposed as a W3C Recommendation, the following conditions shall be met. There must be at least two independent, interoperable implementations of each feature. Each feature may be implemented by a different set of products, there is no requirement that all features be implemented by a single product. For the purposes of this criterion, we define the following terms:
A minimum of sixth months of the CR period must have elapsed. This is to ensure that enough time is given for any remaining major errors to be caught.
Features will be dropped if two or more interoperable implementations are not found by the end of the CR period.
Features may/will also be dropped if adequate/sufficient (by judgment of CSS WG) tests have not been produced for those feature(s) by the end of the CR period.
The following changes were made to this specification since the 17 December 2009 Candidate Recommendation:
content-box
’ value of
‘background-clip
’.
background
’ shorthand syntax for
‘background-clip
’ and ‘background-origin
’.
border-radius
’ produces a curve.
box-shadow
’ property.
Tapas Roy was editor of the Border Module, before it was merged with the Background Module.
Thanks to Ben Stucki for defining what happens with rounded corners if
the two adjoining borders are of unequal thickness or one of them is zero;
to Arjan Eising and Anne van Kesteren for the ‘border-radius
’
syntax; to Zack Weinberg for the corner transition regions diagram.
A set of properties for border images was initially proposed by fantasai. The current simplification (one image cut into nine parts) is due to Ian Hickson. (Though the original idea seems to originate with some anonymous Microsoft engineers.)
Finally, special thanks go to Brad Kemper for his feedback and
suggestions for many of the features in the draft, for drawing all the
box-shadow examples, and for proposing some radical
changes to the ‘border-image
’ property that solved a
number of problems with the earlier definition.
Property | Values | Initial | Applies to | Inh. | Percentages | Media |
---|---|---|---|---|---|---|
background | [ <bg-layer> , ]* <final-bg-layer> | see individual properties | all elements | no | see individual properties | visual |
background-attachment | <attachment> [ , <attachment> ]* | scroll | all elements | no | N/A | visual |
background-clip | <box> [ , <box> ]* | border-box | all elements | no | N/A | visual |
background-color | <color> | transparent | all elements | no | N/A | visual |
background-image | <bg-image> [ , <bg-image> ]* | none | all elements | no | N/A | visual |
background-origin | <box> [ , <box> ]* | padding-box | all elements | no | N/A | visual |
background-position | <bg-position> [ , <bg-position> ]* | 0% 0% | all elements | no | refer to size of background positioning area minus size of background image; see text | visual |
background-repeat | <repeat-style> [ , <repeat-style> ]* | repeat | all elements | no | N/A | visual |
background-size | <bg-size> [ , <bg-size> ]* | auto | all elements | no | see text | visual |
border | <border-width> || <border-style> || <color> | See individual properties | all elements | no | N/A | visual |
border-color | <color>{1,4} | (see individual properties) | all elements | no | N/A | visual |
border-image | <‘border-image-source’> || <‘border-image-slice’> [ / <‘border-image-width’>? [ / <‘border-image-outset’> ]? ]? || <‘border-image-repeat’> | See individual properties | See individual properties | no | N/A | visual |
border-image-outset | [ <length> | <number> ]{1,4} | 0 | All elements, except internal table elements when ‘border-collapse’ is ‘collapse’ | no | N/A | visual |
border-image-repeat | [ stretch | repeat | round | space ]{1,2} | stretch | All elements, except internal table elements when ‘border-collapse’ is ‘collapse’ | no | N/A | visual |
border-image-slice | [<number> | <percentage>]{1,4} && fill? | 100% | All elements, except internal table elements when ‘border-collapse’ is ‘collapse’ | no | refer to size of the border image | visual |
border-image-source | none | <image> | none | All elements, except internal table elements when ‘border-collapse’ is ‘collapse’ | no | N/A | visual |
border-image-width | [ <length> | <percentage> | <number> | auto ]{1,4} | 1 | All elements, except table elements when ‘border-collapse’ is ‘collapse’ | no | Relative to width/height of the border image area | visual |
border-radius | [ <length> | <percentage> ]{1,4} [ / [ <length> | <percentage> ]{1,4} ]? | 0 | all elements, except table element when ‘border-collapse’ is ‘collapse’ | no | Refer to corresponding dimension of the border box. | visual |
border-style | <border-style>{1,4} | (see individual properties) | all elements | no | N/A | visual |
border-top, border-right, border-bottom, border-left | <border-width> || <border-style> || <color> | See individual properties | all elements | no | N/A | visual |
border-top-color , border-right-color, border-bottom-color, border-left-color | <color> | currentColor | all elements | no | N/A | visual |
border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-top-left-radius | [ <length> | <percentage> ] [ <length> | <percentage> ]? | 0 | all elements (but see prose) | no | Refer to corresponding dimension of the border box. | visual |
border-top-style, border-right-style, border-bottom-style, border-left-style | <border-style> | none | all elements | no | N/A | visual |
border-top-width, border-right-width, border-bottom-width, border-left-width | <border-width> | medium | all elements | no | width* of containing block | visual |
border-width | <border-width>{1,4} | (see individual properties) | all elements | no | see individual properties | visual |
box-decoration-break | slice | clone | slice | all elements | no | N/A | visual |
box-shadow | none | <shadow> [ , <shadow> ]* | none | all elements | no | N/A | visual |
auto
’
background-size
’ value, 3.9.
border-image-width
’ value, 6.3.
border-box
’
background-clip
’ value, 3.7.
background-origin
’ value, 3.8.
bottom
’
background-position
’ value, 3.6.
center
’
background-position
’ value, 3.6.
clone
’, 7.1.
contain
’, 3.9.
content-box
’, 3.8.
background-clip
’ value, 3.7.
cover
’, 3.9.
dashed
’, 4.2.
dotted
’, 4.2.
double
’, 4.2.
fill
’, 6.2.
fixed
’, 3.5.
groove
’, 4.2.
hidden
’, 4.2.
inset
’, 4.2.
left
’
background-position
’ value, 3.6.
local
’, 3.5.
none
’
background-image
’ value, 3.3.
border-image-source
’ value, 6.1.
border-style
’ value, 4.2.
no-repeat
’
background-repeat
’ value, 3.4.
outset
’, 4.2.
padding-box
’
background-clip
’ value, 3.7.
background-origin
’ value, 3.8.
repeat
’
background-repeat
’ value, 3.4.
border-image-repeat
’ value, 6.5.
repeat-x
’, 3.4.
repeat-y
’, 3.4.
ridge
’, 4.2.
right
’
background-position
’ value, 3.6.
round
’
background-repeat
’ value, 3.4.
border-image-repeat
’ value, 6.5.
scroll
’, 3.5.
slice
’, 7.1.
solid
’, 4.2.
space
’
background-repeat
’ value, 3.4.
border-image-repeat
’ value, 6.5.
stretch
’, 6.5.
top
’
background-position
’ value, 3.6.