Bootstrap 4方格

2023-12-05

我想用 Bootstrap 4 创建一个响应式的正方形网格,为此,我正在做这样的事情(一行):

<div class="container">
    <div class="row">
        <div class="col"></div>
        <div class="col"></div>
        <div class="col"></div>
        <div class="col"></div>
        <div class="col"></div>
    </div>
</div>

我正在设置col类具有以下规则:

.col {
    padding-top: 100%;
}

但这只会创建一行,每一列的高度都是视口的高度。

这个解决方案以前可以工作,但我认为它破坏了 Bootstrap 4 Flexbox。

有任何想法吗?


padding-bottom: 100%

...应用等于父级的填充值width。父级宽度为.rows 宽度。如果您有5个要素,则需要申请padding-bottom: 20%。如果他们是 4,你需要padding-bottom: 25%, etc...

并且,请记住,如果您希望列能够响应式换行,则需要进行调整padding-bottom每种情况的值。

一种更简单的方法是将方形物品放入cols。这样它们将始终是相对于当前列宽度的正方形:

.square {
  padding-bottom: 100%;
}
.orange {background-color: orange;}
.orangered {background-color: orangered;}
.gold {background-color: gold;}
.darkorange {background-color: darkorange;}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<div class="container">
    <div class="row no-gutters">
        <div class="col"><div class="square orange"></div></div>
        <div class="col"><div class="square orangered"></div></div>
        <div class="col"><div class="square gold"></div></div>
        <div class="col"><div class="square darkorange"></div></div>
        <div class="col"><div class="square orangered"></div></div>
    </div>
</div>

现在,您可以安全地将响应类添加到列中,相对于当前列宽度,正方形将保持正方形。


  • Note我还添加了no-gutters上课到row删除col左/右填充值。
  • Change container to container-fluid如果您希望容器具有完整的页面宽度。

Bonus: 如何将内容放入预先确定大小的组件中:
上述解决方案给您留下了下一个问题:正方形的大小仅取决于填充值。如果你添加任何流量内容,它就会变得更大。解决方案是将内容放在文档流之外,如下所示:

.square {
  padding-bottom: 100%;
  position: relative;
  height: 0;
}

.square>div {
  position: absolute;
  height: 100%;
  overflow-y: auto;
  padding: 1rem;
}

.orange {
  background-color: orange;
}

.orangered {
  background-color: orangered;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<div class="container">
  <div class="row no-gutters">
    <div class="col">
      <div class="square orange">
        <div>
          <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dictum non consectetur a erat nam at. Ultricies tristique nulla aliquet enim tortor at. In egestas erat imperdiet sed euismod. Placerat orci nulla pellentesque dignissim enim sit. Viverra ipsum nunc aliquet bibendum enim facilisis gravida neque. Felis eget nunc lobortis mattis aliquam faucibus. Aliquet porttitor lacus luctus accumsan. Amet risus nullam eget felis eget nunc lobortis mattis. Tortor consequat id porta nibh venenatis cras sed.
          <p>Suspendisse sed nisi lacus sed viverra tellus in. Tellus cras adipiscing enim eu. Mattis molestie a iaculis at erat pellentesque adipiscing commodo. Tellus orci ac auctor augue mauris augue neque gravida in. Metus vulputate eu scelerisque felis imperdiet proin fermentum leo. Et pharetra pharetra massa massa ultricies. Facilisis sed odio morbi quis. Felis eget velit aliquet sagittis id. Volutpat lacus laoreet non curabitur gravida arcu ac tortor dignissim. Facilisis leo vel fringilla est. Quam adipiscing vitae proin sagittis. Mi tempus imperdiet nulla malesuada. Eget arcu dictum varius duis. In eu mi bibendum neque egestas congue quisque egestas. Ut tristique et egestas quis ipsum suspendisse ultrices. Morbi quis commodo odio aenean sed adipiscing diam donec adipiscing. Aliquam faucibus purus in massa tempor nec. Amet luctus venenatis lectus magna fringilla.
          <p>Est ullamcorper eget nulla facilisi etiam dignissim. Risus nec feugiat in fermentum posuere urna nec tincidunt praesent. Pellentesque elit eget gravida cum sociis. Aliquam faucibus purus in massa tempor nec. Nisl vel pretium lectus quam id leo in vitae. Non consectetur a erat nam at lectus urna. Porttitor massa id neque aliquam vestibulum morbi. Non sodales neque sodales ut etiam sit amet nisl purus. Leo vel orci porta non pulvinar neque laoreet. Nisl nunc mi ipsum faucibus. Non consectetur a erat nam at lectus. Ac turpis egestas sed tempus urna et pharetra pharetra. Vitae proin sagittis nisl rhoncus mattis rhoncus urna. Ipsum faucibus vitae aliquet nec ullamcorper sit. Egestas congue quisque egestas diam in. Sagittis eu volutpat odio facilisis mauris sit. Dui vivamus arcu felis bibendum ut tristique.
        </div>
      </div>
    </div>
    <div class="col">
      <div class="square orangered">
        <div>
          <p>Tristique senectus et netus et malesuada fames. Semper feugiat nibh sed pulvinar proin gravida. Risus in hendrerit gravida rutrum quisque non. Elit ut aliquam purus sit amet luctus. Porttitor eget dolor morbi non arcu risus quis varius quam. Aliquam eleifend mi in nulla posuere. Venenatis tellus in metus vulputate. Lacinia at quis risus sed vulputate odio. Nisl nisi scelerisque eu ultrices. Ornare aenean euismod elementum nisi quis eleifend quam adipiscing vitae. Id cursus metus aliquam eleifend mi. Ac feugiat sed lectus vestibulum. Lobortis elementum nibh tellus molestie nunc non blandit massa enim. Bibendum neque egestas congue quisque egestas diam in arcu. Mauris in aliquam sem fringilla. Praesent tristique magna sit amet purus gravida quis blandit.
          <p>Felis eget nunc lobortis mattis aliquam. Ullamcorper dignissim cras tincidunt lobortis feugiat vivamus. Diam quis enim lobortis scelerisque fermentum dui. At ultrices mi tempus imperdiet nulla malesuada. Amet volutpat consequat mauris nunc congue. Sit amet mattis vulputate enim nulla aliquet. Diam ut venenatis tellus in metus vulputate eu scelerisque. Quam elementum pulvinar etiam non quam. Id interdum velit laoreet id donec ultrices. Sit amet est placerat in egestas erat imperdiet sed. Ullamcorper a lacus vestibulum sed arcu non odio euismod. Tristique senectus et netus et. Quis viverra nibh cras pulvinar mattis nunc. Ornare aenean euismod elementum nisi quis eleifend quam adipiscing. Sagittis purus sit amet volutpat consequat mauris nunc congue nisi. Sed odio morbi quis commodo. Sed viverra tellus in hac habitasse platea dictumst vestibulum. Sagittis vitae et leo duis ut diam quam nulla porttitor.
        </div>
      </div>
    </div>
  </div>
</div>

请注意,您应该只有一个立即数div每个中的子项(内容包装器).square为了这个工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Bootstrap 4方格 的相关文章

随机推荐

  • KSoap2 和 KvmSerialized - 如何发送复杂的对象,如 Stringarrays

    我想将一个复杂的对象从我的 Ksoap 客户端发送到我的 Web 服务 它是我的类别类别的一个对象 该代码基于本教程的示例 http seesharpgears blogspot de 2010 10 ksoap android web s
  • 如何在Hive中获取数组中的前n个元素

    我使用 split 函数在 Hive 中创建一个数组 如何从数组中获取前 n 个元素 并且我想遍历子数组 代码示例 select col1 from table where split col2 0 5 0 5 看起来像 python 风格
  • 如何找到符号的完全限定名称空间?

    如果我有一个符号 其名称空间是别名 例如 q w 我如何找到它的实际名称空间 例如actual namespace w 我知道resolve会给我完全限定的 var 但我不知道如何获取 var 的命名空间 我能做的最好的事情就是 defn
  • MATLAB 中的矩阵运算

    我正在尝试简化我的代码 但遇到了一个小问题 让 v 1 2 3 a1 4 5 6 a2 7 8 9 A a1 a2 我的目标是计算 u v a1 v a2 仅使用v一度 这可能吗 是的 你可以使用bsxfun 例如 u bsxfun tim
  • `use std::io::Result as IOResult;` 比 `use std::io;` 仅仅引用 Rust 中的 `io::Result` 更高效吗?

    在学习 Rust 的过程中 我看到了人们导入库的多种方式 例如std io Result 例如 use std io Result as IOResult and pub type IOResult
  • R 中的表情符号 [UTF-8 编码]

    我正在尝试对 R 进行表情符号分析 我存储了一些带有表情符号的推文 这是我要分析的推文之一 gt tweetn2 1 Programme du week end xed xa0 xbd xed xb2 x83 xed xa0 xbc xed
  • Rails 迁移抱怨使用回形针的未定义方法“附件”

    Lemmie 在开头说我对 Rails 还很陌生 我们的应用程序使用回形针 3 2 4 来管理附件 像往常一样 我生成了一个类似于以下内容的迁移 class AddAttachmentPhotoToPhpfoxUsers lt Active
  • 是否有必要在 C# 中显式删除事件处理程序

    我有一堂课提供一些活动 该类是全局声明的 但不是在该全局声明上实例化的 它是根据需要在需要它的方法中实例化的 每次方法中需要该类时 都会对其进行实例化并注册事件处理程序 在方法超出范围之前是否有必要显式删除事件处理程序 当方法超出范围时 类
  • 为 Windows 上的 Lua 构建 lua 文件系统

    我对构建 makefile 没有任何线索 我正在尝试在 Windows 7 x86 中构建 luafilesystem 以便与 Lua for Windows 一起使用 我已经在互联网上搜索了教程 但我就是无法弄清楚 我在开发人员命令提示符
  • 如何使用 UIImagePickerController 显示所有相机控件?

    使用 UIImagePickerController 时 我无法显示相机控件 具体来说 我需要能够在慢动作 视频 照片 方形和全景之间进行选择 我使用的代码的基本部分是 UIImagePickerController pc UIImageP
  • 从 C# 修改任何窗口的不透明度

    是否可以从 C 修改所有打开的窗口的不透明度 我在 google 上搜索了最小化窗口 我发现这可以通过 pInvoke 调用实现 它甚至起作用了 同样 是否可以从 C 更改所有打开的窗口的不透明度 另外 我不喜欢 MFC 的东西 还有什么工
  • 测量执行单个指令的时间

    有没有办法使用 C 或汇编程序甚至 C 来准确测量执行 ADD 指令所需的时间 是的 有点 但它并不平凡 并且产生的结果是almost毫无意义 至少在最现代的处理器上是这样 在相对较慢的处理器上 例如 从英特尔系列中的原始奔腾处理器开始 在
  • 将 tf.keras.utils.image_dataset_from_directory 与标签列表一起使用

    我有目录示例中相应数量的文件的标签列表 1 2 3 train ds tf keras utils image dataset from directory train path label mode int labels train la
  • raw 文件夹中文本文件中的除号

    我的 android 的 txt 文件中有 当这个除法符号显示在 Android 设备上时 我看到 更糟糕的是 我的笔记本电脑键盘上没有除号 我使用了维基百科上的标志 猜猜我该如何解决这个问题 您应该对任何符号 例如此处的除号 使用 Uni
  • 如何使用jquery设置多个CSS显示属性值

    好吧 这让我有点抓狂 我正在使用 jQuery css 方法try设置类所需的多个 Flexbox 显示属性 问题是 它只保留最后一个 关于如何使用 jQuery 执行此操作的任何想法 或者这是不可能的 到目前为止 这是我尝试过的 depa
  • 如何指定CSS类的顺序?

    我对 CSS 和class属性 我一直认为 我在属性值中指定多个类的顺序是有意义的 后面的类可以 应该覆盖前面的定义 但这似乎不起作用 这是一个例子
  • 如何分配给匹配分支内的匹配表达式中使用的变量?

    我正在尝试实现一个通用功能join 它可以在任何迭代器的迭代器上工作 我的借用检查器有问题match里面的表达式next 方法实施 这是我的代码的简化版本 pub struct Join i where I Iterator I Item
  • C# - Excel 2013 如何更改图表样式

    我正在尝试更改 excel 2013 中图表的样式 但它只更改颜色 Range chartRange ChartObjects wsCharts ChartObjects workSheet ChartObjects Type Missin
  • 以编程方式将 id 添加到 R.id

    我正在创建一个EditText然后我尝试在单元测试中引用该对象 添加新内容的最佳方式是什么id to R id对于这个动态创建的对象 以便我稍后可以通过findViewById 在单元测试中 您可以使用 xml 资源文件设置稍后将在 R i
  • Bootstrap 4方格

    我想用 Bootstrap 4 创建一个响应式的正方形网格 为此 我正在做这样的事情 一行 div class container div class row div class col div div class col div div