当前位置: 首页 > 面试题库 >

Bootstrap堆栈行中的间隙

公沈浪
2023-03-14
问题内容

我正在构建一个Bootstrap 3网格,该网格最终将成为投资组合页面。在下面的bootply中,在第一个示例中,您可以看到它在我的
bootply中 完美地从6堆叠到4到3

但是,在第二个示例中,在同一个靴子上,存在一个项目,其中该项目的图块较长,并且在堆叠时会在网格中造成间隙。

最佳的引导友好解决方案是什么?任何帮助,不胜感激。


问题答案:

有两种方法可以解决此问题:

  1. 给投资组合中的所有元素设定一个高度。
  2. 使用砌体之类的方法将元素动态“拟合”到可用空间中。
  3. 按照 Grid部分中“ 响应性列 resets”标题下的文档中的说明使用响应类和clearfix 。
  4. 使用jQuery动态调整列高。

如果您的内容是动态生成的,以至于您不知道哪些元素将具有更长的内容,并且为不同的断点设置了不同的布局,则响应类方法可能会让人难以适应。我使用了一些技巧。在网格中的每个元素之后,我添加了一个div,我可以在使用媒体查询时应用一个miniclearfix。这是额外的标记,但是它很好地解决了问题,并允许我拥有可读性和可维护性的标记,同时避免使用javascript来调整布局。这是使用标记的示例:

更新了Bootply

<div class="row portfolio"> <!--Add a class so you can target with nth-child-->
    <div class="col-lg-2 col-sm-3 col-xs-4">
        <div class="panel panel-default">
            <div class="panel-body">
                <a href="#">
                    <img src="http://placehold.it/200x200" class="img-thumbnail img-responsive">
                </a>
            </div>
            <div class="panel-footer">
                This is text
            </div>  
        </div> 
    </div>
    <div class="clear"></div> <!--Here's the added div after every element-->
  ....
</div> <!--/.portfolio.row-->

CSS:

@media (max-width: 767px) {
    .portfolio>.clear:nth-child(6n)::before {
      content: '';
      display: table;
      clear: both;
    }
}
@media (min-width: 768px) and (max-width: 1199px) {
    .portfolio>.clear:nth-child(8n)::before {
      content: '';
      display: table;
      clear: both;
    }
}
@media (min-width: 1200px) {
    .portfolio>.clear:nth-child(12n)::before {  
      content: '';
      display: table;
      clear: both;
    }
}

如果您更喜欢jQuery路线(同样,这假设您已在包含投资组合元素的行中添加了一个“投资组合”类,以便于定位):

var row=$('.portfolio');
$.each(row, function() {
    var maxh=0;
    $.each($(this).find('div[class^="col-"]'), function() {
        if($(this).height() > maxh)
            maxh=$(this).height();
    });
    $.each($(this).find('div[class^="col-"]'), function() {
        $(this).height(maxh);
    });
});


 类似资料:
  • 我来自C/C++背景,在这里一个进程内存分为: null 我想把我的注意力集中在这一点上,当我阅读JVM中的堆和堆栈时,我们是在谈论堆栈和堆的概念吗?并且整个JVM的实际内存驻留在堆上(这里指的是堆的C++概念)?

  • 问题内容: 内核堆栈和用户堆栈有什么区别?为什么要使用内核堆栈?如果在ISR中声明了局部变量,它将存储在哪里?每个进程都有自己的内核堆栈吗?那么,进程如何在这两个堆栈之间进行协调? 问题答案: 内核堆栈和用户堆栈有什么区别? 简而言之,除了在内存中使用不同的位置(并因此为堆栈指针寄存器使用不同的值)之外,什么也没有,而且通常使用不同的内存访问保护。也就是说,在用户模式下执行时,即使映射了内核内存(

  • 问题内容: 在Java多线程中,术语和之间在语义上有区别吗? 问题答案: 每个线程都有自己的调用堆栈,“调用堆栈”和“线程堆栈”是同一件事。将其称为“线程堆栈”只是强调了调用堆栈特定于线程。 Bill Venners将此称为Java堆栈: 启动新线程时,Java虚拟机将为该线程创建一个新的Java堆栈。如前所述,Java堆栈将线程的状态存储在离散的帧中。Java虚拟机仅直接在Java堆栈上执行两项

  • 我已经在Java和C中找到了这个问题的几个实现,但我还没有找到一个使用JavaScript的示例。这是一个相当常见的技术面试问题: 在2n空间中对堆栈进行排序。(仅使用2个堆栈对堆栈进行排序)

  • 本文向大家介绍Java中的堆栈和堆内存之间的区别,包括了Java中的堆栈和堆内存之间的区别的使用技巧和注意事项,需要的朋友参考一下 JVM将内存空间分为两部分,一个是堆栈,另一个是堆空间。堆栈空间主要用于存储方法执行的顺序和局部变量。 堆栈始终按照LIFO顺序存储块,而堆内存使用动态分配来分配和取消分配内存块。  分配给堆的内存将一直存在,直到发生以下事件之一: 程序终止  无记忆  相反,分配给

  • 问题内容: Java内存空间(Perm空间,Space Stack,堆空间)之间有什么区别? JVM什么时候使用一个或另一个? 如果我使用Scala / Groovy / etc等,会有区别吗? 问题答案: 只是 堆空间:所有活动对象都分配在这里。 堆栈空间:在方法调用或变量实例化中存储对对象的引用以获取变量。 烫发空间:存储已加载的类信息 例如: 执行完上述行之后,内存状态将是这样。 堆:存储“