⊗mkSpFxFT 99 of 128 menu

Mosaico con flexboxes en CSS

Ahora aprendamos a crear un mosaico con flexboxes. Primero, organicemos los bloques flex en varias filas, con tres bloques por fila.

Para ello, establezcamos el ancho del contenedor flex en 300px y flex-wrap en el valor wrap, y un ancho de 100px a los elementos hijos:

<div class="parent"> <div class="child">1</div> <div class="child">2</div> <div class="child">3</div> <div class="child">4</div> <div class="child">5</div> <div class="child">6</div> <div class="child">7</div> <div class="child">8</div> <div class="child">9</div> </div> .parent { display: flex; flex-wrap: wrap; width: 300px; border: 1px solid red; } .child { box-sizing: border-box; width: 100px; height: 100px; border: 1px solid green; }

:

Ahora agreguemos espacio horizontal entre nuestros bloques. Para ello, aumentemos el ancho del contenedor para dar espacio adicional para los márgenes.

Como tenemos tres bloques por fila, resulta que hay dos espacios entre ellos. Supongamos que queremos que cada espacio tenga un ancho de 10px. Resulta que el ancho del contenedor necesita aumentarse en 20px, es decir, hacerlo no de 300px, sino de 320px.

Ahora asignemos al contenedor de los bloques justify-content con el valor space-between y obtendremos la distancia deseada entre los bloques:

<div class="parent"> <div class="child">1</div> <div class="child">2</div> <div class="child">3</div> <div class="child">4</div> <div class="child">5</div> <div class="child">6</div> <div class="child">7</div> <div class="child">8</div> <div class="child">9</div> </div> .parent { display: flex; flex-wrap: wrap; justify-content: space-between; width: 320px; border: 1px solid red; } .child { box-sizing: border-box; width: 100px; height: 100px; border: 1px solid green; }

:

Ahora agreguemos la misma distancia entre los bloques también verticalmente. Para ello, podemos establecer la propiedad align-content en el valor space-between.

Sin embargo, para esto es necesario definir una altura al contenedor, de lo contrario align-content no funcionará. Establezcamos la altura en 320px. En este caso, cabrán exactamente tres filas de bloques de 100px de alto más dos espacios entre filas de 10px.

Ejecutemos:

<div class="parent"> <div class="child">1</div> <div class="child">2</div> <div class="child">3</div> <div class="child">4</div> <div class="child">5</div> <div class="child">6</div> <div class="child">7</div> <div class="child">8</div> <div class="child">9</div> </div> .parent { display: flex; flex-direction: row; justify-content: space-between; align-content: space-between; flex-wrap: wrap; width: 320px; height: 320px; border: 1px solid red; } .child { box-sizing: border-box; width: 100px; height: 100px; border: 1px solid green; }

:

Todo funciona maravillosamente, pero hay algunos problemas que consideraremos en la siguiente lección.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar