bootstrap-4 - 请向我解释此特定示例的 Bootstrap 网格的行为
问题描述
我正在学习 bootstrap ver 4.4.1 并试图理解这段代码
<div class="container">
<div class="row">
<div class="col">1</div> <!--First line-->
<div class="col-sm">2</div> <!--Second line-->
<div class="col">3</div> <!--Third line-->
</div>
</div>
对于 <576px 的断点,我得到 3 个垂直堆叠的行,横跨整个容器。然而,根据引导自动列布局,第一行中的 col 和第三行中的 col 应分别为第一行和第三行形成 col-6,并且应显示第一行 col 的 50% 宽度和 col 第三行的 50% 宽度以及第 2 行中列的整个跨度
以及为什么当我们处于 >= 576px 的小型设备的断点时它在水平位置显示 3 列,有人可以解释我的输出与我预期的偏差。我正在附加原始输出的图像,我的预期输出 .image 在这里
解决方案
简单的答案是:因为它应该是这样工作的。
然而,根据引导自动列布局,第一行中的 col 和第三行中的 col 应分别为第一行和第三行形成 col-6,并且应显示第一行中 col 的 50% 宽度和第三行 col 的 50% 宽度以及第 2 行中列的整个跨度
我不确定我是否正确理解了您,但这不是col
vscol-sm
的工作方式。它们不是它们占据多少宽度的指标,而只是何时应该考虑它们。
col
并且col-sm
都尝试根据flexbox中的其他元素调整它们的大小。但col-sm
仅对断点sm
及更高级别执行此操作。这就是为什么您将三个水平列设置为sm
更高的原因(所有三个列都是 flexbox 的一部分,并且假定宽度和布局相同)。
一旦你进入xs
类col-sm
“失去”它的 flexbox 属性并且不再相对于 flex 元素(第 1 列和第 3 列)调整大小,而是假设宽度为 100%。这反过来又导致其他两列也自动调整到 100%,因为它们不再可以自动布局到 33%。
要获得您想要的结果,您必须使用 实际指定列的宽度col-*
。
<div class="container">
<div class="row">
<div class="col-6">1</div>
<div class="col-12">2</div>
<div class="col-6">3</div>
</div>
</div>
推荐阅读
- python - DevTools failed to load sourcemap 问题:无法加载内容
- java - 在Java中使用带有冒号和动态字符串的正则表达式replaceAll
- php - MYSQL:基于第二张表的加入、计数和排名
- django - Recaptcha v3 是否需要后端实现?
- codenameone - EncodedImage create(String i) 解释
- node.js - AWS ECS nodejs 应用程序使用 Logspout 将日志级别传播到 PaperTrail
- python - 尝试写入 BigQuery 时,Apache Beam 中没有属性“TableReference”
- macros - 正确编写具有命名符号的宏
- python - python中的咳嗽识别
- angular - 根据表单中的选择更改占位符