i am using left floating DIVs to simulate a two column layout (each div contains textfield to edit different data, like name, hobbies,...). So it should look like this
Here is a pure CSS solution. I took this example
Check it out if you want to learn more. He also use jQuery Masonry as fallback.
CSS:
.masonry { /* Masonry container */
-moz-column-count: 4;
-webkit-column-count: 4;
column-count: 4;
-moz-column-gap: 1em;
-webkit-column-gap: 1em;
column-gap: 1em;
}
.item { /* Masonry bricks or child elements */
background-color: #eee;
display: inline-block;
margin: 0 0 1em;
width: 100%;
}
HTML:
<div class="masonry">
<div class="item">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</div>
<div class="item">Neque, vitae, fugiat, libero corrupti officiis sint facilis tempora quidem repudiandae praesentium odit similique adipisci aut.</div>
<div class="item">Incidunt sit unde minima in nostrum? Incidunt sit unde minima in nostrum?</div>
<div class="item">Ducimus, voluptates, modi, delectus animi maiores consequuntur repellat quisquam fugiat eum possimus enim culpa totam praesentium magni quae!</div>
<div class="item">Lorem ipsum dolor sit amet, dicta dolore adipisci hic ipsam velit deleniti possimus cumque accusantium rerum quibusdam.</div>
<div class="item">Neque, vitae, fugiat, libero corrupti officiis sint facilis tempora quidem repudiandae praesentium odit similique adipisci aut.</div>
<div class="item">Incidunt sit unde minima in nostrum?</div>
<div class="item">Incidunt sit unde minima in unde minima in unde minima in nostrum?</div>
<div class="item">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quae, praesentium consequatur ducimus commodi quam ex illo omnis dicta reiciendis vel nesciunt deserunt aut sequi nam mollitia perferendis ipsam possimus temporibus!</div>
<div class="item">Ab, adipisci, temporibus eaque quis harum perferendis incidunt cupiditate doloribus dolor numquam voluptates ipsum dolore aspernatur et voluptate ipsam beatae animi culpa.</div>
</div>
Hope this will help you. Thanks.
The jQuery Masonry plugin will do exactly what you want.
If you wanted to stick with pure CSS, you could do something like the following, but I don't think it's what you're going for:
<div class="col">
<div class="one"></div>
<div class="three"></div>
<div class="five"></div>
<div class="seven"></div>
</div>
<div class="col">
<div class="two"></div>
<div class="four"></div>
<div class="six"></div>
<div class="eight">who do we appreciate</div>
</div>
And the CSS:
.col {
float: left;
width: 200px;
}
if you can use php, here is little trick ;)
<?php
$dir = "your/images/dir/";
$img = scandir($dir); // read images to array, or make script which read it from db
unset($img[0], $img[1]); // remove unnecessary ;)
$columns = 5; // define how many columns you want to use
$margin = 5; // define page margin and margin between images in %
// create columns..
for ($c = 0; $c < $columns; $c ++)
{
$main_counter = 0;
foreach ($img as $file)
{
if ($main_counter % $columns == $c)
{
$column[$c][] = $file;
}
$main_counter ++;
}
}
?>
<! -- show images -->
<div style="margin: <?php echo $margin; ?>%;">
<?php
foreach ($column as $key => $data)
{
?>
<div style="float: left; width: <?php echo (100 / $columns); ?>%;">
<?php
foreach ($data as $image)
{
?>
<div style="margin-bottom: <?php echo $margin; ?>%; margin-right: <?php echo $margin; ?>%; background-image: url(<?php echo $dir . $image; ?>); background-size: cover;"><img src="<?php echo $dir . $image; ?>" style="visibility: hidden; width: 100%;"></div>
<?php
}
?>
</div>
<?php
}
?>
</div>
maybe help you ;)
working demo on http://www.showcase.glirp.sk/