ホームページ > ウェブフロントエンド > CSSチュートリアル > WebKit と Opera で「overflow: hidden」の丸い角が失敗するのはなぜですか? どうすれば修正できますか?

WebKit と Opera で「overflow: hidden」の丸い角が失敗するのはなぜですか? どうすれば修正できますか?

Patricia Arquette
リリース: 2024-12-19 04:54:09
オリジナル
212 人が閲覧しました

Why Do Rounded Corners with `overflow: hidden` Fail in WebKit and Opera, and How Can I Fix It?

WebKit および Opera の CSS3 角丸によるオーバーフロー非表示の問題への対処

角丸の下のコンテンツをマスクするには、多くの場合、overflow: hidden プロパティを使用します。ただし、この手法は、親要素が相対的または絶対的に配置されている場合、WebKit ベースのブラウザー (Chrome を含む) および Opera で誤動作する可能性があります。

問題:

この問題については、次のコードを検討してください。

#wrapper {
  width: 300px;
  height: 300px;
  border-radius: 100px;
  overflow: hidden;
  position: absolute;
}

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

この場合、#wrapper div は絶対位置に配置され、角が丸くなっています。ただし、#box div のコンテンツは、WebKit ベースのブラウザーや Opera では丸い角の外側にはみ出します。

解決策: WebKit CSS マスク

この問題に対処する代替ソリューション#wrapper 要素に WebKit CSS マスクを使用することです。これには、単一ピクセルの PNG 画像をマスクとして使用することが含まれます。

#wrapper {
  width: 300px;
  height: 300px;
  border-radius: 100px;
  overflow: hidden;
  position: absolute;
  /* This fixes the overflow in Chrome/Opera */
  -webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC);
}
ログイン後にコピー

この手法は、WebKit ベースのブラウザーと Opera でオーバーフローを隠すことに成功し、丸い角によって子要素のコンテンツを効果的にマスクできるようになります。

以上がWebKit と Opera で「overflow: hidden」の丸い角が失敗するのはなぜですか? どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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