ความคืบหน้า
เอกสารประกอบและตัวอย่างสำหรับการใช้แถบความคืบหน้าแบบกำหนดเองของ Bootstrap ที่มีการรองรับแถบแบบเรียงซ้อน พื้นหลังแบบเคลื่อนไหว และป้ายข้อความ
มันทำงานอย่างไร
ส่วนประกอบความคืบหน้าถูกสร้างขึ้นด้วยองค์ประกอบ HTML สององค์ประกอบ, CSS บางตัวเพื่อกำหนดความกว้าง และแอตทริบิวต์บางอย่าง เราไม่ได้ใช้องค์ประกอบHTML5<progress>
เพื่อให้แน่ใจว่าคุณสามารถซ้อนแถบความคืบหน้า ทำให้เคลื่อนไหว และวางป้ายกำกับข้อความไว้ได้
- เราใช้
.progress
เป็นตัวตัดเพื่อระบุค่าสูงสุดของแถบความคืบหน้า - เราใช้ด้านใน
.progress-bar
เพื่อบ่งบอกถึงความคืบหน้าจนถึงตอนนี้ - ต้องการ สไตล์
.progress-bar
อินไลน์ คลาสยูทิลิตี้ หรือ CSS ที่กำหนดเองเพื่อกำหนดความกว้าง - นอกจาก
.progress-bar
นี้ยังต้องมีบางrole
และaria
แอตทริบิวต์เพื่อให้สามารถเข้าถึงได้ ซึ่งรวมถึงชื่อที่สามารถเข้าถึงได้ (โดยใช้aria-label
,aria-labelledby
หรือคล้ายกัน)
นำทั้งหมดมารวมกัน และคุณมีตัวอย่างต่อไปนี้
<div class="progress">
<div class="progress-bar" role="progressbar" aria-label="Basic example" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-label="Basic example" style="width: 25%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-label="Basic example" style="width: 50%" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-label="Basic example" style="width: 75%" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-label="Basic example" style="width: 100%" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"></div>
</div>
Bootstrap มี ยูทิลิตี้จำนวน หนึ่งสำหรับการตั้งค่าความกว้าง ขึ้นอยู่กับความต้องการของคุณ สิ่งเหล่านี้อาจช่วยในการกำหนดค่าความคืบหน้าได้อย่างรวดเร็ว
<div class="progress">
<div class="progress-bar w-75" role="progressbar" aria-label="Basic example" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100"></div>
</div>
ป้าย
เพิ่มป้ายกำกับในแถบความคืบหน้าของคุณโดยการวางข้อความภายในไฟล์.progress-bar
.
<div class="progress">
<div class="progress-bar" role="progressbar" aria-label="Example with label" style="width: 25%;" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100">25%</div>
</div>
ส่วนสูง
เราตั้งค่าเฉพาะheight
บน.progress
ดังนั้นหากคุณเปลี่ยนค่านั้น ค่าภายใน.progress-bar
จะปรับขนาดโดยอัตโนมัติตามนั้น
<div class="progress" style="height: 1px;">
<div class="progress-bar" role="progressbar" aria-label="Example 1px high" style="width: 25%;" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<div class="progress" style="height: 20px;">
<div class="progress-bar" role="progressbar" aria-label="Example 20px high" style="width: 25%;" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
</div>
พื้นหลัง
ใช้คลาสยูทิลิตี้พื้นหลังเพื่อเปลี่ยนรูปลักษณ์ของแถบความคืบหน้าแต่ละรายการ
<div class="progress">
<div class="progress-bar bg-success" role="progressbar" aria-label="Success example" style="width: 25%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<div class="progress">
<div class="progress-bar bg-info" role="progressbar" aria-label="Info example" style="width: 50%" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<div class="progress">
<div class="progress-bar bg-warning" role="progressbar" aria-label="Warning example" style="width: 75%" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<div class="progress">
<div class="progress-bar bg-danger" role="progressbar" aria-label="Danger example" style="width: 100%" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"></div>
</div>
ถ่ายทอดความหมายสู่เทคโนโลยีอำนวยความสะดวก
Using color to add meaning only provides a visual indication, which will not be conveyed to users of assistive technologies – such as screen readers. Ensure that information denoted by the color is either obvious from the content itself (e.g. the visible text), or is included through alternative means, such as additional text hidden with the .visually-hidden
class.
Multiple bars
Include multiple progress bars in a progress component if you need.
<div class="progress">
<div class="progress-bar" role="progressbar" aria-label="Segment one" style="width: 15%" aria-valuenow="15" aria-valuemin="0" aria-valuemax="100"></div>
<div class="progress-bar bg-success" role="progressbar" aria-label="Segment two" style="width: 30%" aria-valuenow="30" aria-valuemin="0" aria-valuemax="100"></div>
<div class="progress-bar bg-info" role="progressbar" aria-label="Segment three" style="width: 20%" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100"></div>
</div>
Striped
Add .progress-bar-striped
to any .progress-bar
to apply a stripe via CSS gradient over the progress bar’s background color.
<div class="progress">
<div class="progress-bar progress-bar-striped" role="progressbar" aria-label="Default striped example" style="width: 10%" aria-valuenow="10" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<div class="progress">
<div class="progress-bar progress-bar-striped bg-success" role="progressbar" aria-label="Success striped example" style="width: 25%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<div class="progress">
<div class="progress-bar progress-bar-striped bg-info" role="progressbar" aria-label="Info striped example" style="width: 50%" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<div class="progress">
<div class="progress-bar progress-bar-striped bg-warning" role="progressbar" aria-label="Warning striped example" style="width: 75%" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<div class="progress">
<div class="progress-bar progress-bar-striped bg-danger" role="progressbar" aria-label="Danger striped example" style="width: 100%" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"></div>
</div>
Animated stripes
The striped gradient can also be animated. Add .progress-bar-animated
to .progress-bar
to animate the stripes right to left via CSS3 animations.
<div class="progress">
<div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-label="Animated striped example" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100" style="width: 75%"></div>
</div>
CSS
Variables
Added in v5.2.0As part of Bootstrap’s evolving CSS variables approach, progress bars now use local CSS variables on .progress
for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too.
--#{$prefix}progress-height: #{$progress-height};
@include rfs($progress-font-size, --#{$prefix}progress-font-size);
--#{$prefix}progress-bg: #{$progress-bg};
--#{$prefix}progress-border-radius: #{$progress-border-radius};
--#{$prefix}progress-box-shadow: #{$progress-box-shadow};
--#{$prefix}progress-bar-color: #{$progress-bar-color};
--#{$prefix}progress-bar-bg: #{$progress-bar-bg};
--#{$prefix}progress-bar-transition: #{$progress-bar-transition};
Sass variables
$progress-height: 1rem;
$progress-font-size: $font-size-base * .75;
$progress-bg: $gray-200;
$progress-border-radius: $border-radius;
$progress-box-shadow: $box-shadow-inset;
$progress-bar-color: $white;
$progress-bar-bg: $primary;
$progress-bar-animation-timing: 1s linear infinite;
$progress-bar-transition: width .6s ease;
Keyframes
Used for creating the CSS animations for .progress-bar-animated
. Included in scss/_progress-bar.scss
.
@if $enable-transitions {
@keyframes progress-bar-stripes {
0% { background-position-x: $progress-height; }
}
}