html - 显示画廊元素等元素时的定位问题

标签 html css

我有一些数据(框)应该像画廊元素一样显示(就像在任何购物网站中一样),问题是每个框的高度不一样,因为它的内容,每行有 4 个元素(框),假设如果第一个盒子中的一个高度为 300px 而所有其他盒子的高度为 250px 那么下一个中的下一个元素从第一行的最大高度结束开始,我不想要这样,我不想要这些空白空间,每个盒子下一行应显示在第一行的框下

这是我的代码

<!DOCTYPE html>
<html>
<head>
<style> 
.flex-container {
  width: 400px;
  background-color: lightgrey;
}

.flex-item {
  background-color: cornflowerblue;
  width: 122px;
  margin: 0 10px 10px 0;
  float: left;
  padding: 15px;
}
</style>
</head>
<body>

<div class="flex-container">
  <div class="flex-item">flex item 1</div>
  <div class="flex-item">flex item 2flex item 2flex item 2flex item 2</div>
  <div class="flex-item">flex item 3</div>
  <div class="flex-item">flex item 1</div>
  <div class="flex-item">flex item 2</div>
  <div class="flex-item">flex item 3</div>
</div>

</body>
</html>

最佳答案

据我所知,您正在寻找的效果称为 Masonry 或 Pinterest 效果。 This is a good plugin for it.

这是您实现砌体的代码:https://jsfiddle.net/jwjkt933/

用于初始化砌体的 jQuery 代码:

(function($) {
  $('.flex-container').masonry({
    columnWidth: 152,
    gutter: 10,
    itemSelector: '.flex-item'
  });
})(jQuery);

这个例子也需要 jQuery,尽管你也可以用纯 JS 初始化砌体。

关于html - 显示画廊元素等元素时的定位问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43378281/

相关文章:

php - 我应该如何在 MySQL 数据库中存储换行符?

html - 如何将 HTML <option> 控件设置为复选框样式

javascript - 将弹出式 JS slider 添加到菜单列表 - 链接不起作用

css - 如果父 div 较长,则使 div 拉伸(stretch)到其内容的长度并超出其长度?

javascript - 检查我的 php BD 上是否存在元素并将其显示在 html 上

javascript - 如何禁用多个元素触发?

javascript - 使用 JavaScript 加载图像?

html - Bootstrap 移动菜单 100%

CSS flexbox 布局在 safari 中不起作用

css - 如何在 Jade 中使用CSS?