Uso las cajas flexibles en Google Chrome (solo este navegador debe ser compatible) para crear una disposición dinámica. Tengo n elementos infantiles en un elemento div que debe compartir todo el espacio con la misma proporción. Esto está funcionando sin problemas debido a los nuevos flex-boxes introducidos. Pero también tuve que establecer la altura de cada div interno en 0. Si deseo estirar un elemento dentro de este div al 100% de altura, usa el valor dado de 0 en lugar de cualquier valor calculado. Como he elegido flex-boxes para evitar el uso de Javascript, preferiría seguir así. ¿Hay alguna otra manera de hacer que la altura de la imagen llene el div?Uso de valores porcentuales para completar los elementos de la caja flexible
Y aquí está el código (sólo probado en Google Chrome):
html
<div class="flexbox">
<div><img src="chrome-logo.png" /></div>
<div><img src="chrome-logo.png" /></div>
<div><img src="chrome-logo.png" /></div>
<div><img src="chrome-logo.png" /></div>
</div>
css
.flexbox {
display:-webkit-box;
-webkit-box-orient:vertical;
height:300px;
width:200px;
}
.flexbox > div {
-webkit-box-flex:1;
height:0;
border:solid 1px #000000;
}
.flexbox > div > img {
height:100%;
}
The code to watch in the browser
¿Por qué tiene que establecer la altura en 0? Si no va a establecer explícitamente la altura, ¿qué espera que el '100%' sea el cien por ciento de? – robertc
Lo hice para dividir todo el espacio disponible en partes del mismo tamaño. De lo contrario, solo se asigna el espacio restante (sin el contenido). Es el comportamiento como usar la función flex descrita en ese correo: [http://lists.w3.org/Archives/Public/www-style/2011Nov/0770.html](http://lists.w3.org/ Archives/Public/www-style/2011Nov/0770.html) –