È questo il comportamento previsto?
Sì, da pazzi come sembra, in realtà lo è.Ecco perché:
L'impostazione predefinita overflow
per <div>
elementi (e la maggior parte delle altre cose) è visible
, e il spec dice questo circa overflow: visible
:
visibile
Questo valore indica che il contenuto non è ritagliato, cioè, può essere reso al di fuori della casella di blocco.
A sua volta, §5.3 Corner clipping negli sfondi e modulo frontiere dice:
sfondi di una scatola, ma non il suo border-immagine, vengono ritagliati la curva appropriata (come determinato da 'background-clip'). Anche altri effetti che si agganciano al bordo o al bordo di riempimento (come "overflow" diverso da "visibile") devono essere aggiunti alla curva. Il contenuto degli elementi sostituiti viene sempre ritagliato sulla curva del bordo del contenuto. Inoltre, l'area al di fuori della curva del bordo del bordo non accetta gli eventi del mouse per conto dell'elemento.
La frase che ho sottolineato in particolare afferma che il valore overflow
della scatola deve essere qualcosa di diverso da visible
(che significa auto
, hidden
, scroll
e altri) in modo che gli angoli per fermano i suoi figli.
Se la casella è definita per avere overflow visibile, che come ho detto è l'impostazione predefinita per la maggior parte degli elementi visivi, il contenuto non dovrebbe essere troncato affatto. Ed è per questo che gli angoli quadrati di .buffer
superano gli angoli arrotondati di .progressbar
.
Di conseguenza, il modo più semplice per arrivare a .buffer
clip all'interno .progressbar
's angoli arrotondati è quello di aggiungere uno stile overflow: hidden
-.progressbar
, come mostrato nella this updated fiddle.
Il jsFiddle è morto. – SquareCat
@CummanderCheckov tnx per avermi informato. Lascia che ti rimetta a posto. Sebbene tutte le informazioni * siano * nella mia domanda (solo per questo motivo) l'ho aggiornato. – PeeHaa