背景画像に関するいくつかの新しい属性が CSS3 に登場しました:background-origin、background-clip、background-position など。以前から大まかには理解していましたが、background-origin と background-origin の違いはクリップはまだクリアされていません。グーグルで記事を検索してとても良い記事を見つけたので、翻訳してみましょう。
元のリンク: CSS3 の新しい背景位置
CSS3 の新機能、Background-Origin と Background-Clip をご紹介します
ps: 元のオンライン コード デモは codepen.io から runjs.cn に移動されました
CSS を使用して要素の背景画像を設定する人は皆、background-position 属性を使用して、要素の左上隅 (top、left) を基準にしてその位置の値を設定していました。
div {background-position: 20px 40px; /* 距左边20px & 距顶部40px */ }
問題は、右下隅 (下、右) など、他の点に対する正確な位置を決定することができないことです。左上隅からのみ開始できます。
背景位置: 右下; または 背景位置: 70% /* 左から */ 80%/* 上から */ と書くことはできますが、右端から 20 ピクセル、下から 20 ピクセルを書き込むことはできません。
背景位置: 右 20px 下 40px
ライブサンプル
ライブサンプル
デフォルトの背景原点位置は、背景位置値を左 0、上 0 に設定することと一致します。背景画像がパディングで始まっていることがわかります。
ライブサンプル
- 要素のボーダー (0, 0) の左上隅を基準としたボーダーボックス
- padding-box(デフォルト) 要素のパディングの左上隅を基準にします
- content-box 要素のコンテンツの左上隅を基準にします。
ライブサンプル
この問題を解決するには、background-clip を使用します。背景クリップを使用すると、背景画像がトリミングされる位置を決定できます。値は背景原点の値と同じですが、デフォルトはボーダーボックスであり、トリミングはありません。
ライブサンプル
実際の例