HTML Academy · درس

عنصر picture للتوجيه الفني

بدّل الصور كاملةً استنادًا إلى ظروف إطار العرض

الدرس 3 من 414 خطوة

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

مشكلة التوجيه الفني

يعني التوجيه الفني تقديم اقتصاص مختلف جذريًا للصورة أو تكوين مختلف لها بحسب حجم الشاشة:

  • صورة أفقية كاملة على سطح المكتب
  • اقتصاص رأسي مقرّب على الأجهزة المحمولة
  • لا يمكن حل هذه المشكلة باستخدام srcset + sizes وحدهما

عنصر picture

يغلّف عنصر <picture> عدة عناصر <source> وعنصرًا احتياطيًا من نوع <img>:

<picture>
  <source media="(min-width: 800px)" srcset="wide-crop.jpg">
  <source media="(min-width: 500px)" srcset="medium-crop.jpg">
  <img src="narrow-crop.jpg" alt="Team photo">
</picture>
<!-- Browser picks the first matching source -->
<!-- img is required as fallback and carries the alt attribute -->

آلية عمل picture

يقيّم المتصفح عناصر <source> بالترتيب، من الأعلى إلى الأسفل:

  1. تحقّق من شرط media في عنصر <source> الأول — إذا انطبق الشرط، فاستخدم تلك الصورة
  2. تحقّق من عنصر <source> الثاني — إذا انطبق الشرط، فاستخدم تلك الصورة
  3. انتقل إلى عنصر <img> كخيار افتراضي

يظل عنصر <img> يعرض الصورة المختارة ويحمل النص alt.

تبديل تنسيق الصور باستخدام picture

يمكن أيضًا لعنصر <picture> اختيار تنسيقات الصور استنادًا إلى دعم المتصفح:

<picture>
  <!-- AVIF: best compression, newest support -->
  <source type="image/avif" srcset="photo.avif">
  <!-- WebP: great compression, wide support -->
  <source type="image/webp" srcset="photo.webp">
  <!-- JPEG: universal fallback -->
  <img src="photo.jpg" alt="Mountain photo">
</picture>
<!-- Browser picks the first format it supports -->

الجمع بين التوجيه الفني والتنسيق

يمكنك الجمع بين شروط الوسائط واختيار التنسيق:

<picture>
  <source
    media="(min-width: 800px)"
    type="image/webp"
    srcset="hero-wide.webp"
  >
  <source
    media="(min-width: 800px)"
    srcset="hero-wide.jpg"
  >
  <source type="image/webp" srcset="hero-mobile.webp">
  <img src="hero-mobile.jpg" alt="Hero image" width="1200" height="600">
</picture>

عنصر img مطلوب

عنصر <img> داخل <picture> ليس اختياريًا:

  • يعرض الصورة المختارة
  • يحمل النص alt لإتاحة الوصول
  • يحمل السمات width وheight وloading وغيرها
  • من دونه لن يُعرض أي شيء

سمة media للعنصر source

تقبل السمة media استعلامات الوسائط القياسية في CSS:

<picture>
  <source media="(orientation: landscape)" srcset="landscape.jpg">
  <source media="(orientation: portrait)" srcset="portrait.jpg">
  <img src="portrait.jpg" alt="Scene">
</picture>

<!-- Other media features work too: -->
<!-- (prefers-color-scheme: dark) -->
<!-- (min-resolution: 2dppx) -->
<!-- (max-width: 600px) -->

استخدام source وsrcset للاختيار المتجاوب

اجمع بين التوجيه الفني وsrcset للتحكم الكامل:

<picture>
  <!-- Desktop: wide hero, multiple resolutions -->
  <source
    media="(min-width: 1024px)"
    srcset="hero-1024.jpg 1024w, hero-2048.jpg 2048w"
    sizes="100vw"
  >
  <!-- Mobile: portrait crop -->
  <img
    srcset="hero-mobile-400.jpg 400w, hero-mobile-800.jpg 800w"
    sizes="100vw"
    src="hero-mobile-400.jpg"
    alt="Conference keynote speaker on stage"
  >
</picture>

صور الوضع الداكن

قدّم صورًا مختلفة لمستخدمي الوضع الداكن:

<picture>
  <source
    media="(prefers-color-scheme: dark)"
    srcset="logo-dark.svg"
  >
  <img src="logo-light.svg" alt="Company logo" width="120" height="40">
</picture>
<!-- Users with dark mode OS setting see logo-dark.svg -->
<!-- Everyone else sees logo-light.svg -->

picture في مقابل CSS background-image

متى تستخدم <picture> في مقابل خلفيات CSS:

  • صور المحتوى — استخدم <picture>: لأنها تحتاج إلى نص بديل وتُعد جزءًا من محتوى المستند
  • الصور الزخرفية — استخدم CSS background-image مع استعلامات الوسائط
  • الصور المهمة لمحركات البحث — استخدم <picture> دائمًا: إذ تفهرس برامج الزحف عناصر img

ملاحظة حول إمكانية الوصول

تنتمي السمة alt دائمًا إلى عنصر <img>، وليس إلى عنصر <source>:

<picture>
  <source srcset="photo.webp" type="image/webp">
  <!-- alt goes on img, not source: -->
  <img src="photo.jpg" alt="Sunset over the Pacific Ocean">
</picture>
<!-- screen readers read img's alt, whichever source was selected -->

التحميل الكسول باستخدام picture

أضف التحميل الكسول إلى عنصر <img> داخل <picture>:

<picture>
  <source srcset="photo.webp" type="image/webp">
  <img
    src="photo.jpg"
    alt="Gallery photo"
    loading="lazy"
    width="800"
    height="600"
  >
</picture>

تحقق سريع

ما العنصر الذي يجب أن يكون موجودًا دائمًا في كتلة picture ويحمل السمة alt؟

مراجعة: عنصر picture

التوجيه الفني باستخدام picture:

  • يغلّف <picture> عناصر <source> وعنصرًا من نوع <img>
  • يختار المتصفح أول عنصر <source> ينطبق عليه الشرط
  • استخدم media لشروط إطار العرض، وtype لاختيار التنسيق
  • عنصر <img> مطلوب — فهو يعرض الصورة ويحمل النص البديل
  • اجمعه مع srcset + sizes للتحكم الكامل في الاستجابة
البدء مجانًا

تعلم HTML مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
40
الدروس
159

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

هل درس «عنصر picture للتوجيه الفني» مجاني؟

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

ماذا ستتعلم في «عنصر picture للتوجيه الفني»؟

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

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

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

كم من الوقت يستغرق درس «عنصر picture للتوجيه الفني»؟

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

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

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

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

  1. عنصر img وsrc وalt وwidth وheight
  2. الصور المتجاوبة باستخدام srcset وsizes
  3. عنصر picture للتوجيه الفني
  4. figure وfigcaption
← العودة إلى HTML Academy