ホームページ > ウェブフロントエンド > CSSチュートリアル > SVG マスクを使用して CSS で画像のクリッピング領域を拡張するにはどうすればよいですか?

SVG マスクを使用して CSS で画像のクリッピング領域を拡張するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-24 07:01:15
オリジナル
266 人が閲覧しました

How Can I Use SVG Masks to Expand the Clipping Area of Images in CSS?

SVG 画像のクリッピング領域の拡張

CSS では、クリップパスを使用して画像の特定の領域を描写できます。ただし、クリップ パスが目的の領域と完全に一致していない場合、画像が切り詰められて表示されることがあります。

この問題に対処するには、クリップ パスではなく SVG をマスクとして使用することを検討してください。このメソッドを使用すると、SVG のサイズと位置を背景画像のように操作できます。

SVG をマスクとして適用するには:

  1. 正しい viewBox を設定します:

    .clipped-img {
      ...
      -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 207 167"><path d="..."></path></svg>') 
                center/contain no-repeat;
           mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 207 167"><path d="..."></path></svg>') 
                center/contain no-repeat;
    }
    ログイン後にコピー

    これにより、SVG のサイズが調整され、画像のサイズと確実に揃うようになります。

  2. 画像のサイズとオブジェクトのフィットを調整します:

    .clipped-img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    ログイン後にコピー

    これらのプロパティにより、画像がクリッピング領域を満たし、正しく拡大縮小されます。

SVG の利点マスク:

  • 動的なサイズ変更と再配置: 画面サイズまたはユーザー操作に基づいて調整できます。
  • 複数の要素をマスク: 単一の SVG マスクを使用して、複数の画像を整形したり、要素。
  • 画質の維持: スケーリングは、クリップパスの場合のようにピクセレーションや歪みを引き起こしません。

例:

を考慮してくださいHTML:

<div class="img-container">
  <img class="clipped-img" src="image.jpg">
</div>
ログイン後にコピー

マスクのサイズと形状を調整するには、マスクの SVG 内の viewBox を変更するだけです。

以上がSVG マスクを使用して CSS で画像のクリッピング領域を拡張するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート