Maison >interface Web >tutoriel CSS >Pourquoi les coins arrondis avec « overflow : caché » échouent-ils dans WebKit et Opera, et comment puis-je y remédier ?

Pourquoi les coins arrondis avec « overflow : caché » échouent-ils dans WebKit et Opera, et comment puis-je y remédier ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-19 04:54:09223parcourir

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

Résoudre les problèmes cachés de débordement avec les coins arrondis CSS3 dans WebKit et Opera

Le masquage du contenu sous les coins arrondis implique souvent l'utilisation de la propriété overflow: Hidden. Cependant, cette technique peut mal fonctionner dans les navigateurs basés sur WebKit (y compris Chrome) et Opera lorsque l'élément parent est positionné de manière relative ou absolue.

Problème :

Pour illustrer le problème, considérez le code suivant :

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

#box {
  width: 300px;
  height: 300px;
  background-color: #cde;
}

Dans ce cas, le div #wrapper est positionné de manière absolue et a des coins arrondis. Cependant, le contenu de la #box div déborde des coins arrondis dans les navigateurs basés sur WebKit et Opera.

Solution : masque CSS WebKit

Une solution alternative pour résoudre ce problème consiste à utiliser un masque CSS WebKit sur l'élément #wrapper. Cela implique d'utiliser une image PNG d'un seul pixel comme masque :

#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);
}

Cette technique masque avec succès le débordement dans les navigateurs basés sur WebKit et Opera, permettant aux coins arrondis de masquer efficacement le contenu de l'élément enfant.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn