2012-08-24 12 views
12

Como puede ver en la imagen, cada caja tiene una altura diferente y hay algunas cajas con doble ancho.Diseño de mampostería SÓLO con CSS

Layout

¿Es posible crear un diseño de estilo de mampostería solamente con CSS?

+1

hey buddy Recuerdo este sitio No sé si te gustaría comprobarlo Realmente no recuerdo si funcionó con js o pure css, pero con certeza no está usando mampostería http: //www.leica- oskar-barnack-award.com/ Espero que ayude – Paradise

+3

¿Dónde ha intentado su código? ¿Dónde está tu sandbox o jsfiddle en línea? Si hubiera buscado en SO, habría descubierto que no es posible replicar Masonry con CSS y hacer que funcione entre navegadores y dispositivos cruzados. – Systembolaget

+2

Tómelo con calma y respire lentamente ...;) – Bernat

Respuesta

19

Con el apoyo CSS3 usted puede hacer esto:

http://jsfiddle.net/huAxS/2/

.container { 
    -moz-column-count: 2; 
    -moz-column-gap: 10px; 
    -webkit-column-count: 2; 
    -webkit-column-gap: 10px; 
    column-count: 2; 
    column-gap: 10px; 
    width: 360px; 
} 

.container div { 
    display: inline-block; 
    width: 100%; 
    background-color: red; 
}​ 

Sin apoyo CSS3, tiene que recurrir a js por desgracia.

+0

Como dije, ¡hay algunas cajas con doble ancho! (2 columnas, en este caso). Y sí, puedo usar CSS3! – Bernat

+1

Lo he explorado durante mucho tiempo, simplemente no es posible con CSS solo. – alt

+22

El problema con esta solución es que los elementos se colocan de arriba a abajo, de izquierda a derecha, mientras que lo que uno normalmente espera (supuestos culturales justificados) es de izquierda a derecha, de arriba a abajo. Este es el punto destacado de las recomendaciones habituales basadas en columnas CSS3. –

1

Estoy trabajando en un sitio en este momento con el mismo tipo de diseño, dos columnas con el cuadro doble ancho ocasional. Lo que hago es separar el ancho doble del resto del contenido. Por ejemplo:

<div class="two-columns"> 
    <div></div> 
    <div></div> 
    <div></div> 
    <div></div> 
</div> 
<div class="double-wide"> 
</div> 
<div class="two-columns"> 
    <div></div> 
    <div></div> 
    <div></div> 
    <div></div> 
</div> 

continuación, puede aplicar la solución a la columna CSS3 sólo la clase two-columns. Si necesita admitir IE9, lamentablemente deberá agregar un JavaScript fallback.

Cuestiones relacionadas