html - 使用 Bootstrap 和 Jekyll 在 3x3 网格内打印所有帖子

标签 html css twitter-bootstrap jekyll

我正在尝试使用 Bootstrap 4 创建一个网格,在 3x3 网格中包含我的帖子。

我现在的代码是:

<div class="col-sm-8" id="main-content">

  <div class="row">

    {% for post in site.posts%}
    <div class="col-sm-4">
      <div class="card" style="width: 20rem;">
        <img class="card-img-top" src="../media/logo-prueba.jpg">
        <div class="card-block">
          <h4 class="card-title">{{ post.title }}</h4>
          <p class="card-text">{{ post.category }}</p>
        </div>
      </div>
    </div>
    {% endfor %}

  </div>

第一个带有 col-sm-8 的 div 就在那里,因为我也在使用侧边栏。

我该如何处理?比如连续打印 3,然后打印下一行 3,最后一行打印 3?

输出是这个有 3 个帖子:

  <div class="row">
    <div class="col-sm-4">
      <div class="card" style="width: 20rem;">
        <img class="card-img-top" src="../media/logo-prueba.jpg">
        <div class="card-block">
          <h4 class="card-title">test1</h4>
          <p class="card-text"></p>
        </div>
      </div>
    </div>

    <div class="col-sm-4">
      <div class="card" style="width: 20rem;">
        <img class="card-img-top" src="../media/logo-prueba.jpg">
        <div class="card-block">
          <h4 class="card-title">Otro post!</h4>
          <p class="card-text"></p>
        </div>
      </div>
    </div>

    <div class="col-sm-4">
      <div class="card" style="width: 20rem;">
        <img class="card-img-top" src="../media/logo-prueba.jpg">
        <div class="card-block">
          <h4 class="card-title">Calzón chino</h4>
          <p class="card-text"></p>
        </div>
      </div>
    </div>
  </div>
</div>

有什么帮助吗?提前致谢!

最佳答案

为父级具有百分比宽度的 Bootstrap 元素设置固定内联宽度不是可行的方法,因为它会破坏响应行为。默认情况下,卡片元素会占用列中的所有可用空间。如果您希望它更小,请在卡片上使用边距而不是固定的(rem 等于像素数量)。确保图像宽度(静止)为 100%。

{% for post in site.posts limit:9 %}
<div class="col-sm-4">
  <div class="card" style="width: 20rem;">
    <img class="card-img-top" src="../media/logo-prueba.jpg">
    <div class="card-block">
      <h4 class="card-title">{{ post.title }}</h4>
      <p class="card-text">{{ post.category }}</p>
    </div>
  </div>
</div>
{% endfor %}

最后,正如评论中所建议的,当第一个或第二个元素高于第三个时,使用模数来防止奇怪的堆叠行为:

{% for post in site.posts limit:9 %}
  {% assign indexmod3 = forloop.index | modulo: 3 %}
  {% if indexmod3 == 0 %}<div style="clear: both;"></div>{% endif %}
  <div class="col-sm-4">
    ...
  </div>
</div>
{% endfor %}

关于html - 使用 Bootstrap 和 Jekyll 在 3x3 网格内打印所有帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48142476/

相关文章:

html - 如何使用动态大小(百分比)管理边框、填充、边距?

html - 溢出-x 不起作用

html - 更改视频的高度并保持相同的宽度

html - Bootstrap 表格边框在 Firefox 中无法正确显示

html - 尺寸、对齐方式和列表样式等社交图标命令对页脚没有任何影响

html - 具有宽度和换行符之前的跨度元素

jquery - 在 jquery mobile 的按钮中使用自定义矩形图标

javascript - 播放视频时调暗屏幕的缓和过渡效果

html - css居中正在影响小部件

javascript - 循环中的 Bootstrap Popover 未显示正确的内容