---
id: w3css-progress-bar
title: "W3CSS Progress Bar"
category: "Programming_Language"
status: "draft"
verification_status: "conceptual"
canonical_id: ""
aliases: ["progress bar", "setInterval progress", "W3.CSS 프로그레스 바"]
duplicate_of: ""
source_trust_level: "B"
confidence_score: 0.87
created_at: 2026-07-04
updated_at: 2026-07-04
review_reason: ""
merge_history: []
tags: ["w3css", "css-framework", "w3schools", "progress-bar"]
raw_sources: ["https://www.w3schools.com/w3css/w3css_progressbar.asp"]
applied_in: []
github_commit: ""
---

# [[W3CSS Progress Bar]]

## 🎯 한 줄 통찰 (One-line insight)
A W3.CSS progress bar is nothing but a plain `<div>` nested inside another `<div>`, with the inner div's inline CSS `width` percentage doing 100% of the "progress" representation — meaning a dynamic/animated progress bar is just `setInterval` incrementing that one CSS property over time, with zero framework-specific progress API. [S1]

## 🧠 핵심 개념 (Core concepts)
- **Two-div structure** — outer div (`w3-light-grey`, the track) contains an inner div (any `w3-color`, the fill) whose `width` percentage IS the progress value. [S1]
- **Labels** — placing text directly inside the inner (colored) div, with `w3-container` for padding and `w3-center` for alignment, turns the fill into a labeled progress bar. [S1]
- **Dynamic progress via `setInterval`** — `setInterval(frame, 10)` repeatedly increments a `width` variable and applies it to the inner div's style until it reaches 100%, then `clearInterval` stops the loop. [S1]
- **Composable styling** — `w3-round` for rounded corners, `w3-padding` for internal spacing, `w3-size` classes for label text size — all standard utility classes apply directly to the progress divs. [S1]

## 📖 세부 내용 (Details)
- Basic static progress bar: `<div class="w3-border"><div class="w3-grey" style="height:24px;width:20%"></div></div>`. [S1]
- Labeled, centered progress bar: `<div class="w3-light-grey"><div class="w3-container w3-green w3-center" style="width:25%">25%</div></div>`. [S1]
- Dynamic JS-driven progress bar: `function move() { var elem = document.getElementById("myBar"); var width = 1; var id = setInterval(frame, 10); function frame() { if (width >= 100) { clearInterval(id); } else { width++; elem.style.width = width + '%'; } } }`. [S1]

## ⚖️ 모순 및 업데이트 (Contradictions & updates)
- 현재까지 발견된 모순 사항 없음 (No contradictions found in available sources).

## 🛠️ 적용 사례 (Applied in summary)
현재 발견된 실제 적용 사례가 없습니다 — setInterval로 width 값을 1%씩 증가시키며 애니메이션 진행 바를 만드는 패턴이 파일 업로드 진행률 표시 등 실전 활용의 대표 기법이다. [S1]

## 💻 코드 패턴 (Code patterns)
A dynamic progress bar driven purely by incrementing a div's width via setInterval (HTML/JS):
```html
<div class="w3-light-grey">
  <div id="myBar" class="w3-container w3-green" style="height:24px;width:1%"></div>
</div>
<button class="w3-button w3-light-grey" onclick="move()">Click Me</button>
<script>
function move() {
  var elem = document.getElementById("myBar");
  var width = 1;
  var id = setInterval(frame, 10);
  function frame() {
    if (width >= 100) {
      clearInterval(id);
    } else {
      width++;
      elem.style.width = width + '%';
    }
  }
}
</script>
```

## ✅ 검증 상태 및 신뢰도
- **상태:** draft
- **검증 단계:** conceptual
- **출처 신뢰도:** B (W3Schools — widely used educational reference, not a primary standards body)
- **신뢰 점수:** 0.87
- **중복 검사 결과:** 신규 생성 (New discovery)

## 🔗 지식 그래프 (Knowledge Graph)
- **상위/루트:** [[W3.CSS Tutorial]]
- **관련 개념:** [[W3CSS Pagination]], [[W3CSS Slideshow]]
- **참조 맥락:** setInterval 기반 동적 UI 패턴 — 슬라이드쇼(Slideshow) 챕터에서 동일 타이머 패턴이 재등장.

## 📚 출처 (Sources)
- [S1] W3Schools — W3.CSS Progress Bars — https://www.w3schools.com/w3css/w3css_progressbar.asp

## 📝 변경 이력 (Change history)
- 2026-07-04: Initial draft synthesized from the W3Schools "W3.CSS Progress Bars" page (Astra wiki-curation, P-Reinforce v3.1 format).
