要回答您的问题,这就是您所需要的全部内容,并带有带有前缀css的完整响应式演示:
/* Using col-xs media query breakpoint but you can change 481 to 768 to only apply to col-sm and above if you'd like*/
@media only screen and (min-width : 481px) {
.flex-row {
display: flex;
flex-wrap: wrap;
}
.flex-row > [class*='col-'] {
display: flex;
flex-direction: column;
}
.flex-row.row:after,
.flex-row.row:before {
display: flex;
}
}
为了增加对flex列之内的缩略图内容flex的支持(例如上面的屏幕截图),还可以添加以下内容……请注意,您也可以使用面板来做到这一点:
.flex-row .thumbnail,
.flex-row .caption {
display: flex;
flex: 1 0 auto;
flex-direction: column;
}
.flex-text {
flex-grow: 1;
}
.flex-row img {
width: 100%;
}
尽管flexbox在IE9及以下版本中不起作用,但您可以使用带有条件标记的演示,将条件标记与诸如javascript网格之类的条件填充为polyfill :
<!--[if lte IE 9]>
<![endif]-->
至于接受的答案中的其他两个示例...表演示是一个不错的主意,但是实现错误。毫无疑问,将CSS应用于引导程序列类无疑会完全破坏网格框架。您应该为一个和两个使用自定义选择器,不应将表格样式应用于[class*='col-']
已定义宽度的表格样式。仅当您想要相等的高度和相等的宽度的列时,才应使用此方法。它不用于任何其他布局,并且不响应。我们可以使其在移动显示器上回退...
<div class="table-row-equal">
<div class="thumbnail">
Content...
</div>
<div class="thumbnail">
Content...
</div>
</div>
@media only screen and (min-width : 480px){
.table-row-equal {
display: table;
width: 100%;
table-layout: fixed;
border-spacing: 30px 0px;
word-wrap: break-word;
}
.table-row-equal .thumbnail {
float: none;
display: table-cell;
vertical-align: top;
width: 1%;
}
}
最后,已接受答案中的第一个演示实现了一个真实布局的版本某些情况下是一个不错的选择,但不适用于引导列。这样做的原因是所有列都扩展到容器高度。因此,这也将破坏响应能力,因为列不会扩展到其旁边的元素,而是扩展到整个容器。此方法也将不允许您将底部页边距再应用于行,并且还会导致其他问题,例如滚动到定位标记。
有关完整的代码,请参见Codepen,它会自动为flexbox代码添加前缀。