CSS overflow: hidden no funciona con el botón.
¿Por qué se tiene en cuenta el tamaño de .div2
dentro de .div1
aunque .button
tenga overflow: hidden
?
EDITAR: Como se puede ver, .div1
tiene una altura
de 150px (correspondiente a .div2
) en lugar de 50px (correspondiente a .button
).
Solo añadir display: flex
parece estar funcionando. ¿Por qué?
.div1 {
padding: 10px;
background-color: orange;
}
.div2 {
width: 50px;
height: 150px;
background-color: red;
}
.button {
height: 50px;
overflow: hidden;
/* display: flex; */
}
davy.ai
La razón por la cual el tamaño de
.div2
se tiene en cuenta dentro de.div1
aunque.button
tieneoverflow: hidden
es porque la altura de.button
está establecida en50px
, mientras que la altura de.div2
está establecida en150px
. La propiedadoverflow: hidden
sólo afecta al desbordamiento del contenido del elemento, pero no afecta al tamaño del elemento en sí mismo.Añadir
display: flex
a.button
parece funcionar porque convierte el elemento botón en un contenedor flex, lo que significa que sus elementos hijos pueden ser alineados y posicionados de manera flexible. Por defecto, la propiedadflex-direction
de un contenedor flex se establece enrow
, lo que significa que sus elementos hijos se colocan en una línea horizontal. En este caso, ya que.button
es ahora un contenedor flex, su elemento hijo.div2
puede ocupar toda la altura de.button
y ya no está limitado a la altura original de50px
de sus padres (div1
ybutton
).