html - 如果一个框高于其他框,如何使用显示 flex 换行并删除空格
问题描述
但我无法让它工作,因为在一行上对齐的项目占用了一个空间。有什么办法可以做到这一点?
.container {
display:flex;
flex-flow:row wrap;
justify-content: center;
max-width: 900px;
}
.container div.section {
margin: 10px 10px;
width: 30%;
height: 300px;
background-color: red;
}
div.section:nth-child(2) {
height: 400px;
}
div.section:nth-child(3) {
height: 280px;
}
div.section:nth-child(4) {
height: 280px;
}
div.section:nth-child(6) {
height: 250px;
}
<div class="container">
<div class="section menu_0"></div>
<div class="section menu_1"></div>
<div class="section menu_2"></div>
<div class="section menu_3"></div>
<div class="section menu_4"></div>
<div class="section menu_5"></div>
<div class="section menu_6"></div>
</div>
解决方案
我认为这会对您有所帮助(在此处查找完整代码https://bootsnipp.com/snippets/featured/pinterest-like-responsive-grid)
$(document).ready(function() {
$('#pinBoot').pinterest_grid({
no_columns: 4,
padding_x: 10,
padding_y: 10,
margin_bottom: 50,
single_column_breakpoint: 700
});
});
;(function ($, window, document, undefined) {
var pluginName = 'pinterest_grid',
defaults = {
padding_x: 10,
padding_y: 10,
no_columns: 3,
margin_bottom: 50,
single_column_breakpoint: 700
},
columns,
$article,
article_width;
function Plugin(element, options) {
this.element = element;
this.options = $.extend({}, defaults, options) ;
this._defaults = defaults;
this._name = pluginName;
this.init();
}
Plugin.prototype.init = function () {
var self = this,
resize_finish;
$(window).resize(function() {
clearTimeout(resize_finish);
resize_finish = setTimeout( function () {
self.make_layout_change(self);
}, 11);
});
self.make_layout_change(self);
setTimeout(function() {
$(window).resize();
}, 500);
};
Plugin.prototype.calculate = function (single_column_mode) {
var self = this,
tallest = 0,
row = 0,
$container = $(this.element),
container_width = $container.width();
$article = $(this.element).children();
if(single_column_mode === true) {
article_width = $container.width() - self.options.padding_x;
} else {
article_width = ($container.width() - self.options.padding_x * self.options.no_columns) / self.options.no_columns;
}
$article.each(function() {
$(this).css('width', article_width);
});
columns = self.options.no_columns;
$article.each(function(index) {
var current_column,
left_out = 0,
top = 0,
$this = $(this),
prevAll = $this.prevAll(),
tallest = 0;
if(single_column_mode === false) {
current_column = (index % columns);
} else {
current_column = 0;
}
for(var t = 0; t < columns; t++) {
$this.removeClass('c'+t);
}
if(index % columns === 0) {
row++;
}
$this.addClass('c' + current_column);
$this.addClass('r' + row);
prevAll.each(function(index) {
if($(this).hasClass('c' + current_column)) {
top += $(this).outerHeight() + self.options.padding_y;
}
});
if(single_column_mode === true) {
left_out = 0;
} else {
left_out = (index % columns) * (article_width + self.options.padding_x);
}
$this.css({
'left': left_out,
'top' : top
});
});
this.tallest($container);
$(window).resize();
};
Plugin.prototype.tallest = function (_container) {
var column_heights = [],
largest = 0;
for(var z = 0; z < columns; z++) {
var temp_height = 0;
_container.find('.c'+z).each(function() {
temp_height += $(this).outerHeight();
});
column_heights[z] = temp_height;
}
largest = Math.max.apply(Math, column_heights);
_container.css('height', largest + (this.options.padding_y + this.options.margin_bottom));
};
Plugin.prototype.make_layout_change = function (_self) {
if($(window).width() < _self.options.single_column_breakpoint) {
_self.calculate(true);
} else {
_self.calculate(false);
}
};
$.fn[pluginName] = function (options) {
return this.each(function () {
if (!$.data(this, 'plugin_' + pluginName)) {
$.data(this, 'plugin_' + pluginName,
new Plugin(this, options));
}
});
}
})(jQuery, window, document);
body {
background-color:#eee;
}
#pinBoot {
position: relative;
max-width: 100%;
width: 100%;
}
img {
width: 100%;
max-width: 100%;
height: auto;
}
.white-panel {
position: absolute;
background: white;
box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.3);
padding: 10px;
}
/*
stylize any heading tags withing white-panel below
*/
.white-panel h1 {
font-size: 1em;
}
.white-panel h1 a {
color: #A92733;
}
.white-panel:hover {
box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.5);
margin-top: -5px;
-webkit-transition: all 0.3s ease-in-out;
-moz-transition: all 0.3s ease-in-out;
-o-transition: all 0.3s ease-in-out;
transition: all 0.3s ease-in-out;
}
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<div class="container">
<div class="row">
<h2>Pinterest Responsive Grid</h2>
<p>Best viewed <a href="http://bootsnipp.com/iframe/Zkk0O" target="_blank">full screen</a>
</p>
<hr>
<section id="pinBoot">
<article class="white-panel"><img src="http://i.imgur.com/sDLIAZD.png" alt="">
<h4><a href="#">Title 1</a></h4>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</article>
<article class="white-panel"> <img src="http://i.imgur.com/8lhFhc1.gif" alt="">
<h4><a href="#">Title 2</a></h4>
<p>Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</article>
<article class="white-panel"> <img src="http://i.imgur.com/xOIMvAe.jpg" alt="">
<h4><a href="#">Title 3</a></h4>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
</article>
<article class="white-panel"> <img src="http://i.imgur.com/3gXW3L3.jpg" alt="">
<h4><a href="#">Title 4</a></h4>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</article>
<article class="white-panel"> <img src="http://i.imgur.com/o2RVMqm.jpg" alt="">
<h4><a href="#">Title 5</a></h4>
<p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</article>
<article class="white-panel"> <img src="http://i.imgur.com/kFFpuKA.jpg" alt="">
<h4><a href="#">Title 6</a></h4>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
</article>
<article class="white-panel"><img src="http://i.imgur.com/E9RmLPA.jpg" alt="">
<h4><a href="#">Title 7</a></h4>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</article>
<article class="white-panel"> <img src="http://i.imgur.com/8lhFhc1.gif" alt="">
<h4><a href="#">Title 8</a></h4>
<p>Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</article>
</section>
<hr>
</div>
<p>
<a href="http://validator.w3.org/check?uri=http%3A%2F%2Fbootsnipp.com%2Fiframe%2FZkk0O" target="_blank"><small>HTML</small><sup>5</sup></a>
<br>
<br>
</p>
</div>
推荐阅读
- python - 绘制时翻转纹理pyopengl
- qt - 无法加载 QT 环境
- email - 将故障转移 IP 附加到计算机
- c# - 尝试使用 .NET 生成资产以在 VSCode 中进行构建和调试时出错
- bigcommerce - Big Commerce - 从外部博客页面中提取博客文章
- python - 添加附加信息以请求
- android - 更新 gradle 导致'无法找到方法'com.android.build.gradle.tasks.GenerateBuildConfig.getBuildConfigPackageName()Ljava/lang/String'
- if-statement - 带有 IF 语句的索引匹配公式
- vue.js - vue 过渡而无需使用 v-if / v-show
- ios - Codemagic 未能发布错误:代码 -22020