2017-07-19 59 views
1

我试图实现类似下面的页面: https://undsgn.com/uncode/homepages/blog-metro/地铁网格样式

我已经尝试过,并能来尽可能接近这样的:https://jsfiddle.net/futu7t1c/

但我怎么能得到那些2 small-thumbs在底部向上移动?

顺序为大,小,小,大,小,小

<div id="blog-posts"> 
<div class="grid big-thumb"> 
    Title 
</div> 
<div class="grid small-thumb"> 
    Title 
</div> 
<div class="grid small-thumb"> 
    Title 
</div> 
<div class="grid big-thumb"> 
    Title 
</div> 
<div class="grid small-thumb"> 
    Title 
</div> 
<div class="grid small-thumb"> 
    Title 
</div> 
</div> 

CSS

#blog-posts { 
     -moz-column-count: 1; 
     -webkit-column-count: 1; 
     column-count: 1; 
     -moz-column-gap: 0em; 
     -webkit-column-gap: 0em; 
     column-gap: 0em; 
    } 

    .grid { 
     background: #eee; 
     float: left; 
     position: relative; 
     color: #fff; 
    } 

    .big-thumb { 
     width: 50%; 
     height: 600px; 
     background: #aeaeae; 
    } 

    .small-thumb { 
     width: 25%; 
     height: 300px; 
     background: #353535; 
    } 
+1

这是你想要做什么? https://codepen.io/mcoker/pen/VWJGwz –

+0

@MichaelCoker是的,正好(虽然没有空格)。我看到你是如何做到这一点的,但是内容会在一个循环中动态呈现,所以它会与class =“rows”等复杂的工作,或者不是? – Greg

+0

它不应该是复杂的。这是一致的标记。你什么意思没有空格?如果您指的是边框周围的白色边缘,请添加'body {margin:0; }' –

回答

1

待复制的网格,就可以使具有弹性的孩子,也是柔性行弯曲列保存您的图像。

.flex { 
 
    display: flex; 
 
} 
 
.col { 
 
    flex-direction: column; 
 
    flex: 0 0 50%; 
 
} 
 
img { 
 
    max-width: 100%; 
 
    vertical-align: top; 
 
}
<div class="flex row"> 
 
    <div class="flex col"> 
 
    <div class="big"> 
 
     <img src="http://1.bp.blogspot.com/-hNC-oT6f-fY/TeXxO26yjvI/AAAAAAAAAOY/qfkOqdKkBi8/s1600/platon-photographer-putin-man-of-the-year-portrait.jpg"> 
 
    </div> 
 
    <div class="flex row"> 
 
     <div class="small"> 
 
     <img src="https://i.stack.imgur.com/2C22p.jpg"> 
 
     </div> 
 
     <div class="small"> 
 
     <img src="https://i.stack.imgur.com/2C22p.jpg"> 
 
     </div> 
 
    </div> 
 

 
    </div> 
 
    <div class="flex col"> 
 
    <div class="flex row"> 
 
     <div class="small"> 
 
     <img src="https://i.stack.imgur.com/2C22p.jpg"> 
 
     </div> 
 
     <div class="small"> 
 
     <img src="https://i.stack.imgur.com/2C22p.jpg"> 
 
     </div> 
 
    </div> 
 
    <div class="big"> 
 
     <img src="http://1.bp.blogspot.com/-hNC-oT6f-fY/TeXxO26yjvI/AAAAAAAAAOY/qfkOqdKkBi8/s1600/platon-photographer-putin-man-of-the-year-portrait.jpg"> 
 
    </div> 
 
    </div>

嗯,这是你如何使用常规的醇” HTML/CSS做。但是,因为你只想有一大堆的元素是automatagically铺陈这样,使用masonry

$('.masonry').masonry({ 
 
    itemSelector: '.item', 
 
    columnWidth: '.small' 
 
});
body { 
 
    margin: 0; 
 
} 
 
.item { 
 
    float: left; 
 
} 
 
.big { 
 
    width: 50%; 
 
} 
 
.small { 
 
    width: 25%; 
 
} 
 
img { 
 
    width: 100%; 
 
    vertical-align: top; 
 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
<script src="https://unpkg.com/[email protected]/dist/masonry.pkgd.min.js"></script> 
 
<div class="masonry"> 
 
    <div class="item big"> 
 
    <img src="http://1.bp.blogspot.com/-hNC-oT6f-fY/TeXxO26yjvI/AAAAAAAAAOY/qfkOqdKkBi8/s1600/platon-photographer-putin-man-of-the-year-portrait.jpg"> 
 
    </div> 
 
    <div class="item small"> 
 
    <img src="https://i.stack.imgur.com/2C22p.jpg"> 
 
    </div> 
 
    <div class="item small"> 
 
    <img src="https://i.stack.imgur.com/2C22p.jpg"> 
 
    </div> 
 

 
    <div class="item big"> 
 
    <img src="http://1.bp.blogspot.com/-hNC-oT6f-fY/TeXxO26yjvI/AAAAAAAAAOY/qfkOqdKkBi8/s1600/platon-photographer-putin-man-of-the-year-portrait.jpg"> 
 
    </div> 
 
    <div class="item small"> 
 
    <img src="https://i.stack.imgur.com/2C22p.jpg"> 
 
    </div> 
 
    <div class="item small"> 
 
    <img src="https://i.stack.imgur.com/2C22p.jpg"> 
 
    </div> 
 
</div>

+0

我想要的几乎就是你发布的内容。目测:是的;结构:不。如果你看看我发布的网站,结构从左到右。你们是彼此相隔的两列。所以如果我加载我的帖子(例如Wordpress),我希望新帖子在上面。如果我使用你的解决方案,它会在左栏和右栏4,5和6中发布1,2和3。我不想那样。 – Greg

+0

@Greg啊,一定要在帖子中表达清楚,因为它是相关的,所以人们不会花时间编写无法工作的代码。他们正在使用石工来做到这一点。更新了我的答案。 –

+0

是的,抱歉应该更具体!它看起来完全是我现在想要的,谢谢!我会稍后再试,然后我会回来接受你的回答,谢谢 – Greg