ホームページ > ウェブフロントエンド > CSSチュートリアル > Chrome と Opera でオーバーフローするコンテンツを角丸でマスクする方法

Chrome と Opera でオーバーフローするコンテンツを角丸でマスクする方法

DDD
リリース: 2024-12-30 11:18:16
オリジナル
227 人が閲覧しました

How to Mask Overflowing Content with Rounded Corners in Chrome and Opera?

Chrome と Opera で角の丸いオーバーフローを非表示にする

質問:

どうすればできますかChrome での適切なオーバーフロー動作を維持しながら、子のコンテンツをうまくマスクする角の丸い親 div を作成します。 Opera?

Webkit と Overflow: Hidden の非互換性

Firefox や IE9 などのブラウザでは、角の丸い親 div に「overflow: hidden」を適用すると、効果的にすべての要素が非表示になります。溢れ出るコンテンツ。ただし、WebKit ベースのブラウザ (Chrome、Safari) および Opera では、親 div が相対的または絶対的に配置されている場合、このアプローチは失敗します。

解決策: WebKit Mask

別の解決策には、親 div で Webkit マスクを使用することが含まれます。この方法では、丸い角の外側の領域がマスクされ、あふれたコンテンツが効果的に隠されます。

実装:

このソリューションを実装するには、次の CSS を親 div に追加します。

-webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC);
ログイン後にコピー

この CSS プロパティは、直接含めることができる単一ピクセルの透明な PNG 画像を参照します。追加の HTTP リクエストを避けるために CSS に追加します。

例:

次のコードを考えてみましょう:

#wrapper {
  width: 300px;
  height: 300px;
  border-radius: 100px;
  overflow: hidden;
  position: absolute; /* original CSS that broke overflow in webkit browsers */
  -webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC); /* webkit mask fix */
}

#box {
  width: 300px;
  height: 300px;
  background-color: #cde;
}
ログイン後にコピー
<div>
ログイン後にコピー

これを組み込むことで、修正により、丸い角が Chrome と Opera のあふれたコンテンツを効果的に隠し、視覚的にクリーンで応答性の高いコンテンツを実現します。デザイン。

以上がChrome と Opera でオーバーフローするコンテンツを角丸でマスクする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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