0Pricing
HTML Academy · درس

عنصرا progress وmeter

عرض قيم الإنجاز والقياس باستخدام HTML الأصلي

عنصرا progress وmeter درس مجاني في HTML Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في HTML Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة HTML Academy 4 دروس في المجموع.

عنصر progress

يمثل العنصر <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، يعرض progress حركة غير محددة:

<!-- 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>

تحريك progress باستخدام JavaScript

حدّث قيمة progress ديناميكيًا:

<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> قياسًا عدديًا ضمن نطاق معروف:

<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

يحتوي meter على عدة سمات لتحديد النطاقات المثلى ونطاقات التحذير:

<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>

حالات ألوان meter

تلوّن المتصفحات meter وفقًا للقيم المنخفضة والعالية والمثلى:

<!-- 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>

استخدام meter لعرض استخدام القرص

من حالات الاستخدام التقليدية لـ 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>

قوة كلمة المرور باستخدام meter

استخدم meter لعرض قوة كلمة المرور:

<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>

تنسيق progress وmeter

تنسيق مخصص لـ progress وmeter:

/* 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; }

إتاحة الوصول إلى progress

أضف سمات 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 وmeter

التمييز الأساسي:

  • <progress> — إكمال مهمة بمرور الوقت؛ تزداد القيمة باتجاه max؛ ويمكن أن تكون غير محددة
  • <meter> — قياس عددي ثابت؛ القيمة معروفة مسبقًا؛ وله نطاقات منخفضة وعالية ومثلى

متى تستخدم كلًا منهما

دليل حالات الاستخدام:

  • progress — رفع الملفات، ومعالج إكمال النماذج، وشريط التحميل
  • meter — استخدام القرص، ومؤشر الوقود، والدرجة الائتمانية، ومستوى البطارية، ومدى ملاءمة نتائج البحث

تحقق سريع

ما العنصر المناسب لعرض مدى امتلاء محرك الأقراص الثابتة؟

مراجعة: progress وmeter

أساسيات progress وmeter:

  • <progress max value> — إكمال مهمة؛ ويكون غير محدد من دون value
  • <meter min max low high optimum value> — قياس ثابت
  • يلوّن المتصفح meter تلقائيًا بناءً على موضع القيمة المثلى
  • أضف aria-valuenow/min/max لدعم قارئات الشاشة

الأسئلة الشائعة

هل درس «عنصرا progress وmeter» مجاني؟

نعم — نص درس «عنصرا progress وmeter» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة HTML Academy، انتقل إلى CoddyKit PRO. تتضمن دورة HTML Academy 4 دروس في المجموع.

ماذا ستتعلم في «عنصرا progress وmeter»؟

عرض قيم الإنجاز والقياس باستخدام HTML الأصلي تتمرن على HTML Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ HTML Academy؟

لا تُشترط خبرة سابقة. HTML Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «عنصرا progress وmeter»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس HTML Academy هذا؟

نعم. كل درس في HTML Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. aside للمحتوى التكميلي
  2. مراجعة figure وfigcaption
  3. details وsummary لأداة الكشف
  4. عنصرا progress وmeter
← العودة إلى HTML Academy