Bootstrap4 - 行未满 space

Bootstrap4 - row does not take full space

为什么右侧没有占据我屏幕的整个宽度?

我知道这可以做得更好,例如两行,但这样我就能够重现问题。

我实际上在 class .col-md-6 上左右移动,它在截图中显示正确,但在我的 Firefox 和 Chromium 机器上显示错误。

如果出现这种情况,我也已经尝试删除缓存。

感谢任何提示。

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Test</title>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
</head>

<body>
  <div class="row">
    <div class="col-12">
      <div id="left_1">left:
        <div id="left_2" class="input-group">
          <div class="row">
            <div class="col-4">
              <div class="form-group">
                <label for="left_col_1">Left col 1</label>
                <input type="text" class="form-control" id="left_col_1">
              </div>
            </div>
            <div class="col-3">
              <div class="form-group">
                <label for="left_col_2">Left col 2</label>
                <input type="number" class="form-control" id="left_col_2">
              </div>
            </div>
            <div class="col-3">
              <div class="form-group">
                <label for="left_col_3">Left col 3</label>
                <input type="text" class="form-control" id="left_col_3">
              </div>
            </div>
            <div class="col-2 input-group-append float-right">
              <button id="left_button" class="btn btn-danger" type="button">X</button>
            </div>
          </div>
        </div>
      </div>
      <button id="left_button_2" type="button" class="btn btn-outline-primary">Add left</button>
    </div>
    <div class="col-12">
      <div id="right_1">right:
        <div id="right_2" class="input-group">
          <div class="row">
            <div class="col-10">
              <div class="form-group">
                <label for="right_col_1">Right col 1</label>
                <input type="text" class="form-control" id="right_col_1">
              </div>
            </div>
            <div class="col-2 input-group-append float-right">
              <button id="right_button" class="btn btn-danger" type="button">X</button></div>
          </div>
        </div>
      </div>
      <button id="right_button_2" type="button" class="btn btn-outline-primary">Add right</button>
    </div>
  </div>

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</body>

</html>

编辑:.input-group 和 .input-group-append 似乎有问题。在我删除所有这些之后,它按预期工作。

我认为,这是因为您将 flexbox 放入 flexbox(“input-group” class 默认样式为 flex,“row” class 也是)。如果我们只删除“display:flex;” “input-group”中的 属性 工作正常。事实上,请注意,左边的行并没有占据整个宽度——它几乎是 100%,但并不相等。 “行”class 默认没有任何宽度 属性,所以宽度计数可能以某种方式基于子元素?

我不认为这是最好的解释,但这是非常有趣的行为,如果有人能更好地解决这个问题并充分理解这个 flexboxes 是怎么回事,那就太好了。

编辑:

还将“input-group”class 样式设置为“flex-direction: 列;”帮助。之后,“行”显示为宽度为 100% 的一列 - 如果没有,它仅被视为 flexbox 行中的潜在列之一。