CSS画像を非表示にする方法

PHPz
リリース: 2023-04-24 09:53:19
オリジナル
2613 人が閲覧しました

CSS はフロントエンド開発に不可欠な部分であり、そのスタイル プロパティとメソッドの多くにより、より美しいインターフェイスやインタラクティブな効果を開発できます。非常に便利な機能の 1 つは、画像がコンテナを超えた場合に画像を非表示にしたりトリミングしたりできることです。この記事では、CSSを使用して画像を非表示にする方法を詳しく説明します。

CSS で非表示にする以外にも、オーバーフロー、クリップパス、マスクなどの方法がいくつかあります。この記事では、これらの方法について詳しく説明します。

オーバーフローを使用してスコープを超えた画像を非表示にする

オーバーフロー属性は、要素のコンテンツがコンテナーからどのようにオーバーフローするかを制御するために使用されます。デフォルトでは、要素のコンテンツがそのコンテナを超えると、スクロール バーが自動的に表示されます。ただし、オーバーフロー属性を hidden に設定することで、コンテナを超える要素を非表示にすることができます。

たとえば、次のコードは、オーバーフロー属性を使用して画像を超えて非表示にする方法を示しています。

1

2

3

4

5

6

7

8

9

10

11

.container {

  width: 200px;

  height: 200px;

  border: 1px solid #000;

  overflow: hidden;

}

 

img {

  width: 300px;

  height: 300px;

}

ログイン後にコピー

この例では、コンテナの幅と高さは両方とも 200 ピクセルですが、幅は 200 ピクセルです。画像の高さと高さはそれぞれ 300px です。したがって、この画像はコンテナの外に出ます。ただし、コンテナにoverflow:hiddenを設定しているため、画像の余分な部分は非表示となり、200px×200pxの部分のみが表示されます。

オーバーフローを使用して画像を非表示にする例

クリップパスを使用して制限を超えた画像を非表示にします

クリップパス属性は CSS3 の比較的新しい属性であり、要素をクリップするために使用されます。クリップパスプロパティを設定すると、画像を任意の形状に切り抜くことができ、コンテナの範囲を超える画像を非表示にするために使用することもできます。

同様に上記の例を例に挙げると、クリップパス属性を使用して、非表示を超える効果を実現できます。

1

2

3

4

5

6

7

8

9

10

11

12

.container {

  width: 200px;

  height: 200px;

  border: 1px solid #000;

  clip-path: inset(0 0 0 0);

}

 

img {

  width: 300px;

  height: 300px;

  clip-path: inset(50px 50px 50px 50px);

}

ログイン後にコピー

この例では、コンテナの幅と高さも同様です。 200ピクセル×200ピクセル。ただし、clip-path の inset 属性を設定し、その値を 0 0 0 0 に設定することで、要素を 4 方向すべてからコンテナを超えるようにすることができ、画像の Clip-path 属性を設定し、その値を に設定することで、 50px 50px 50px 50px に設定すると、画像を 4 方向すべてから内側にインデントして、非表示を超えた効果を実現できます。

画像拡張にクリップパスを使用非表示の例></div></p>
<p>clip-path 属性を使用して非表示を超える場合は、ブラウザの互換性の問題に注意する必要があります。さらに、このアトリビュートの値は比較的柔軟で、さまざまな形状のトリミング効果を実現できます。 </p>
<h2>マスクを使用して範囲外の画像を非表示にする</h2>
<p>mask は CSS の比較的新しい属性で、再利用可能なマスクを作成するために使用されます。クリップパス属性と同様に、マスク属性を使用してコンテナの外にあるパーツを非表示にすることもできます。ただし、クリップパス プロパティとは異なり、マスク プロパティはさまざまな複雑なマスク形状を作成でき、透明度とグラデーション効果もサポートします。 </p>
<p>次は、マスク属性を使用して画像を非表示にする例です: </p>
<div class=

1

2

3

4

5

6

7

8

9

10

11

.container {

  width: 200px;

  height: 200px;

  border: 1px solid #000;

  -webkit-mask-image: linear-gradient(to bottom, black, black 50%, transparent 100%);

}

 

img {

  width: 300px;

  height: 300px;

}

ログイン後にコピー

この例では、-webkit-mask-image 属性を使用し、その値を線形グラデーションに設定します。 。グラデーションの役割は、画像を中心から周囲に向かって徐々に透明にしていき、コンテナの外側の部分を隠すことです。

マスクを使用して画像を非表示にする例

マスク属性にはブラウザの互換性の問題もあるので、使用する場合はその構文ルールに習熟する必要があることに注意してください。そうしないと、予期しない問題が発生する可能性があります。 。 効果。

概要

この記事の導入部を通じて、CSS を使用してコンテナの範囲を超える画像を非表示またはトリミングする方法を学びました。その中には、非表示を超える方法として、オーバーフロー、クリップパス、マスクなどがあります。各方法には利点と制限があり、開発者はニーズに基づいて適切な方法を選択できます。

もちろん、上記の紹介は CSS 画像に隠されている内容を垣間見ただけであり、実際には、JS やその他の属性を使用して、よりリッチで多様な処理方法を実現することもできます。フロントエンド開発をより便利かつ効率的にするには、これらのテクノロジーを学び、探求し続け、スキルを継続的に向上させる必要があります。

以上がCSS画像を非表示にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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