JSFiddle - React, Tailwind, and code Playground
by apoucoz
HTML
<!-- Content -->
<section id="wrapper">
<div id="container">
<div class="grid">
<div class="imgholder">
<img src="http://www.inwebson.com/demo/blocksit-js/demo2/images/img27.jpg" />
</div> <strong>Sunset Lake</strong>
<p>A peaceful sunset view...</p>
<div class="meta">by j osborn</div>
</div>
<div class="grid">
<div class="imgholder">
<img src="http://www.inwebson.com/demo/blocksit-js/demo2/images/img26.jpg" />
</div> <strong>Bridge to Heaven</strong>
<p>Where is the bridge lead to?</p>
<div class="meta">by SigitEko</div>
</div>
<div class="grid">
<div class="imgholder">
<img src="http://www.inwebson.com/demo/blocksit-js/demo2/images/img15.jpg" />
</div> <strong>Autumn</strong>
<p>The fall of the tree...</p>
<div class="meta">by Lars van de Goor</div>
</div>
<div class="grid">
<div class="imgholder">
<img src="http://www.inwebson.com/demo/blocksit-js/demo2/images/img23.jpg" />
</div> <strong>Winter Whisper</strong>
<p>Winter feel...</p>
<div class="meta">by Andrea Andrade</div>
</div>
<div class="grid">
<div class="imgholder">
<img src="http://www.inwebson.com/demo/blocksit-js/demo2/images/img17.jpg" />
</div> <strong>Light</strong>
<p>The only shinning light...</p>
<div class="meta">by Lars van de Goor</div>
</div>
<div class="grid">
<div class="imgholder">
<img src="http://www.inwebson.com/demo/blocksit-js/demo2/images/img22.jpg" />
</div> <strong>Rooster's Ranch</strong>
<p>Rooster's ranch landscape...</p>
<div class="meta">by Andrea Andrade</div>
</div>
<div...
CSS
body {
margin:0;
padding:0;
background:url(../bg.gif) 0 0 repeat #f7f5f5;
color:#333;
font-family:Cambria, Georgia, serif;
font-size:15px;
overflow-x:hidden;
}
header, section, footer, hgroup {
display:block;
}
a {
color:#35BFFF;
text-decoration:none;
}
a:hover, a:active {
color:#91DCFF;
}
/* Header */
#header {
width:100%;
background:#000;
background:rgba(0, 0, 0, 0.8);
padding:5px 0;
letter-spacing:1px;
margin-bottom:20px;
position:fixed;
top:0;
left:0;
z-index:99;
}
#header h1 {
padding:0 20px;
margin:5px 0;
text-shadow:2px 1px 1px #333, 2px 2px 1px #888;
color:#EAEAEA;
float:left;
font-size:27px;
}
#backlinks {
float:right;
padding:0 20px;
line-height:22px;
font-weight:bold;
font-size:13px;
}
#backlinks a {
text-align:right;
display:block;
}
/* Footer */
#footer {
width:100%;
position:fixed;
padding-left:20px;
bottom:0;
left:0;
line-height:20px;
color:#888;
font-size:13px;
background:rgb(0, 0, 0);
background:rgba(0, 0, 0, 0.8);
z-index:99;
}
#footer span {
display:block;
}
/* clearfix */
.clearfix {
clear:both;
}
/* wrapper css */
#wrapper {
margin-top:70px;
width:100%;
}
#wrapper hgroup {
text-align:center;
}
#wrapper h2 {
margin:5px 0;
color:#FF6D99;
text-shadow:1px 1px 2px #A50031;
font-size:33px;
font-family:Arial Narrow, Arial, sans-serif;
}
#wrapper h3 {
font-style:italic;
font-weight:normal;
font-size:18px;
text-shadow:1px 1px 0 #fff;
color:#888;
margin:5px 0;
}
#container {
position:relative;
width:1100px;
margin:0 auto 25px;
padding-bottom: 10px;
}
.grid {
width:188px;
min-height:100px;
padding: 15px;
background:#fff;
margin:8px;
font-size:12px;
float:left;
box-shadow: 0 1px 3px rgba(34, 25, 25, 0.4);
-moz-box-shadow: 0 1px 3px rgba(34, 25, 25, 0.4);
...
JavaScript
(function (a) {
var b = {
numOfCol: 5,
offsetX: 5,
offsetY: 5,
blockElement: "div"
};
var c, d;
var e = [];
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function (a) {
var b = this.length >>> 0;
var c = Number(arguments[1]) || 0;
c = c < 0 ? Math.ceil(c) : Math.floor(c);
if (c < 0) c += b;
for (; c < b; c++) {
if (c in this && this[c] === a) return c
}
return -1
}
}
var f = function () {
e = [];
for (var a = 0; a < b.numOfCol; a++) {
g("empty-" + a, a, 0, 1, -b.offsetY)
}
};
var g = function (a, c, d, f, g) {
for (var h = 0; h < f; h++) {
var i = new Object;
i.x = c + h;
i.size = f;
i.endY = d + g + b.offsetY * 2;
e.push(i)
}
};
var h = function (a, b) {
for (var c = 0; c < b; c++) {
var d = i(a + c, "x");
e.splice(d, 1)
}
};
var i = function (a, b) {
for (var c = 0; c < e.length; c++) {
var d = e[c];
if (b == "x" && d.x == a) {
return c
} else if (b == "endY" && d.endY == a) {
return c
}
}
};
var j = function (a, b) {
var c = [];
for (var d = 0; d < b; d++) {
c.push(e[i(a + d, "x")].endY)
}
var f = Math.min.apply(Math, c);
var g = Math.max.apply(Math, c);
return [f, g, c.indexOf(f)]
};
var k = function (a) {
if (a > 1) {
var b = e.length - a;
var c = false;
var d, f;
for (var g = 0; g < e.length; g++) {
var h = e[g];
var i = h.x;
if (i >= 0 && i <= b) {
var k = j(i, a);
if (!c) {
...