انتقل إلى محتوى الدرس
الدرس 19
دورة لغة HTML

عناصر Picture وSVG في لغة HTMLHTML Picture and SVG Elements

احترف عناصر Picture و SVG في HTML: التوجيه الفني للصور المتجاوبة، استعلامات media، تبديل الصيغ AVIF و WebP، رسم أشكال SVG وتنسيقها بالـ CSS والتعقيم الأمني ضد ثغرات XSS.
أقسام الدرس
7
الأمثلة
7
اللغة
العربية
تاريخ النشر
غير محدد
المشاهدات
0
محتوى الدرس
في هذا الدرس 7تصفّح المواضيع
يُمثل تقديم صورة واحدة فائقة الأبعاد والدقة لكافة الزوار هدراً كبيراً لبيانات مستخدمي الهواتف الذكية وبطئاً في التحميل. يقدم معيار HTML5 عنصر الحاوية المتجاوبة <picture>، وهو عنصر ذكي يتيح تزويد المتصفح بعدة خيارات بديلة للملفات ليختار الأنسب منها تلقائياً وفقاً لحجم الشاشة أو سرعة الاتصال.
HTML
<picture>
  <source media="(min-width: 800px)"
          srcset="images/examples/workspace-wide.webp">
  <source media="(min-width: 480px)"
          srcset="images/examples/workspace-tablet.webp">
  <img src="images/examples/workspace-mobile.webp"
       alt="Modern developer workstation">
</picture>
داخل عنصر <picture>، يضع المطور واحداً أو أكثر من وسوم المصادر <source> متبوعة إلزامياً بوسم الصورة العادي <img> في النهاية. يقوم المتصفح بفحص المصادر ثم يعرض الملف المطابق مباشرة داخل صندوق <img> الموحد دون أي تكرار في شجرة DOM.
تستقبل خاصية الوسائط media داخل وسم <source> استعلامات وسائط CSS (Media Queries)، وهو ما يحقق مبدأ التوجيه الفني (Art Direction). يتيح هذا التوجيه عرض لقطات مقتصة بذكاء تناسب الهواتف الطولية، بينما يعرض لقطات أفقية بانورامية للشاشات العريضة.
مخطط شلال تقييم المتصفح لعنصر picture والتبديل الذكي للصور
HTML
<picture>
  <!-- Wide panoramic studio view for larger screens -->
  <source media="(min-width: 640px)"
          srcset="images/examples/workspace-wide.webp">
  <!-- Focused square laptop crop for mobile -->
  <img src="images/examples/workspace-mobile.webp"
       alt="Developer desk workstation">
</picture>
بخلاف حيل خلفيات CSS، يضمن استخدام <picture> مع خاصية media عدم قيام هواتف الزوار بتنزيل صورة الحواسيب الضخمة في الخلفية نهائياً. يؤدي ذلك إلى توفير باقة الإنترنت للزائر وتسريع مؤشر الرسم المحتوي الأكبر (LCP) بصورة قياسية على شبكات الجوال.
تتيح خاصية نوع الوسائط type ميزة الترقية التدريجية وتبديل صيغ الصور بذكاء. تمكنك هذه الخاصية من تقديم صيغ الجيل القادم الحديثة مثل AVIF وWebP للمتصفحات المتقدمة مع توفير بديل تلقائي بصيغة JPEG أو PNG للمتصفحات القديمة دون أي تعارض.
HTML
<picture>
  <!-- Ultra-efficient AVIF for modern engines -->
  <source type="image/avif"
          srcset="images/examples/coastal-sunset.avif">
  <!-- High-compression WebP fallback -->
  <source type="image/webp"
          srcset="images/examples/coastal-sunset.webp">
  <!-- Universal legacy JPEG fallback -->
  <img src="images/examples/coastal-sunset.jpg"
       alt="Sunset over coastal cliffs" width="640" height="360">
</picture>
إذا كان المتصفح لا يدعم فك ترميز AVIF، يتخطاه بهدوء ويفحص وسم WebP التالي. فإن كان قديماً لا يدعم WebP أيضاً، يعرض تلقائياً صورة JPEG الاحتياطية المذكورة في وسم <img>. يحقق هذا التدرج أعلى توفير في بايتات الشبكة مع ضمان عمل الموقع بنسبة 100% على كافة الأجهزة.
يمكن إدراج رسوميات SVG في مستندات HTML بطريقتين هندسيتين مختلفتين تماماً: الطريقة الأولى هي تضمين ملف خارجي عبر وسم الصور المعتاد <img>، والطريقة الثانية هي التضمين المباشر لشفرة SVG داخل شفرة صفحة HTML نفسها (Inline SVG Markup).
المعيار والمقارنة تضمين SVG المباشر (Inline SVG) استدعاء خارجي عبر وسم img
طلبات الشبكة HTTP 0 طلبات إضافية (مدمج في كود الصفحة) طلب HTTP منفصل لتنزيل ملف SVG
التحكم والتلوين عبر CSS تحكم كامل بالألوان والحدود والتأثيرات محدود جداً ولا يمكن تلوين العناصر الداخلية
كاش المتصفح Browser Cache يُعاد تنزيله مع كود الصفحة دائماً يُخزن مؤقتاً في الكاش ويسهل إعادة استخدامه
العزل الأمني والتنفيذ يعمل في سياق الصفحة ويتطلب تعقيماً أمنياً معزول في صندوق آمن ويعطل السكربتات تلقائياً
HTML
<svg width="120" height="40" viewBox="0 0 120 40">
  <rect width="120" height="40" rx="8"
        fill="#7750b2"/>
  <text x="60" y="25" text-anchor="middle"
        fill="#ffffff" font-size="14">
    CloseTag
  </text>
</svg>
يتضمن معيار SVG وسوماً متجهة بديهية ومرنة لبناء الأشكال الهندسية الأساسية: وسم <rect> لرسم المستطيلات والمربعات، ووسم <circle> لرسم الدوائر، ووسم <line> لرسم الخطوط المستقيمة، ووسم <path> لرسم المنحنيات المعقدة والمسارات الحرة.
HTML
<svg width="200" height="100" viewBox="0 0 200 100">
  <!-- Rounded rectangle -->
  <rect x="10" y="10" width="80" height="80"
        rx="8" fill="#2563eb"/>
  <!-- Circle with center and radius -->
  <circle cx="150" cy="50" r="40"
          fill="#0f766e"/>
</svg>
تحدد خاصية فضاء العرض viewBox نظام الإحداثيات الداخلي ونسبة العرض إلى الارتفاع للرسم المتجه. بفضل هذه الخاصية، يتمدد رسم SVG أو ينكمش بمرونة تامة ليتطابق مع اتساع أي حاوية على الصفحة دون الحاجة لإعادة كتابة الأبعاد يدوياً.
نظراً لأن وسم <svg> المباشر لا يمتلك خاصية alt بطبيعته، فإن تحقيق معايير الإتاحة يعتمد على العناصر الوصفية الداخلية. يتم ذلك بوضع عنصري <title> و <desc> في مطلع كود الرسم مباشرة داخل وسم <svg> لتتعرف قارئات الشاشة على عنوان الشكل ووصفه بدقة.
HTML
<svg width="48" height="48" viewBox="0 0 24 24">
  <title>Shield Protection</title>
  <desc>An active security shield</desc>
  <path d="M12 2L3 7v6c0 5 9 9 9 9s9-4 9-9V7l-9-5z"
        fill="currentColor"/>
</svg>
يُمثل استخدام القيمة الذكية fill="currentColor" في أشكال SVG ممارسة احترافية كبرى؛ حيث تجعل الرسم يرث لونه تلقائياً من لون النص المحيط به في CSS (Color Inheritance). يتيح ذلك توافقاً فورياً مع الوضعين الفاتح والداكن دون الحاجة لكتابة كود إضافي.
نظراً لأن ملفات SVG مبنية على لغة توصيف XML، فإن الملفات غير الموثوقة قد تخفي بداخلها أوامر برمجية تنفيذية ومشغلات أحداث تلقائية ضارة. يؤدي تضمين ملفات SVG المرفوعة من مستخدمين مجهولين مباشرة في شجرة المستند إلى ثغرات أمنية خطيرة من نوع البرمجة العابرة للمواقع (Cross-Site Scripting - XSS).
مخطط خط أنابيب تعقيم رسوميات SVG والوقاية من هجمات XSS
HTML
<!-- Safe external SVG rendered via inert <img> -->
<img src="/images/examples/shield-icon.svg"
     alt="Sanitized security shield emblem"
     width="96" height="96">
<!-- Inert img mode isolates untrusted SVG files -->
يُوفر استدعاء ملفات SVG عبر وسم الصور القياسي <img> حماية أمنية تلقائية؛ حيث يُعطل المتصفح تشغيل أي أكواد جافاسكريبت أو استدعاءات خارجية داخل بيئة الصورة تماماً. وفي حال كان التضمين المباشر Inline ضرورياً، يجب تعقيم كود SVG وتجريده من السكربتات الخبيثة عبر مكتبات موثوقة مثل DOMPurify.
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

ملخص الدرس: أتقنت في هذا الدرس دور عنصر picture في التوجيه الفني للصور المتجاوبة، والتبديل التلقائي لصيغ الصور الحديثة، وتضمين رسوميات SVG المتجهة وتنسيقها وإتاحتها وتعقيمها أمنياً. الخطوة التالية تنطلق بنا إلى الفصل السابع عشر لدراسة جداول HTML وهيكلة البيانات المنظمة.

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…

ابنِ لغتك البرمجية

المصطلحات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 Art Direction التوجيه الفني للصور
ممارسة في التصميم المتجاوب لتقديم نسخ مقتصة بذكاء من الصورة تناسب أبعاد شاشات الهواتف والحواسيب بشكل فريد.
للمراجعة
02 Inline SVG رسوميات SVG المدمجة
تضمين شفرة SVG البرمجية مباشرة في مستند HTML مما يتيح التحكم الكامل بالألوان عبر CSS والبرمجة.
للمراجعة
03 viewBox Attribute خاصية فضاء العرض viewBox
خاصية تحدد نظام الإحداثيات الداخلي للرسم المتجه وتسمح بتكبيره وتصغيره تلقائياً ليلائم أي شاشة.
للمراجعة
04 SVG Sanitization تعقيم ملفات SVG أمنياً
عملية فحص وتنقية ملفات SVG البرمجية وحذف وسوم السكربتات ومعالجات الأحداث لمنع ثغرات الاختراق XSS.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات2

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 2 مفهومةأول بطاقة، أول خطوة
01 SVG رسوميات متجهة قابلة للتمدد
Scalable Vector Graphics
معيار رسمي معتمد لوصف الرسوم المتجهة ثنائية الأبعاد بدقة لا نهائية.
للمراجعة
02 XSS البرمجة النصية العابرة للمواقع
Cross-Site Scripting
ثغرة أمنية يتم فيها حقن نصوص برمجية خبيثة داخل صفحات الويب الموثوقة لسرقة بيانات المستخدمين.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/2مهام منجزة
  1. قم ببناء وسم picture يقدم صورة أفقية عريضة لشاشات الحواسيب وصورة مقتصة ومكبرة للهواتف المحمولة.

  2. صمم شفرة SVG مدمجة تحتوي على عنصري title وdesc لإتاحة الوصول وتستجيب لتغيير الألوان تلقائياً.

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

10أسئلة 2أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي10 أسئلة تنتظرك
01

ما هو الهدف المعماري الأساسي لعنصر picture في لغة HTML5؟

02

أي عنصر يُعد إلزامياً في نهاية كل وسم picture لعرض الصورة بصرياً في المتصفح؟

03

يشير مفهوم التوجيه الفني Art Direction لتقديم صور مقتصة ومؤطرة بذكاء لتلائم أبعاد كل شاشة بشكل مستقل.

04

كيف يقيم المتصفح وسوم source المتعددة داخل وسم picture؟

05

ما الميزة الكبرى لاستخدام شفرة SVG المباشرة مقارنة باستدعاء ملف خارجي عبر وسم img؟

06

تحدد خاصية viewBox نظام الإحداثيات الداخلي ونسبة الأبعاد لتكبير وتصغير رسوم SVG المتجاوبة.

07

أي عنصر في SVG يُستخدم لرسم المستطيلات والمربعات مع إمكانية تدوير الزوايا؟

08

ما القيمة في CSS التي تتيح لمسار SVG المباشر وراثة لونه تلقائياً من لون النص المحيط؟

09

يُشكل تضمين ملفات SVG المرفوعة من المستخدمين مباشرة دون تعقيم خطراً أمنياً جسيماً من نوع XSS.

10

كيف يوفر تضمين ملف SVG عبر وسم الصور img حماية تلقائية ضد تشغيل الأكواد الخبيثة؟