【发布时间】:2014-08-25 23:15:21
【问题描述】:
我正在尝试在 Bootstrap 中创建一个布局,在大屏幕上显示三个块,在小屏幕上显示两个块(断点发生在 sm 和 md 之间)。
<div class="row">
<div class="container">
<div class="col-xs-6 col-md-4">A - 50</div>
<div class="col-xs-6 col-md-4">B - 100</div>
<div class="col-xs-6 col-md-4">C - 75</div>
</div>
</div>
然而,这会导致 A 块和 C 块之间出现不需要的垂直间隙。
在我看来,我有几个可能的选择来消除垂直间隙,但也许有更好的解决方案:
- 复制 html 并使用 visible-sm 和 visible-md 显示想要的布局。在 sm 上,它将有一个两列布局,第一列包含 A 和 C。
- 缺点:block内容也需要重复,可能包含很多html
- 使用 JavaScript 将块移动到正确的列(可能是 jQuery Masonry)。
- 缺点:我宁愿有一个纯 CSS 的解决方案
- 看看 flexbox、css 列和 css 网格。
- 缺点:不支持浏览器
【问题讨论】:
-
Flexbox 是最简单的方法,但正如你所说的浏览器支持还不存在......也就是说,如果你对旧浏览器在一个列中获取内容感到高兴,那就去吧那个。
-
大家跟我今天早上做的一模一样;但使用 Flex 方法。
-
也许在较新的浏览器上使用 flexbox 并为较旧的浏览器使用稍微不太理想的布局就可以了,感谢您的想法!
标签: css twitter-bootstrap responsive-design positioning