es éste el comportamiento esperado?
Sí, por loco que parezca, en realidad es así.He aquí por qué:
El valor predeterminado overflow
para <div>
elementos (y la mayoría de otras cosas) es visible
y el spec dice esto acerca de overflow: visible
:
visibles
Este valor indica que el contenido no se recorta, es decir, puede representarse fuera del cuadro de bloque.
A su vez, §5.3 Corner clipping en los Fondos y módulo de Fronteras dice:
fondos de una caja, pero no su frontera imagen, se recortan a la curva apropiada (según lo determinado por 'background-clip de') Otros efectos que se graban en el borde o borde de relleno (como 'desbordamiento' que no sea 'visible') también deben acoplarse a la curva. El contenido de los elementos reemplazados siempre se recorta a la curva de borde de contenido. Además, el área fuera de la curva del límite no acepta eventos de mouse en nombre del elemento.
La frase que he subrayado específicamente menciona que el valor overflow
de la caja debe ser algo más que visible
(que significa auto
, hidden
, scroll
y otros) a fin de que las esquinas de clip de sus hijos.
Si el recuadro está definido para tener un desbordamiento visible, que como dije es el predeterminado para la mayoría de los elementos visuales, entonces no se supone que el contenido deba recortarse. Y es por eso que las esquinas cuadradas de .buffer
pasan por las esquinas redondeadas de .progressbar
.
En consecuencia, la forma más sencilla de conseguir .buffer
para recortar dentro .progressbar
's esquinas redondeadas es agregar un estilo a overflow: hidden
.progressbar
, como se muestra en this updated fiddle.
El jsFiddle está muerto. – SquareCat
@CummanderCheckov tnx por notificarme. Déjame configurarlo de nuevo. Aunque toda la información * es * en mi pregunta (solo por este motivo) la he actualizado. – PeeHaa