0Pricing
HTML Academy · บทเรียน

องค์ประกอบ progress และ meter

แสดงค่าความคืบหน้าและค่าการวัดด้วย HTML แบบเนทีฟ

องค์ประกอบ progress และ meter เป็นบทเรียน HTML Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน HTML Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส HTML Academy มีบทเรียนทั้งหมด 4 บทเรียน

องค์ประกอบแสดงความคืบหน้า

องค์ประกอบ <progress> ใช้แทนการทำงานที่เสร็จสมบูรณ์:

<label for="upload">File upload progress:</label>
<progress id="upload" max="100" value="72">72%</progress>
<!-- max: total amount of work (default: 1) -->
<!-- value: amount of work done -->
<!-- Content between tags: fallback for old browsers -->

ความคืบหน้าแบบไม่ทราบค่า

หากไม่มี value ความคืบหน้าจะแสดงภาพเคลื่อนไหวที่ไม่ระบุค่าที่แน่นอน:

<!-- Indeterminate: value not set -->
<progress id="loading">Loading...</progress>
<!-- Browser shows a cycling animation (no value known) -->

<!-- Set value when progress is known: -->
<script>
document.getElementById('loading').value = 45;
// Now shows 45% complete (with max=1: 0.45 = 45%)
</script>

สร้างภาพเคลื่อนไหวให้ความคืบหน้าด้วย JavaScript

อัปเดตความคืบหน้าแบบไดนามิก:

<progress id="task" max="100" value="0"></progress>
<span id="pct">0%</span>

<script>
let progress = 0;
const bar = document.getElementById('task');
const pct = document.getElementById('pct');

const interval = setInterval(() => {
  progress += 10;
  bar.value = progress;
  pct.textContent = progress + '%';
  if (progress >= 100) clearInterval(interval);
}, 500);
</script>

องค์ประกอบมิเตอร์

องค์ประกอบ <meter> ใช้แสดงการวัดค่าเชิงสเกลภายในช่วงที่ทราบค่า:

<meter min="0" max="100" value="72">72 out of 100</meter>
<!-- Unlike progress (task completion), meter shows a static measurement:
  - Disk usage
  - Password strength
  - Score or rating
  - Fuel level
-->

แอตทริบิวต์ของมิเตอร์

มิเตอร์มีแอตทริบิวต์หลายรายการสำหรับกำหนดช่วงค่าที่เหมาะสมและช่วงเตือน:

<meter
  min="0"      <!-- minimum possible value -->
  max="100"   <!-- maximum possible value -->
  low="30"    <!-- threshold: below this = low -->
  high="70"   <!-- threshold: above this = high -->
  optimum="50" <!-- where the optimal value lies -->
  value="85"
>85/100</meter>

สถานะสีของมิเตอร์

เบราว์เซอร์จะกำหนดสีให้มิเตอร์ตามค่า low/high/optimum:

<!-- optimum is in the low range: low values are good (e.g., error count) -->
<meter min="0" max="100" low="30" high="70" optimum="0" value="10">
  10 errors  <!-- green: value is in the good zone -->
</meter>

<!-- optimum is in the high range: high values are good (e.g., score) -->
<meter min="0" max="100" low="40" high="80" optimum="100" value="55">
  55 points  <!-- yellow: between low and high -->
</meter>

การใช้มิเตอร์กับพื้นที่ดิสก์

กรณีใช้งานมิเตอร์แบบคลาสสิก: การใช้พื้นที่ดิสก์หรือหน่วยความจำ:

<label for="disk">Disk usage:</label>
<meter
  id="disk"
  min="0"
  max="500"
  low="400"
  high="450"
  optimum="0"
  value="420"
>420 GB of 500 GB used</meter>
<p>420 GB of 500 GB used (84%)</p>

แสดงความแข็งแรงของรหัสผ่านด้วยมิเตอร์

ใช้มิเตอร์เพื่อแสดง strength ของรหัสผ่าน:

<label for="pwd">Password</label>
<input type="password" id="pwd">
<label for="strength">Strength:</label>
<meter id="strength" min="0" max="4" low="1" high="3" optimum="4" value="0"></meter>

<script>
document.getElementById('pwd').addEventListener('input', function() {
  const strength = calculateStrength(this.value); // 0-4
  document.getElementById('strength').value = strength;
});
</script>

การกำหนดรูปแบบให้ความคืบหน้าและมิเตอร์

การกำหนดรูปแบบแบบกำหนดเองสำหรับความคืบหน้าและมิเตอร์:

/* Basic progress styling */
progress {
  appearance: none;
  width: 100%;
  height: 8px;
  border-radius: 4px;
  background: #e2e8f0;
  border: none;
}

progress::-webkit-progress-bar { background: #e2e8f0; }
progress::-webkit-progress-value { background: #0070f3; }
progress::-moz-progress-bar { background: #0070f3; }

การเข้าถึงได้ของความคืบหน้า

เพิ่มแอตทริบิวต์ ARIA เพื่อให้โปรแกรมอ่านหน้าจอรองรับได้ดียิ่งขึ้น:

<label for="upload">Upload progress</label>
<progress
  id="upload"
  max="100"
  value="65"
  aria-valuenow="65"
  aria-valuemin="0"
  aria-valuemax="100"
  aria-label="File upload: 65% complete"
>65%</progress>

สรุปความแตกต่างระหว่างความคืบหน้ากับมิเตอร์

ความแตกต่างที่สำคัญ:

  • <progress> — การทำงานที่เสร็จสมบูรณ์เมื่อเวลาผ่านไป ค่า value จะเพิ่มขึ้นจนเข้าใกล้ max และสามารถไม่ระบุค่าได้
  • <meter> — การวัดค่าเชิงสเกลแบบคงที่ โดยทราบค่า value อยู่แล้ว และมีโซน low/high/optimum

ควรใช้แต่ละองค์ประกอบเมื่อใด

แนวทางตามกรณีใช้งาน:

  • ความคืบหน้า — การอัปโหลดไฟล์ ตัวช่วยกรอกแบบฟอร์มจนเสร็จ และแถบ bar แสดงการโหลด
  • มิเตอร์ — การใช้พื้นที่ดิสก์ มาตรวัดน้ำมัน คะแนนเครดิต ระดับแบตเตอรี่ และความเกี่ยวข้องของผลการค้นหา

ตรวจสอบอย่างรวดเร็ว

ควรใช้องค์ประกอบใดเพื่อแสดงว่าฮาร์ดไดรฟ์มีข้อมูลเต็มเพียงใด

สรุปทบทวน: ความคืบหน้าและมิเตอร์

สาระสำคัญของความคืบหน้าและมิเตอร์:

  • <progress max value> — การทำงานที่เสร็จสมบูรณ์ หากไม่มี value จะไม่ระบุค่าความคืบหน้า
  • <meter min max low high optimum value> — การวัดค่าแบบคงที่
  • เบราว์เซอร์จะกำหนดสีให้มิเตอร์โดยอัตโนมัติตามตำแหน่งของ optimum
  • เพิ่ม aria-valuenow/min/max เพื่อให้โปรแกรมอ่านหน้าจอรองรับได้

คำถามที่พบบ่อย

บทเรียน “องค์ประกอบ progress และ meter” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “องค์ประกอบ progress และ meter” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส HTML Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส HTML Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “องค์ประกอบ progress และ meter”

แสดงค่าความคืบหน้าและค่าการวัดด้วย HTML แบบเนทีฟ คุณปฏิบัติ HTML Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน HTML Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน HTML Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “องค์ประกอบ progress และ meter” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน HTML Academy นี้ได้ไหม

ได้ บทเรียน HTML Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. aside: เนื้อหาเสริม
  2. figure และ figcaption ทบทวนอีกครั้ง
  3. details และ summary: วิดเจ็ตแสดงรายละเอียด
  4. องค์ประกอบ progress และ meter
← กลับไปที่ HTML Academy