<template>
<masonry
:item-selector="itemSelector"
:column-width="columnWidth"
@layoutComplete="onLayoutComplete"
>
<div class="static-banner">Static banner</div>
<div class="grid-item"></div>
<div class="grid-item grid-item--width2 grid-item--height2"></div>
<div class="grid-item grid-item--height3"></div>
<div class="grid-item grid-item--height2"></div>
<div class="grid-item grid-item--width3"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item grid-item--height2"></div>
<div class="grid-item grid-item--width2 grid-item--height3"></div>
<div class="grid-item"></div>
<div class="grid-item grid-item--height2"></div>
<div class="grid-item"></div>
<div class="grid-item grid-item--width2 grid-item--height2"></div>
<div class="grid-item grid-item--width2"></div>
<div class="grid-item"></div>
<div class="grid-item grid-item--height2"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item grid-item--height3"></div>
<div class="grid-item grid-item--height2"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item grid-item--height2"></div>
</masonry>
</template>
<script>
export default {
data () {
return {
itemSelector: '.grid-item',
columnWidth: 160
}
},
methods: {
onLayoutComplete () {
console.log('layout complete !')
}
}
}
</script>
<style>
.grid {
background: #EEE;
max-width: 1200px;
}
.grid:after {
content: '';
display: block;
clear: both;
}
.grid-item {
width: 160px;
height: 120px;
float: left;
background: #D26;
border: 2px solid #333;
border-color: hsla(0, 0%, 0%, 0.5);
border-radius: 5px;
}
.grid-item--width2 { width: 320px; }
.grid-item--width3 { width: 480px; }
.grid-item--width4 { width: 720px; }
.grid-item--height2 { height: 200px; }
.grid-item--height3 { height: 260px; }
.grid-item--height4 { height: 360px; }
.static-banner {
position: absolute;
left: 10px;
top: 10px;
padding: 10px 30px;
color: white;
background: #A2C;
font-size: 22px;
z-index: 2;
}
</style>