【问题标题】:Metro grid style地铁网格样式
【发布时间】:2017-07-19 16:54:59
【问题描述】:

我正在尝试实现类似于以下页面的内容: 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;
    }

【问题讨论】:

  • 这是你想要做的吗? codepen.io/mcoker/pen/VWJGwz
  • @MichaelCoker 是的,完全正确(尽管没有空格)。我知道你是怎么做到的,但是内容将在循环中动态呈现,所以使用 class="rows" 等会很复杂,或者不?
  • 应该不复杂。这是一致的标记。没有空格是什么意思?如果您指的是边框周围的白色边缘,请添加body { margin: 0; }
  • 不,我的意思是小图像不够大,但我解决了。无论哪种方式,您的解决方案似乎都不错,但现在我的帖子将左栏加载到右栏,这将使第 4 个最新帖子出现在右上角。如果您知道,我希望新闻帖子在顶部,然后一直到底部我的意思。
  • 我不明白你的意思。什么是新闻帖子?

标签: html css grid masonry


【解决方案1】:

要复制该网格,您可以创建具有 flex 子项的 flex 行,这些子项也是包含您的图像的 flex 列。

.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>

嗯,这就是您使用常规 ol' html/css 的方式。但既然你只想拥有一堆这样自动布局的元素,请使用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/masonry-layout@4/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>

【讨论】:

  • 我想要的几乎就是你发布的。视觉上:是的;结构:没有。如果您查看我发布的网站,则结构从左到右。你的是彼此并排的两列。因此,如果我加载我的帖子(例如 Wordpress),我希望将新帖子放在首位。如果我使用您的解决方案,它将在左列和右列 4、5 和 6 中发布 1,2 和 3。我不希望这样。
  • @Greg 啊,一定要在帖子中阐明这一点,因为它是相关的,这样人们就不会花时间编写不起作用的代码。他们正在使用砖石来做到这一点。更新了我的答案。
  • 是的,抱歉应该更具体!它看起来正是我现在想要的,谢谢!我稍后会尝试,然后我会回来接受您的回答,谢谢
  • 我不知道我做错了什么,但我只是复制了你的代码,但我没有和你一样的结果。我在 jsfiddle 中尝试过,我得到了这个 @987654322 @
  • 好吧,等一下,我忘了在 jsfiddle 中添加 jQuery 部分。所以它现在可以工作了,除了我的本地项目不适用,但我可能也忘了添加一些东西
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-10
  • 2023-03-27
  • 1970-01-01
相关资源
最近更新 更多