Twitter Bootstrap:进度条上的居中文本

问题描述 投票:0回答:3

我一直在使用 Twitter 的 bootstrap,我希望进度条上的文本能够在 on bar 上居中,无论其值如何。

下面的链接是我现在拥有的。 我希望所有文本都与最底部的栏对齐。

截图:

progress bar

我已经尽力使用纯CSS,并且尽可能避免使用JS,但如果这是最干净的方法,我愿意接受它。

<div class="progress">
    <div class="bar" style="width: 86%">517/600</div>
</div>
css twitter-bootstrap progress-bar centering
3个回答
204
投票

引导5:(与v4x相同)

<div class="progress position-relative">
    <div class="progress-bar" role="progressbar" style="width: 60%" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100"></div>
    <small class="justify-content-center d-flex position-absolute w-100">60% complete</small>
</div>

带有实用程序类的 Bootstrap 4:(感谢 MaPePeR 的添加)

<div class="progress position-relative">
    <div class="progress-bar" role="progressbar" style="width: 60%" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100"></div>
    <small class="justify-content-center d-flex position-absolute w-100">60% complete</small>
</div>

引导程序3:

Bootstrap 现在支持进度栏中跨度元素内的文本。 Bootstrap 示例中提供的 HTML。 (注意班级

sr-only
已被删除)

HTML:

<div class="progress">
    <div class="progress-bar" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 60%;">
        <span>60% Complete</span>
    </div>
</div>

...但是它只是根据栏本身将文本居中,因此我们需要一些自定义 CSS。

将其粘贴到另一个样式表/下面加载 bootstrap 的 css 的位置:

CSS:

/**
 * Progress bars with centered text
 */

.progress {
    position: relative;
}

.progress span {
    position: absolute;
    display: block;
    width: 100%;
    color: black;
 }

JsBin 文件: http://jsbin.com/IBOwEPog/1/edit


引导程序2:

将其粘贴到另一个样式表/下面加载 Bootstrap CSS 的位置:

/**
 * Progress bars with centered text
 */
.progress {
    position: relative;
}

.progress .bar {
    z-index: 1;
    position: absolute;
}

.progress span {
    position: absolute;
    top: 0;
    z-index: 2;
    color: black; /* Change according to needs */
    text-align: center;
    width: 100%;
}

然后通过在

span
外部添加
.bar
元素将文本添加到进度栏:

<div class="progress">
    <div class="bar" style="width: 50%"></div>
    <span>Add your text here</span>
</div>

JsBin:http://jsbin.com/apufux/2/edit


3
投票

Bootstrap 3答案,如bootstrap示例所示

<div class="progress text-center">
  <div class="progress-bar" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 60%;">
    <span>60% Complete</span>
  </div>
    <span>40% Left</span>
</div>

0
投票

在 Bootstrap 5 中使用变换和绝对定位居中的进度条,此处仅使用 CSS。

您不必在显示进度的文本上应用背景颜色和颜色,但在许多情况下它更具可读性,因为它可以确保进度条在进度条文本的背景中移动时的对比度。也可以使用Aria。

 <div class="progress" style="height: 30px; position: relative;">
            <div class="progress-bar-striped bg-success progress-bar-animated"
                role="progressbar progressbar-striped progressbar-striped-animated" style="width: 80%;"
                aria-valuenow="80" aria-valuemin="0" aria-valuemax="100"></div>
            <span class="progress-text"
                style="font-size:1.2em; position: absolute; width: 100%; text-align: center; left: 0; top: 50%; transform: translateY(-50%);"><span
                    style="background-color:black;color:white;border-radius:4px;">80%</span></span>
        </div>

How the progressbar looks using the sample html

© www.soinside.com 2019 - 2024. All rights reserved.