العنصر <img>

من موسوعة حسوب
اذهب إلى: تصفح، ابحث

يُمثِّل العنصر <img> صورةً في المستند.

مثال عن استخدام العنصر <img> لعرض صورة مع تحديد نص بديل لها (عبر الخاصية alt):
<img src="wiki-logo.png" alt="Wiki Hsoub Logo">
مثال عن استخدام العنصر <img> لعرض صورة مع تحديد نص بديل لها (عبر الخاصية alt) داخل العنصر مما يسمح بالنقر على الصورة للانتقال:
<a href="wiki.hsoub.com"><img src="wiki-logo.png" alt="Wiki Hsoub Logo"></a>

بطاقة العنصر

تصنيفات المحتوى عنصر تنظيمي أو عنصر عادي أو عنصر يحتوي وسائط مضمّنة أو عنصر تفاعلي.
المحتوى المسموح لا يوجد، فهذا العنصر فارغ.
الوسم المختصر لمّا كان هذا العنصر فارغًا، فيجب توفير وسم البداية وحذف وسم النهاية.
العناصر الأب أي عنصر يقبل العناصر التضمينية.
واجهة DOM HTMLImageElement

دعم المتصفحات

Chrome Firefox Edge Safari Opera
مدعوم مدعوم مدعوم مدعوم مدعوم
بعض الخاصيات المُضافة حديثًا في HTML5 لا تعمل في جميع المتصفحات.

أضيفت الخاصية srcset في إصدار Chrome 35 و Firefox 32 و Opera 21 و Safari 7.1 وهي مدعومة في Edge.

الخاصيات

يمكن استخدام الخاصيات العامة في هذا العنصر.

align

تحديد محاذاة الصورة بالنسبة للمحتوى المجاور، هذه الخاصية مهملة في HTML 4 وحُذِفَت في HTML5، ويجب استخدام الخاصية float و/أو vertical-align في CSS بدلًا منها، وذكرناها بغرض العلم بها.

alt

تُعرِّف هذه الخاصية نصًا بديلًا يصف الصورة، وسيشاهد المستخدمون هذا النص إن كان رابط URL للصورة غير موجود، أو لم يكن المتصفح يدعم صيغة الصورة، أو لم يكتمل تنزيل الصورة بعد.

لا تعرض المتصفحات الصورة المُشار إليها عبر هذا العنصر دومًا، وهذا ينطبق على المتصفحات غير الرسومية (بما فيها تلك التي يستعملها ممن لديه قصور في النظر)، فإن اختار المستخدم ألّا يعرض الصور أو لم يتمكن المتصفح من عرض الوصرة لأنها غير صالحة أو لا يدعم صيغتها، فسيستبدل المتصفحُ النص البديل الموجود ضمن خاصية alt بالصورة؛ ولهذه الأسباب (ولغيرها) عليك توفير قيمة مفيدة للخاصية alt متى استطعت ذلك.

إذا لم تضع هذه الخاصية بالمطلق فهذا يُشير إلى أنَّ الصورة هي جزءٌ مهمٌ من المحتوى ولا يمكن تعويضها بمحتوى نصي، أما ضبط هذه الخاصية إلى قيمةٍ فارغة (أي alt=""‎) فذلك يشير إلى أنَّ الصورة ليست جزءًا مهمًا من المحتوى، ويمكن للمتصفحات غير الرسومية أن تتجاهلها.

مثال عن استخدام العنصر <img> لعرض صورة مهمة، وذلك بحذف الخاصية alt كليًا:
<img src="im-img.png">
مثال عن استخدام العنصر <img> لعرض صورة غير مهمة، وذلك بإسناد سلسلة نصية فارغة إلى الخاصية alt:
<img src="decoration.png" alt="">

border

تحديد ثخن إطار الصورة، لكن هذه الخاصية أمست مهملة في HTML 4 وحُذِفَت في HTML5، لذا استخدام الخاصية border في CSS بدلًا عنها.

height

تحديد الارتفاع الصافي للصورة بالبكسل. كان يمكن تحديد قيمة هذه الخاصية بالبكسل أو كنسبة مئوية في HTML 4، لكن في HTML5 يجب ضبط هذه القيمة بالبكسل حصرًا.

استخدام الخاصية height لضبط ارتفاع الصورة:
<img src="wiki-logo.png" alt="Wiki Hsoub Logo" height="70">

width

تحديد العرض الصافي للصورة بالبكسل. كان يمكن تحديد قيمة هذه الخاصية بالبكسل أو كنسبة مئوية في HTML 4، لكن في HTML5 يجب ضبط هذه القيمة بالبكسل حصرًا.

استخدام الخاصية width لضبط عرض الصورة:
<img src="wiki-logo.png" alt="Wiki Hsoub Logo" width="70">

hspace

تحديد عدد البكسلات من الفراغ الأبيض لتُضاف على يمين ويسار الصورة. لكن هذه الخاصية أمست مهملةً في HTML 4 وحُذِفَت في HTML5، لذا استخدم الخاصية margin في CSS بدلًا منها.

vspace

تحديد عدد البكسلات من الفراغ الأبيض لتُضاف أعلى وأسفل الصورة. لكن هذه الخاصية أمست مهملةً في HTML 4 وحُذِفَت في HTML5، لذا استخدم الخاصية margin في CSS بدلًا منها.

ismap

خاصية منطقية (Boolean) تُشير إذا كانت الصورة جزءًا من خريطة من طرف الخادوم (server-side map)، فلو كانت كذلك، فستُرسَل الإحداثيات الدقيقة لكل نقرة إلى الخادوم.

يُسمَح باستخدام هذه الخاصية إن كان العنصر <img> موجودًا داخل العنصر له خاصية href صالحة.

longdesc

رابط إلى وصف تفصيلي عن الصورة، القيم المسموحة لهذه الخاصية هي روابط URL أو مُعرِّف id لأحد العناصر الأخرى.

وضع رابط لصفحة دورة تطوير تطبيقات الويب باستخدام لغة PHP في أكاديمية حسوب لشرح الصورة شرحًا وافيًا، وذلك عبر الخاصية longdesc:
<img src="hsoub-academy-php-web-application-development-course.png" 
     alt="دورة تطوير تطبيقات الويب باستخدام لغة PHP" 
     longdesc="https://academy.hsoub.com/learn/php-web-application-development/">

name

تحديد اسم للعنصر، لكن هذه الخاصية مهملة في HTML 4 (وأضيفت إليها لغرض التوافقية مع الإصدارات السابقة) ومحذوفة في HTML5؛ ويجب استخدام الخاصية id بدلًا منها.

sizes

أُضيفت هذه الخاصية في HTML5، وهي تقبل سلسلة نصية فيها قيمة أو أكثر (مفصولة بفاصلة) لمصادر القياسات المختلفة للصور. يجب أن يحتوي كل مصدر على:

  1. عبارة media query، والتي يجب حذفها في آخر عنصر في القائمة.
  2. قيمة لقياس الصورة

قيمة قياس الصورة تُحدِّد ما هو حجم الصورة المراد عرضه، وتستخدم المتصفحات عبارة media query لتحديد أحد مصادر الصورة المُعرَّفة في خاصية srcset، وذلك عندما تقترن تلك المصادر مع مُحدِّدات العرض (w).

يؤثر حجم الصورة المُختارة على الحجم الصافي للصورة (أي الحجم الذي ستُعرَض فيه الصورة إن لم تُطبَّق قواعد CSS عليها).

إذا كانت الخاصية srcset غير موجودة، أو كانت لا تحتوي على أيّة قيمة فيها مُحدِّد العرض w، فلن يكون للخاصية sizes أي أثر.

src

رابط URL للصورة، وهذه الخاصية إجبارية لجميع عناصر <img>.

إذا كان المتصفح يدعم الخاصية srcset، فستُعامَل قيمة الخاصية src على أنها صورة مرشحّة لها معامل الكثافة 1x ما لم تُعرَّف صورة لها نفس معامل الكثافة في خاصية srcset، أو إذا لم تحتوي الخاصية srcset على المُحدِّد w.

srcset

قائمة أو أكثر من السلاسل النصية المفصولة بفاصلة , التي تُشير إلى مجموعة من مصادر الصورة المحتملة لكي يستخدم إحداها المتصفح.

تتألف كل سلسلة نصية من محتويات هذه الخاصية من:

  1. رابط URL لملف الصورة
  2. (اختياريًا) فراغ يتبعه أحد المُحدِّدات الآتية:
    • مُحدِّد العرض الذي هو عدد صحيح موجب يتبعه الحرف w، وستُقسَّم قيمة مُحدِّد العرض على الحجم المصدري المُعطى في خاصية sizes لحساب كثافة البكسلات الفعلية.
    • مُحدِّد كثافة البكسلات التي هو عددٌ عشري موجب يتبعه الحرف x مباشرةً.

إذا لم تعطى قيمة لأحد المُحدِّدَين السابقين فسيُسنَد للمصدر المُحدِّد الافتراضي 1x.

من غير السليم استخدام مُحدِّد العرض مع مُحدِّد الكثافة في نفس خاصية srcset، ومن غير السليم تكرار المُحدِّدات (أي لا يجوز أن يكون لمصدرين مختلفين في نفس الخاصية srcset مُحدِّد الكثافة 2x).

سيختار المتصفح أحد المصادر المذكورة في هذه الخاصية حسب تقديره، مما يعطي المتصفحات مجالًا لاختيار أفضل قياس للصورة اعتمادًا على تفضيلات المستخدم أو لتقييد استخدام التراسل الشبكي.

مثال عن استخدام الخاصية srcset لتحديد صورة بديلة للمتصفحات التي تعمل على أجهزة كثافتها 2x، لاحظ أنَّ قيمة الخاصية src ستُفسَّر على أنها مصدر الصورة ذات الكثافة 1x:
<img src="wiki-logo.png" 
  alt="Wiki Hsoub Logo" 
  srcset="wiki-logo-HD.png 2x">
مثال عن استخدام الخاصية srcset مع الخاصية sizes، وعندما ينطبق شرط media query الذي هو min-width: 600px فسيكون عرض الصورة 400px، عدا ذلك ستكون بعرض 50vw (أي 50% من عرض إطار العرض):
<img src="cover-small.png" 
  alt="Cover Photo" 
  srcset="cover-large.png 1640w,
      cover-small.png 965w"
  sizes="(min-width: 600px) 400px, 50vm">

usemap

تأخذ هذه الخاصية عنوان URL جزئي (يبدأ برمز #) لخريطة <map> مرتبطة بهذا العنصر.

يجدر بالذكر أنَّك لا تستطيع استخدام هذه الخاصية إن كان العنصر <img> موجودًا ضمن عنصر أو <button>.

راجع صفحة العنصر <map> لمثال عن استخدام العنصر <img> مع هذه الخاصية.

ملاحظات الاستخدام

صيغ الصورة المدعومة

لا يعطي معيار HTML قائمةً بصيغ الصورة التي يجب دعمها، لذا يدعم كل متصفح قائمةً مختلفةً من الصيغ، فمثلًا متصفح Firefox يدعم:

وبعض المتصفحات مثل Chrome و Opera تدعم صيغة WebP الجديدة.

التفاعل مع CSS

إنَّ العنصر <img> هو عنصر سيستبدل بمورد خارجي، وليس له خط أساس (baseline)، لذا عندما تستخدم الصور في المحتوى السطري (inline) مع خاصية vertical-align: baseline في CSS فسيوضع أسفل الصورة على خط الأساس للعنصر الحاوي لها.

قد يكون للصورة أبعاد صافية اعتمادًا على نوعها، لكن لبعض أنواع الصورة لا يكون لها أبعاد صافية، مثل صور SVG.

الأخطاء

عندما يحدث خطأ عند محاولة تحميل أو عرض الصورة، فستستدعى الدالة التي تُعالِج الحدث error، وهذا قد يحدث في عدِّة حالات مثل:

  • الخاصية src غير موجودة أو قيمتها فارغة.
  • قيمة رابط URL للصورة هي نفس قيمة رابط URL للصفحة الحالية.
  • الصورة المُحدَّدة معطوبة بطريقةٍ ما تمنع عرضها.
  • البيانات الوصفية للصورة معطوبة بشكلٍ يمنع الحصول على أبعادها، ولم تكن أبعادها مُحدَّدة عبر خاصيات العنصر <img>.
  • صيغة الصورة المُحدَّدة ليست مدعومة في المتصفح.

التنسيق الافتراضي

تعرض أغلبية المتصفحات الصور مع ضبط الخاصية display إلى inline-block:
img {
  display: inline-block;
}

مصادر ومواصفات