Necesito esquinas redondeadas en un div padre para enmascarar el contenido de su niño. overflow: hidden
funciona en situaciones simples, pero se rompe en los navegadores basados en webkit y Opera cuando el padre está posicionado de forma relativa o absoluta.
Esto funciona en Firefox e IE9:
CSS
#wrapper {
width: 300px;
height: 300px;
border-radius: 100px;
overflow: hidden;
position: absolute;
}
#box {
width: 300px;
height: 300px;
background-color: #cde;
}
HTML
<div id="wrapper">
<div id="box"></div>
</div>
¡Gracias por la ayuda!
ACTUALIZACIÓN: El error que causa este problema se ha solucionado desde Chrome. Sin embargo, no he vuelto a probar Opera o Safari.
fuente
Agregue un índice z a su elemento de radio de borde y enmascarará las cosas dentro de él.
fuente
-webkit-mask-image: -webkit-radial-gradient(circle, white, black);
fue una solución efectiva, pero, afortunadamente, el error se solucionó en la actualización más reciente que recibí en Chrome.Sin importarles a todos, logré resolver el problema agregando un div adicional entre el contenedor y la caja.
CSS
HTML
¡Gracias a todos los que ayudaron!
→ http://jsfiddle.net/5fwjp/
fuente
opacidad: 0.99; en el contenedor resuelve el error del webkit
fuente
transform: translateY(0);
es una alternativa que logra el mismo resultado sin interferir con la representación visual del objeto (a menos que esté utilizando la perspectiva).Parece que este funciona:
http://jsfiddle.net/qWdf6/82/
fuente
transform: translateZ(0)
es suficiente para mitranslateZ
) habilitará implícitamente la aceleración de hardware para sus elementos, lo que abre una nueva lata de gusanos en algunos casos, lamentablemente.transform: translateZ(0)
También funcionó para mí. En mi caso, no es una mala idea que este artículo sea acelerado por hardware.Compatible con el último Chrome, Opera y Safari, puedes hacer esto:
¡Definitivamente deberías consultar la herramienta http://bennettfeely.com/clippy/ !
fuente
No es una respuesta, pero este es un error archivado bajo la fuente Chromium: http://code.google.com/p/chromium/issues/detail?id=62363
Desafortunadamente, no parece que haya alguien trabajando en ello. :(
fuente
cambie la opacidad del elemento primario con el borde y esto reorganizará los elementos apilados. Esto funcionó milagrosamente para mí después de horas de investigación e intentos fallidos. Fue tan simple como agregar una opacidad de 0.99 para reorganizar este proceso de pintura de los navegadores. Echa un vistazo a http://philipwalton.com/articles/what-no-one-told-you-about-z-index/
fuente
En cuanto a mí, ninguna de las soluciones funcionó bien, solo usando:
en el elemento contenedor hizo el trabajo.
Aquí el ejemplo: http://jsfiddle.net/gpawlik/qWdf6/74/
fuente
basado en la excelente respuesta de graycrow ...
Aquí hay un ejemplo más real del mundo que tiene dos divs ciculares con algún contenido de relleno. Reemplacé el fondo png codificado con solo un valor hexadecimal, es decir
se reemplaza con
Ver este JSFiddle ... http://jsfiddle.net/hqLkA/
fuente
Aquí mira cómo lo hice; Jsfiddle
Con el Código que puse, logré que funcionara en Webkit (Chrome / Safari) y Firefox.
No sé si funciona con la última versión de Opera.Sí, funciona con la última versión de Opera.fuente
border-radius
envoltorio en esa situación, obtienes el mismo resultado con solo encenderlo#box
. Además, si el#box
radio del borde es solo para arreglar WebKit, podría incluir la-webkit-
propiedad allí.Intenté cada respuesta pero sin éxito. Después de algunas horas de investigación, encontré una solución para este problema. El uso de estas propiedades en su clase no permitirá que los elementos div desborden el contenedor.
fuente
Si está buscando crear una máscara para una imagen y colocar la imagen dentro del contenedor, no establezca el atributo 'position: absolute'. Todo lo que tiene que hacer es cambiar el margen izquierdo y el margen derecho. Chrome / Opera se adherirá al desbordamiento: reglas ocultas y de radio de borde.
fuente