項 目 | 説 明 |
---|---|
記述形式 | セレクタ {border-image-slice: 値 } |
値 の形式 |
|
初 期 値 | 100% |
対応ブラウザー | C3+ / e?+ / N?+ / Fx?+ / Op?+ / Ch?+ / Sa?+ |
適用可能な要素 | すべての要素 (border-collapse プロパティの値に collapse が指定された table内要素を除く) |
継 承 | しない |
border-image-sliceプロパティ は,画像を分割して境界の各位置への割り当て を指定します。
指定できる値は,つぎのとおりです。
値 | 説 明 |
---|---|
数値(長さ) | 画像の分割位置を左右上下端からのオフセットで,ラスタ画像(ビットマップ)の場合はピクセル(px)単位,ベクターグラフィックスの場合は ベクタ座標 の数値を指定します。 (単位はつけません) |
数値(%) | 画像の分割位置を左右上下端からのオフセットで,幅(左右)や高さ(上下)を 1 とした百分率(%)を使って指定します。 |
fill | 画像の分割された中央(左右,上下ともの中央)部分を表示します。 |
上の値 ~ 左の値 は半角ブランクを挟んでこのうち4つまで指定できます。
境界に画像を表示するためには,
この border-image-slice では,画像の上端,右端,下端,左端からのオフセットを指定して, 画像を水平,垂直,それぞれ2本ずつの直線で9つの部分(左上,上中央,右上,右中央,右下,下中央,左下,左中央,中央)に分割します。 境界でのこれら9つの部分の表示の位置や方法は,次の表に示すとおりです。
位 置 | 繰り返し | 配置の基準位置 |
---|---|---|
左 上 | 対象外 | 境界画像領域 の左上端 |
右 上 | 境界画像領域 の右上端 | |
右 下 | 境界画像領域 の右下端 | |
左 下 | 境界画像領域 の左下端 | |
上中央 | 対象 | 境界画像領域 の上端 |
右中央 | 境界画像領域 の右端 | |
下中央 | 境界画像領域 の下端 | |
左中央 | 境界画像領域 の左端 | |
中 央 | 対象外 | 中央 (fill を指定しない限り非表示) |
左の値 と 右の値 の和が画像の幅(100%) 以上になる場合は,上中央 と下中央 には画像が割り当てられません。 同様に, 上の値 と 下の値 の和が画像の高さ(100%) 以上になる場合は,左中央 と右中央 には画像が割り当てられません。
border-image-outset を指定ない場合には, 上の表の配置基準の 境界画像領域(border image area)は 境界ボックス と一致します。 border-image-outset の指定によって,その外側まで含めたより広い領域(親要素や隣接要素の領域も含む) とできて, その範囲まで画像による境界を表示することができます。
HTMLソース | |
---|---|
CSS <head> ~ </head> |
<style type="text/css" media="screen, handheld, print, tv" > <!-- div.sample1 { width: 320px; height: 140px; border: solid 31px transparent; border-image-source: url(star_border.png); border-image-slice: 31; border-image-repeat: round; -moz-border-image-source: url(star_border.png); -moz-border-image-slice: 31; -moz-border-image-repeat: round; -webkit-border-image-source: url(star_border.png); -webkit-border-image-slice: 31; -webkit-border-image-repeat: round; -o-border-image: url(star_border.png) 31 round; } --> </style> |
HTML <body> ~ </body> |
<div class="sample1">
これが class="sample1" の部分です。
</div> |
ブラウザー 表示例 ( IE10 以前では正常に表示できません) |
---|
これが class="sample1" の部分です。
|
ただし,Opera では正常に表示できないため,同等の border-image による一括指定 に置き換えてあります。
なお,この例で境界画像として用いたのは,
上の 注意1 に述べたように, 左右,上下ともオフセット値の和が画像の幅や高さを超えると,それぞれ, 上中央と下中央,左中央と右中央には画像が表示されなくなります。
たとえば,
HTMLソース | |
---|---|
CSS <head> ~ </head> |
<style type="text/css" media="screen, handheld, print, tv" > <!-- div.sample2 { width: 320px; height: 140px; border: solid 52px transparent; border-image-source: url(bubble.png); border-image-slice: 100%; -moz-border-image-source: url(bubble.png); -moz-border-image-slice: 100%; -webkit-border-image-source: url(bubble.png); -webkit-border-image-slice: 100%; -o-border-image: url(bubble.png) 100%; } --> </style> |
HTML <body> ~ </body> |
<div class="sample2">
これが class="sample2" の部分です。
</div> |
ブラウザー 表示例( IE では正常に表示できません) |
---|
これが class="sample2" の部分です。
|
このように,左上,右上,右下,左下には元の画像がそのまま表示されますが,それ以外の境界部分には何も表示されません。
ただし,Opera では正常に表示できないため,同等の border-image による一括指定 に置き換えてあります。