Go to information

clip

clipプロパティは絶対配置が指定された要素の表示領域の中で、特定の領域だけを切り抜いて表示することができます。CSS2 仕様では、ブロック要素または置換要素の中で overflowプロパティに "visible" 以外の値を持つ要素が適用対象でしたが、現状の UA の対応状況にあわせて、CSS2.1 より仕様が大きく改訂され、CSS2.1 仕様では positionプロパティに "absolute" の値をもつ要素に限られています。

初期値
auto
適用対象
絶対配置(position : absolute ;)の要素
継承
しない
メディア
visual

CSS2.1 で切り抜ける形状は矩形のみです。切り抜ける形状は、今後、増えると思われます。

rect
top(上), right(右), bottom(下), left(左)の時計回りの順に矩形の切り抜き領域を数値指定
auto
もとの内容と同じ大きさ・形で表示(切り抜かれない)

キーワード "auto" の切り抜き領域の辺は、要素が生成するボックスの辺と同じになるので top(上), right(右), bottom(下), left(左)に対応する部分の値に「0」を指定しているのと同じです。

CSS2 仕様と CSS2.1 仕様の変更点

適用対象の変更だけでなく、「top」「right」「bottom」「left」の順で指定する切り抜く領域においても、CSS2 では半角スペース、またはカンマ(,)のどちらかで区切って指定することになっていましたが、CSS2.1 ではカンマ(,)で区切らなければなりません。ただし、現状では CSS2 仕様に準拠している UA が多いことと、Windows版Internet Explorer 6 においては「top」「right」「bottom」「left」の部分に対応する値をカンマ(,)区切りにすると、表示に反映されないので、CSS2 仕様の半角スペース区切りによる指定を行う方が無難です。

また、「top」「right」「bottom」「left」に対応する部分の数値指定においても、CSS2 では表示領域の各辺の位置で、コンテンツ内容の左上を基点とした距離となっていましたが、CSS2.1 では次の図のように「top」「right」「bottom」「left」の表す領域が変更されています。

CSS2
セレクタ { clip : 形状 (top right bottom left ) ;}
CSS2 における上、右、下、左に対応する値が表す領域
CSS2.1
セレクタ { clip : 形状 (top, right, bottom, left ) ;}
CSS2.1 より変更された上、右、下、左に対応する値が表す領域

clipプロパティの実装状況

Windows版Internet Explorer
○(Windows版Internet Explorer 6 は数値のコンマ区切りに対応していない)
Firefox
Opera
Safari
Macintosh版Internet Explorer 5

サンプル

記述例
img.clip {
position : absolute ;
clip : rect(75px 200px 150px 40px) ;
}
a:hover img.clip {
clip : rect(0 320px 240px 0) ;
}
......
<p>これは何の写真かな?<br />
<a href="image.jpg"><img src="image.jpg" class="clip"
width="320" heihgt="240" alt="パイナップル" /></a></p>
<p style="margin-top:250px;">
カーソルをあわせると、正解の写真がでてくるよ!</p>
表示例

clipプロパティは、:hover疑似クラスや JavaScript と組み合わせて動的な表現を演出する際に良く利用されています。

現在位置
  1. W3G
  2. CSS
  3. 表示と配置
  4. clip
ナビゲーション
ステータス情報
作者
上田 遼
公開
2007-02-02T16:08:31+09:00
更新
2008-12-29T04:30:37+09:00
URI
http://w3g.jp/css/display_position/clip
検索