7.11.2 带进度值的进度条

7.11.2 带进度值的进度条

前面介绍的进度条使用<span class="sr-only">10%</span>来设置进度值,但由于为该<span>元素设置了.sr-only 样式,这就表明该<span>元素仅对屏幕阅读器有效。如果需要直接在进度条上显示进度值,则删除<span>元素上class属性的.sr-only属性值即可,也就是直接使用<span>元素即可,不要在<span>元素上添加.sr-only作为class属性的属性值。
另外需要处理的一种情形是,当进度值很小,进度条的宽度太小而不足以显示出进度值时,这样效果就会很丑陋,此时可考虑为进度条增加min-width属性,保证进度条的宽度足以显示进度值。

示例程序

例如如下代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<!DOCTYPE html>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title> 带进度值的进度条 </title>
<link rel="stylesheet" href="../bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="../bootstrap/css/bootstrap-theme.min.css">
</head>

<body>
<div class="container">
<!-- 进度条的轨道 -->
<div class="progress">
<!-- 进度条 -->
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="30" aria-valuemin="0"
aria-valuemax="100" style="width:30%;">
<span>30%</span>
</div>
</div>
<div class="progress">
<div class="progress-bar progress-bar-info" role="progressbar" aria-valuenow="50" aria-valuemin="0"
aria-valuemax="100" style="width:50%;">
<span>50%</span>
</div>
</div>
<!-- 下面两个进度条设置了min-width属性,以保证足够显示进度值 -->
<div class="progress">
<div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar" aria-valuenow="0"
aria-valuemin="0" aria-valuemax="100" style="width:0%;min-width:2em">
<span>0%</span>
</div>
</div>
<div class="progress">
<div class="progress-bar progress-bar-info progress-bar-striped" role="progressbar" aria-valuenow="2"
aria-valuemin="0" aria-valuemax="100" style="width:1%;min-width:2em">
<span>1%</span>
</div>
</div>
<!-- 对照 0%的进度不足以包裹0%这个提示文字-->
<div class="progress">
<div class="progress-bar progress-bar-info progress-bar-striped" role="progressbar" aria-valuenow="2"
aria-valuemin="0" aria-valuemax="100" style="width:0%;">
<span>0%</span>
</div>
</div>
<!-- 对照1%的进度不足以包裹1%这个提示文字 -->
<div class="progress">
<div class="progress-bar progress-bar-info progress-bar-striped" role="progressbar" aria-valuenow="2"
aria-valuemin="0" aria-valuemax="100" style="width:1%;">
<span>1%</span>
</div>
</div>
</div>
<script type="text/javascript" src="../jquery-3.1.1.js"></script>
<script type="text/javascript" src="../bootstrap/js/bootstrap.min.js"></script>
</body>

</html>

上面的进度条都使用了<span>元素来显示进度值,由于这些<span>元素并未应用.sr-only样式,因此它们会直接在浏览器上显示出来。
上面第5,第6个进度条的进度值较小,进度条的宽度不足以包裹整个进度值,因此为这些进度条设置了min-width属性来保证进度条的宽度足够保存进度值。