如何在同一个容器的两个单独的列中并排显示 Bootstrap 4 个进度条?

How can I have Bootstrap 4 progress bars side by side within two separate columns in the same container?

我很难控制原生 Bootstrap 4 个进度条的位置。 Bootstrap 的进度条似乎是基于 Flexbox 的组件,这让我很困惑。 I've included an image of my issue here

在我当前的代码中,我有一个容器,其中有一行,其中包含多个进度条。我想要做的是创建 2 个单独的进度条堆栈。它们应该水平居中,而不是像图像中发生的那样接触。

我尝试了很多不同的方式来玩转 CSS 和我在 HTML 中的排序,包括修改 .progressbar class 为 'flex-direction: row'列但仍然没有。我还尝试在该行中使用两个 2 列来查看是否可行,想法是我将在两列中的每一列中创建单独的进度条堆栈,并且进度条的宽度将被限制在它们所在的列中.

不幸的是,这些进度条的样式与我想要的不同。

目前看来,进度条组件可能是因为它的 Flexbox 性质,不喜欢被限制在一个容器中?此外,使用我当前的代码,"left" 堆栈中的进度条与 "right" 堆栈中的进度条接触(它们之间没有 space),并且它们不是内联的。他们想要堆叠在彼此之上,即使我已经尝试过向左浮动和向右浮动。 Picture of what I'd like to achieve (photoshopped)

这是我当前的HTML:

<section id= "about">
      <h5 class="text-center pb-3">Ready to tackle any challenge. Proven by performance.</h5>
      <div class= "container">
          <div class= "row justify-content-center">
             <div class= "col-sm-12">
               <div class="progress w-25" style="height: 20px">
                  <div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100" style="width: 50%">75%</div>
                </div>
                <div class="progress w-25" style="height: 20px">
                    <div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100" style="width: 50%">75%</div>
                  </div>
                   <div class="progress w-25 float-right" style="height: 20px">
                  <div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100" style="width: 50%">75%</div>
                </div>
          </div>

确实 Bootstrap 4 中的进度条是基于 flexbox 的。但他们通常表现得很好。

您的代码中的各个进度条组件有点混乱。

要在它们之间添加一点间距,您可以使用 mb-* class 这是原生的 Bootstrap 4 class 来添加边距底部。我使用 mb-2 向底部添加 2 个单位的边距。

接下来的主要任务是操纵 Bootstrap 网格以在各个断点处生成所需的外观。我决定在我的例子中使用这个:

第一列:col-12 col-md-6 col-lg-5 offset-lg-1

第二列:col-12 col-md-6 col-lg-5

翻译:在最小的屏幕 (col) 上,两列都将全宽。在中等屏幕 (col-md-*) 上,它们将分成两半(12 个中的 6 个)。在大屏幕上 (col-lg-*) 它们每个只占用 5 个单位(12 个中有 5 个单位)并且在大屏幕上,还会有 1 个单位的偏移量 (offset-lg-1)。换句话说,在大屏幕上,一个单元将留空,其余单元将自动居中。就是这样!

代码如下:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/css/bootstrap.min.css" integrity="sha384-Zug+QiDoJOrZ5t4lssLdxGhVrurbmBWopoEl+M6BdEfwnCJZtKxi1KgxUyJq13dy" crossorigin="anonymous">


<section id="about">
    <h5 class="text-center pb-3">Ready to tackle any challenge. Proven by performance.</h5>
    <div class="container">
        <div class="row">
            <div class="col-12 col-md-6 col-lg-5 offset-lg-1">
                <div class="progress mb-2">
                    <div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100" style="width: 25%">25%</div>
                </div>
                <div class="progress mb-2">
                    <div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100" style="width: 25%">25%</div>
                </div>
                <div class="progress mb-2">
                    <div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100" style="width: 25%">25%</div>
                </div>
            </div>
            <div class="col-12 col-md-6 col-lg-5">
                <div class="progress mb-2">
                    <div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100" style="width: 25%">25%</div>
                </div>
                <div class="progress mb-2">
                    <div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100" style="width: 25%">25%</div>
                </div>
                <div class="progress">
                    <div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100" style="width: 25%">25%</div>
                </div>
            </div>
        </div>
    </div>
</section>