Bootstrap 中响应式的正方形网格

7
我希望在Bootstrap中创建一个响应式图片网格,这些图片始终是正方形的。
到目前为止,我得到了这个:Jsfiddle链接 以下代码可以使元素始终成为正方形:
.frontpage_square {
    position:relative;
    overflow:hidden;
    padding-bottom:100%;
}

.frontpage_square img {
    position:absolute;
}

左侧的较大正方形和右侧的九个小正方形都是正确的,但我无法想象如何将右侧的九个小正方形铺满整个高度。因此,它们应该占据左侧较大正方形的整个高度。

我可以通过一些数学轻松实现它。但是为什么你想要这样混乱的网格系统呢..? - Riddler
1
为什么这很混乱?它是类似于“一个大尺寸的特色元素和9个小尺寸的普通元素在网格旁边”的东西。这里没有太疯狂的东西,或者我错了吗? - nucci
没有什么问题...但输出包含太多填充,并且您实现正方形缩略图的方式 padding:100% 可能不是最佳选择。 - Riddler
对于使用Bootstrap 4的未来读者,这个问题可能会有所帮助 - Carol Skelly
1个回答

6

问题很简单,你没有正确地排列你的div。使用bootstrap并正确使用div即可解决这个问题。完成后,你可以使用这个S.O.问题使所有列的大小相同。

jsfiddle

<div class="row">
    <div class="col-sm-6 panel">

            <a href="#" class="thumbnail">
                <div class="frontpage_square">
                    <img src="" class="img img-responsive full-width" />
                </div>
            </a>    

    </div>
  <div class="col-sm-6 panel">

        <div class="col-sm-4">
            <a href="#" class="thumbnail">
                <div class="frontpage_square">
                    <img src="" class="img img-responsive full-width" />
                </div>
            </a>
       </div>
       <div class="col-sm-4">
            <a href="#" class="thumbnail">
                <div class="frontpage_square">
                    <img src="" class="img img-responsive full-width" />
                </div>
            </a>
       </div>
       <div class="col-sm-4 ">
            <a href="#" class="thumbnail">
                <div class="frontpage_square">
                    <img src="" class="img img-responsive full-width" />
                </div>
            </a>
       </div>  

        <div class="col-sm-4">
            <a href="#" class="thumbnail">
                <div class="frontpage_square">
                    <img src="" class="img img-responsive full-width" />
                </div>
            </a>
       </div>
       <div class="col-sm-4 ">
            <a href="#" class="thumbnail">
                <div class="frontpage_square">
                    <img src="" class="img img-responsive full-width" />
                </div>
            </a>
       </div>
       <div class="col-sm-4">
            <a href="#" class="thumbnail">
                <div class="frontpage_square">
                    <img src="" class="img img-responsive full-width" />
                </div>
            </a>
       </div>  

        <div class="col-sm-4">
            <a href="#" class="thumbnail">
                <div class="frontpage_square">
                    <img src="" class="img img-responsive full-width" />
                </div>
            </a>
       </div>
       <div class="col-sm-4">
            <a href="#" class="thumbnail">
                <div class="frontpage_square">
                    <img src="" class="img img-responsive full-width" />
                </div>
            </a>
       </div>
       <div class="col-sm-4">
            <a href="#" class="thumbnail">
                <div class="frontpage_square">
                    <img src="" class="img img-responsive full-width" />
                </div>
            </a>
       </div>

</div>

好的,我首先发现的是:使用了旧版本的Bootstrap。修复了这个问题并使用了你的方法。但是经过相当多的谷歌搜索后,我仍然不知道如何使右侧的9个方块与左侧的单个大方块具有相同的高度。就像在你的jsfiddle中一样,9个方块的最后一行总是比大方块高几个像素。所以它们似乎有一个我不想要的padding-bottom... - nucci
每12列应该不是应该有一行吗? - niico
@niico 不一定。这完全取决于你和你想在一天结束时实现什么。 - Coding Enthusiast
如果您想在正方形中放置文本,该如何做(如果添加文本,则会使“正方形”比宽度更高)- 我提出了一个问题:http://stackoverflow.com/questions/40445364/responsive-squares-with-background-image-content-in-bootstrap-3-grid。 - niico
这个答案会因为 Bootstrap 4 而改变吗? - stevec

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接