الفرق بين المراجعتين لصفحة: «HTML/img»
ط استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}' |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
(6 مراجعات متوسطة بواسطة مستخدم واحد آخر غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:العنصر <code><img></code>}}</noinclude> | <noinclude>{{DISPLAYTITLE:العنصر <code><img></code>}}</noinclude> | ||
يُمثِّل العنصر <code><img></code> صورةً في المستند. | يُمثِّل العنصر <code><img></code> صورةً في المستند. | ||
مثال عن استخدام العنصر <code><img></code> لعرض صورة مع تحديد نص بديل لها (عبر الخاصية <code>[[HTML/img#alt|alt]]</code>):<syntaxhighlight lang="html"> | |||
<img src="wiki-logo.png" alt="Wiki Hsoub Logo"> | |||
</syntaxhighlight>مثال عن استخدام العنصر <code><img></code> لعرض صورة مع تحديد نص بديل لها (عبر الخاصية <code>alt</code>) داخل العنصر مما يسمح بالنقر على الصورة للانتقال:<syntaxhighlight lang="html"> | |||
<a href="wiki.hsoub.com"><img src="wiki-logo.png" alt="Wiki Hsoub Logo"></a> | |||
</syntaxhighlight> | </syntaxhighlight> | ||
{{Course|course=frontend}} | |||
__TOC__ | |||
== بطاقة العنصر == | |||
{| class="wikitable" style="width: 100%;" | {| class="wikitable" style="width: 100%;" | ||
|- | |- | ||
! scope="row" style="width: 20%;" | تصنيفات المحتوى | ! scope="row" style="width: 20%;" |تصنيفات المحتوى | ||
| عنصر تنظيمي أو عنصر عادي أو عنصر يحتوي وسائط مضمّنة أو عنصر تفاعلي. | |عنصر تنظيمي أو عنصر عادي أو عنصر يحتوي وسائط مضمّنة أو عنصر تفاعلي. | ||
|- | |- | ||
! scope="row" | المحتوى المسموح | ! scope="row" |المحتوى المسموح | ||
| لا يوجد، فهذا العنصر فارغ. | |لا يوجد، فهذا العنصر فارغ. | ||
|- | |- | ||
! scope="row" | الوسم المختصر | ! scope="row" |الوسم المختصر | ||
| لمّا كان هذا العنصر فارغًا، فيجب توفير وسم البداية وحذف وسم النهاية. | |لمّا كان هذا العنصر فارغًا، فيجب توفير وسم البداية وحذف وسم النهاية. | ||
|- | |- | ||
! scope="row" | العناصر الأب | ! scope="row" |العناصر الأب | ||
| أي عنصر يقبل العناصر التضمينية. | |أي عنصر يقبل العناصر التضمينية. | ||
|- | |- | ||
! scope="row" | واجهة DOM | ! scope="row" |واجهة DOM | ||
| <code>HTMLImageElement</code> | |<code>HTMLImageElement</code> | ||
|} | |} | ||
== دعم المتصفحات == | ==دعم المتصفحات== | ||
{| class="wikitable" style="width: 50%;" | {| class="wikitable" style="width: 50%;" | ||
!|Chrome | |||
!Firefox | |||
!Edge | |||
!Safari | |||
!Opera | |||
|- | |- | ||
|مدعوم | |مدعوم | ||
سطر 38: | سطر 40: | ||
|مدعوم | |مدعوم | ||
|مدعوم | |مدعوم | ||
|} | |}بعض الخاصيات المُضافة حديثًا في HTML5 لا تعمل في جميع المتصفحات. | ||
بعض الخاصيات المُضافة حديثًا في HTML5 لا تعمل في جميع المتصفحات. | |||
أضيفت الخاصية <code>srcset</code> في إصدار Chrome 35 و Firefox 32 و Opera 21 و Safari 7.1 وهي مدعومة في Edge. | أضيفت الخاصية <code>srcset</code> في إصدار Chrome 35 و Firefox 32 و Opera 21 و Safari 7.1 وهي مدعومة في Edge. | ||
==الخاصيات== | |||
== الخاصيات == | |||
يمكن استخدام [[HTML/Global Attributes|الخاصيات العامة]] في هذا العنصر. | يمكن استخدام [[HTML/Global Attributes|الخاصيات العامة]] في هذا العنصر. | ||
===<code>align</code>=== | |||
=== <code>align</code> === | تحديد محاذاة الصورة بالنسبة للمحتوى المجاور، هذه الخاصية مهملة في HTML 4 وحُذِفَت في HTML5، ويجب استخدام الخاصية <code>[[CSS/float|float]]</code> و/أو <code>[[CSS/vertical-align|vertical-align]]</code> في [[CSS]] بدلًا منها، وذكرناها بغرض العلم بها. | ||
تحديد محاذاة الصورة بالنسبة للمحتوى المجاور، هذه الخاصية مهملة في HTML 4 وحُذِفَت في HTML5، ويجب استخدام الخاصية <code>float</code> و/أو <code>vertical-align</code> في CSS بدلًا منها، وذكرناها بغرض العلم بها. | ===<code>alt</code>=== | ||
=== <code>alt</code> === | |||
تُعرِّف هذه الخاصية نصًا بديلًا يصف الصورة، وسيشاهد المستخدمون هذا النص إن كان رابط URL للصورة غير موجود، أو لم يكن المتصفح يدعم صيغة الصورة، أو لم يكتمل تنزيل الصورة بعد. | تُعرِّف هذه الخاصية نصًا بديلًا يصف الصورة، وسيشاهد المستخدمون هذا النص إن كان رابط URL للصورة غير موجود، أو لم يكن المتصفح يدعم صيغة الصورة، أو لم يكتمل تنزيل الصورة بعد. | ||
سطر 56: | سطر 54: | ||
إذا لم تضع هذه الخاصية بالمطلق فهذا يُشير إلى أنَّ الصورة هي جزءٌ مهمٌ من المحتوى ولا يمكن تعويضها بمحتوى نصي، أما ضبط هذه الخاصية إلى قيمةٍ فارغة (أي <code>alt=""</code>) فذلك يشير إلى أنَّ الصورة ليست جزءًا مهمًا من المحتوى، ويمكن للمتصفحات غير الرسومية أن تتجاهلها. | إذا لم تضع هذه الخاصية بالمطلق فهذا يُشير إلى أنَّ الصورة هي جزءٌ مهمٌ من المحتوى ولا يمكن تعويضها بمحتوى نصي، أما ضبط هذه الخاصية إلى قيمةٍ فارغة (أي <code>alt=""</code>) فذلك يشير إلى أنَّ الصورة ليست جزءًا مهمًا من المحتوى، ويمكن للمتصفحات غير الرسومية أن تتجاهلها. | ||
مثال عن استخدام العنصر <code><img></code> لعرض صورة مهمة، وذلك بحذف الخاصية <code>alt</code> كليًا:<syntaxhighlight lang="html"> | مثال عن استخدام العنصر <code><img></code> لعرض صورة مهمة، وذلك بحذف الخاصية <code>alt</code> كليًا:<syntaxhighlight lang="html"> | ||
<img src="im-img.png"> | <img src="im-img.png"> | ||
</syntaxhighlight> | </syntaxhighlight>مثال عن استخدام العنصر <code><img></code> لعرض صورة غير مهمة، وذلك بإسناد سلسلة نصية فارغة إلى الخاصية <code>alt</code>:<syntaxhighlight lang="html"> | ||
مثال عن استخدام العنصر <code><img></code> لعرض صورة غير مهمة، وذلك بإسناد سلسلة نصية فارغة إلى الخاصية <code>alt</code>:<syntaxhighlight lang="html"> | |||
<img src="decoration.png" alt=""> | <img src="decoration.png" alt=""> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== <code>border</code> === | ===<code>border</code>=== | ||
تحديد ثخن إطار الصورة، لكن هذه الخاصية أمست مهملة في HTML 4 وحُذِفَت في HTML5، لذا استخدام الخاصية <code>border</code> في CSS بدلًا عنها. | تحديد ثخن إطار الصورة، لكن هذه الخاصية أمست مهملة في HTML 4 وحُذِفَت في HTML5، لذا استخدام الخاصية <code>border</code> في CSS بدلًا عنها. | ||
===<code>height</code>=== | |||
=== <code>height</code> === | |||
تحديد الارتفاع الصافي للصورة بالبكسل. كان يمكن تحديد قيمة هذه الخاصية بالبكسل أو كنسبة مئوية في HTML 4، لكن في HTML5 يجب ضبط هذه القيمة بالبكسل حصرًا. | تحديد الارتفاع الصافي للصورة بالبكسل. كان يمكن تحديد قيمة هذه الخاصية بالبكسل أو كنسبة مئوية في HTML 4، لكن في HTML5 يجب ضبط هذه القيمة بالبكسل حصرًا. | ||
استخدام الخاصية <code>height</code> لضبط ارتفاع الصورة:<syntaxhighlight lang="html"> | استخدام الخاصية <code>height</code> لضبط ارتفاع الصورة:<syntaxhighlight lang="html"> | ||
<img src="logo | <img src="wiki-logo.png" alt="Wiki Hsoub Logo" height="70"> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== <code>width</code> === | ===<code>width</code>=== | ||
تحديد العرض الصافي للصورة بالبكسل. كان يمكن تحديد قيمة هذه الخاصية بالبكسل أو كنسبة مئوية في HTML 4، لكن في HTML5 يجب ضبط هذه القيمة بالبكسل حصرًا. | تحديد العرض الصافي للصورة بالبكسل. كان يمكن تحديد قيمة هذه الخاصية بالبكسل أو كنسبة مئوية في HTML 4، لكن في HTML5 يجب ضبط هذه القيمة بالبكسل حصرًا. | ||
استخدام الخاصية <code>width</code> لضبط عرض الصورة:<syntaxhighlight lang="html"> | استخدام الخاصية <code>width</code> لضبط عرض الصورة:<syntaxhighlight lang="html"> | ||
<img src="logo | <img src="wiki-logo.png" alt="Wiki Hsoub Logo" width="70"> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===<code>hspace</code>=== | |||
=== <code>hspace</code> === | تحديد عدد البكسلات من الفراغ الأبيض لتُضاف على يمين ويسار الصورة. لكن هذه الخاصية أمست مهملةً في HTML 4 وحُذِفَت في HTML5، لذا استخدم الخاصية <code>[[CSS/margin|margin]]</code> في CSS بدلًا منها. | ||
تحديد عدد البكسلات من الفراغ الأبيض لتُضاف على يمين ويسار الصورة. لكن هذه الخاصية أمست مهملةً في HTML 4 وحُذِفَت في HTML5، لذا استخدم الخاصية <code>margin</code> في CSS بدلًا منها. | ===<code>vspace</code>=== | ||
تحديد عدد البكسلات من الفراغ الأبيض لتُضاف أعلى وأسفل الصورة. لكن هذه الخاصية أمست مهملةً في HTML 4 وحُذِفَت في HTML5، لذا استخدم الخاصية <code>[[CSS/margin|margin]]</code> في CSS بدلًا منها. | |||
=== <code>vspace</code> === | ===<code>ismap</code>=== | ||
تحديد عدد البكسلات من الفراغ الأبيض لتُضاف أعلى وأسفل الصورة. لكن هذه الخاصية أمست مهملةً في HTML 4 وحُذِفَت في HTML5، لذا استخدم الخاصية <code>margin</code> في CSS بدلًا منها. | |||
=== <code>ismap</code> === | |||
خاصية منطقية (Boolean) تُشير إذا كانت الصورة جزءًا من خريطة من طرف الخادوم (server-side map)، فلو كانت كذلك، فستُرسَل الإحداثيات الدقيقة لكل نقرة إلى الخادوم. | خاصية منطقية (Boolean) تُشير إذا كانت الصورة جزءًا من خريطة من طرف الخادوم (server-side map)، فلو كانت كذلك، فستُرسَل الإحداثيات الدقيقة لكل نقرة إلى الخادوم. | ||
يُسمَح باستخدام هذه الخاصية إن كان العنصر <code><img></code> موجودًا داخل العنصر | يُسمَح باستخدام هذه الخاصية إن كان العنصر <code><img></code> موجودًا داخل العنصر له خاصية <code>href</code> صالحة. | ||
===<code>longdesc</code>=== | |||
=== <code>longdesc</code> === | |||
رابط إلى وصف تفصيلي عن الصورة، القيم المسموحة لهذه الخاصية هي روابط URL أو مُعرِّف <code>id</code> لأحد العناصر الأخرى. | رابط إلى وصف تفصيلي عن الصورة، القيم المسموحة لهذه الخاصية هي روابط URL أو مُعرِّف <code>id</code> لأحد العناصر الأخرى. | ||
وضع رابط لصفحة [https://academy.hsoub.com/learn/php-web-application-development/ دورة تطوير تطبيقات الويب باستخدام لغة PHP في أكاديمية حسوب] لشرح الصورة شرحًا وافيًا، وذلك عبر الخاصية <code>longdesc</code>:<syntaxhighlight lang="html"> | |||
وضع رابط | <img src="hsoub-academy-php-web-application-development-course.png" | ||
<img src=" | alt="دورة تطوير تطبيقات الويب باستخدام لغة PHP" | ||
longdesc="https://academy.hsoub.com/learn/php-web-application-development/"> | |||
</syntaxhighlight> | </syntaxhighlight> | ||
===<code>name</code>=== | |||
=== <code>name</code> === | |||
تحديد اسم للعنصر، لكن هذه الخاصية مهملة في HTML 4 (وأضيفت إليها لغرض التوافقية مع الإصدارات السابقة) ومحذوفة في HTML5؛ ويجب استخدام الخاصية <code>id</code> بدلًا منها. | تحديد اسم للعنصر، لكن هذه الخاصية مهملة في HTML 4 (وأضيفت إليها لغرض التوافقية مع الإصدارات السابقة) ومحذوفة في HTML5؛ ويجب استخدام الخاصية <code>id</code> بدلًا منها. | ||
===<code>sizes</code>=== | |||
=== <code>sizes</code> === | |||
أُضيفت هذه الخاصية في HTML5، وهي تقبل سلسلة نصية فيها قيمة أو أكثر (مفصولة بفاصلة) لمصادر القياسات المختلفة للصور. يجب أن يحتوي كل مصدر على: | أُضيفت هذه الخاصية في HTML5، وهي تقبل سلسلة نصية فيها قيمة أو أكثر (مفصولة بفاصلة) لمصادر القياسات المختلفة للصور. يجب أن يحتوي كل مصدر على: | ||
# عبارة media query، والتي يجب حذفها في آخر عنصر في القائمة. | #عبارة media query، والتي يجب حذفها في آخر عنصر في القائمة. | ||
# قيمة لقياس الصورة | #قيمة لقياس الصورة | ||
قيمة قياس الصورة تُحدِّد ما هو حجم الصورة المراد عرضه، وتستخدم المتصفحات عبارة media query لتحديد أحد مصادر الصورة المُعرَّفة في خاصية <code>srcset</code>، وذلك عندما تقترن تلك المصادر مع مُحدِّدات العرض (<code>w</code>). | قيمة قياس الصورة تُحدِّد ما هو حجم الصورة المراد عرضه، وتستخدم المتصفحات عبارة media query لتحديد أحد مصادر الصورة المُعرَّفة في خاصية <code>srcset</code>، وذلك عندما تقترن تلك المصادر مع مُحدِّدات العرض (<code>w</code>). | ||
سطر 115: | سطر 102: | ||
إذا كانت الخاصية <code>srcset</code> غير موجودة، أو كانت لا تحتوي على أيّة قيمة فيها مُحدِّد العرض <code>w</code>، فلن يكون للخاصية <code>sizes</code> أي أثر. | إذا كانت الخاصية <code>srcset</code> غير موجودة، أو كانت لا تحتوي على أيّة قيمة فيها مُحدِّد العرض <code>w</code>، فلن يكون للخاصية <code>sizes</code> أي أثر. | ||
===<code>src</code>=== | |||
=== <code>src</code> === | |||
رابط URL للصورة، وهذه الخاصية إجبارية لجميع عناصر <code><img></code>. | رابط URL للصورة، وهذه الخاصية إجبارية لجميع عناصر <code><img></code>. | ||
إذا كان المتصفح يدعم الخاصية <code>srcset</code>، فستُعامَل قيمة الخاصية <code>src</code> على أنها صورة مرشحّة لها معامل الكثافة <code>1x</code> ما لم تُعرَّف صورة لها نفس معامل الكثافة في خاصية <code>srcset</code>، أو إذا لم تحتوي الخاصية <code>srcset</code> على المُحدِّد <code>w</code>. | إذا كان المتصفح يدعم الخاصية <code>srcset</code>، فستُعامَل قيمة الخاصية <code>src</code> على أنها صورة مرشحّة لها معامل الكثافة <code>1x</code> ما لم تُعرَّف صورة لها نفس معامل الكثافة في خاصية <code>srcset</code>، أو إذا لم تحتوي الخاصية <code>srcset</code> على المُحدِّد <code>w</code>. | ||
===<code>srcset</code>=== | |||
=== <code>srcset</code> === | |||
قائمة أو أكثر من السلاسل النصية المفصولة بفاصلة <code>,</code> التي تُشير إلى مجموعة من مصادر الصورة المحتملة لكي يستخدم إحداها المتصفح. | قائمة أو أكثر من السلاسل النصية المفصولة بفاصلة <code>,</code> التي تُشير إلى مجموعة من مصادر الصورة المحتملة لكي يستخدم إحداها المتصفح. | ||
تتألف كل سلسلة نصية من محتويات هذه الخاصية من: | تتألف كل سلسلة نصية من محتويات هذه الخاصية من: | ||
# رابط URL لملف الصورة | #رابط URL لملف الصورة | ||
# (اختياريًا) فراغ يتبعه أحد المُحدِّدات الآتية: | #(اختياريًا) فراغ يتبعه أحد المُحدِّدات الآتية: | ||
#* مُحدِّد العرض الذي هو عدد صحيح موجب يتبعه الحرف <code>w</code>، وستُقسَّم قيمة مُحدِّد العرض على الحجم المصدري المُعطى في خاصية <code>sizes</code> لحساب كثافة البكسلات الفعلية. | #*مُحدِّد العرض الذي هو عدد صحيح موجب يتبعه الحرف <code>w</code>، وستُقسَّم قيمة مُحدِّد العرض على الحجم المصدري المُعطى في خاصية <code>sizes</code> لحساب كثافة البكسلات الفعلية. | ||
#* مُحدِّد كثافة البكسلات التي هو عددٌ عشري موجب يتبعه الحرف <code>x</code> مباشرةً. | #*مُحدِّد كثافة البكسلات التي هو عددٌ عشري موجب يتبعه الحرف <code>x</code> مباشرةً. | ||
إذا لم تعطى قيمة لأحد المُحدِّدَين السابقين فسيُسنَد للمصدر المُحدِّد الافتراضي <code>1x</code>. | إذا لم تعطى قيمة لأحد المُحدِّدَين السابقين فسيُسنَد للمصدر المُحدِّد الافتراضي <code>1x</code>. | ||
سطر 135: | سطر 120: | ||
سيختار المتصفح أحد المصادر المذكورة في هذه الخاصية حسب تقديره، مما يعطي المتصفحات مجالًا لاختيار أفضل قياس للصورة اعتمادًا على تفضيلات المستخدم أو لتقييد استخدام التراسل الشبكي. | سيختار المتصفح أحد المصادر المذكورة في هذه الخاصية حسب تقديره، مما يعطي المتصفحات مجالًا لاختيار أفضل قياس للصورة اعتمادًا على تفضيلات المستخدم أو لتقييد استخدام التراسل الشبكي. | ||
مثال عن استخدام الخاصية <code>srcset</code> لتحديد صورة بديلة للمتصفحات التي تعمل على أجهزة كثافتها <code>2x</code>، لاحظ أنَّ قيمة الخاصية <code>[[HTML/img#src|src]]</code> ستُفسَّر على أنها مصدر الصورة ذات الكثافة <code>1x</code>:<syntaxhighlight lang="html"> | |||
مثال عن استخدام الخاصية <code>srcset</code> لتحديد صورة بديلة للمتصفحات التي تعمل على أجهزة كثافتها <code>2x</code>، لاحظ أنَّ قيمة الخاصية <code>[[#src|src]]</code> ستُفسَّر على أنها مصدر الصورة ذات الكثافة <code>1x</code>:<syntaxhighlight lang="html"> | <img src="wiki-logo.png" | ||
<img src="logo | alt="Wiki Hsoub Logo" | ||
srcset="wiki-logo-HD.png 2x"> | |||
</syntaxhighlight>مثال عن استخدام الخاصية <code>srcset</code> مع الخاصية <code>[[HTML/img#sizes|sizes]]</code>، وعندما ينطبق شرط media query الذي هو <code>min-width: 600px</code> فسيكون عرض الصورة <code>400px</code>، عدا ذلك ستكون بعرض <code>50vw</code> (أي 50% من عرض إطار العرض):<syntaxhighlight lang="html"> | |||
<img src="cover-small.png" | |||
alt="Cover Photo" | |||
srcset="cover-large.png 1640w, | |||
cover-small.png 965w" | |||
sizes="(min-width: 600px) 400px, 50vm"> | |||
</syntaxhighlight> | </syntaxhighlight> | ||
===<code>usemap</code>=== | |||
=== <code>usemap</code> === | |||
تأخذ هذه الخاصية عنوان URL جزئي (يبدأ برمز <code>#</code>) لخريطة <code>[[HTML/map|<map>]]</code> مرتبطة بهذا العنصر. | تأخذ هذه الخاصية عنوان URL جزئي (يبدأ برمز <code>#</code>) لخريطة <code>[[HTML/map|<map>]]</code> مرتبطة بهذا العنصر. | ||
يجدر بالذكر أنَّك لا تستطيع استخدام هذه الخاصية إن كان العنصر <code><img></code> موجودًا ضمن عنصر | يجدر بالذكر أنَّك لا تستطيع استخدام هذه الخاصية إن كان العنصر <code><img></code> موجودًا ضمن عنصر أو [[HTML/button|<button>]]. | ||
راجع صفحة العنصر <code>[[HTML/map|<map>]]</code> لمثال عن استخدام العنصر <code><img></code> مع هذه الخاصية. | راجع صفحة العنصر <code>[[HTML/map|<map>]]</code> لمثال عن استخدام العنصر <code><img></code> مع هذه الخاصية. | ||
==ملاحظات الاستخدام== | |||
== ملاحظات الاستخدام == | ===صيغ الصورة المدعومة=== | ||
=== صيغ الصورة المدعومة === | |||
لا يعطي معيار HTML قائمةً بصيغ الصورة التي يجب دعمها، لذا يدعم كل متصفح قائمةً مختلفةً من الصيغ، فمثلًا متصفح Firefox يدعم: | لا يعطي معيار HTML قائمةً بصيغ الصورة التي يجب دعمها، لذا يدعم كل متصفح قائمةً مختلفةً من الصيغ، فمثلًا متصفح Firefox يدعم: | ||
* [[wikipedia:JPEG|JPEG]] | *[[wikipedia:JPEG|JPEG]] | ||
* [[wikipedia:Graphics_Interchange_Format|GIF]] بما في ذلك صور GIF المتحركة | *[[wikipedia:Graphics_Interchange_Format|GIF]] بما في ذلك صور GIF المتحركة | ||
* [[wikipedia:Portable_Network_Graphics|PNG]] | *[[wikipedia:Portable_Network_Graphics|PNG]] | ||
* [[wikipedia:APNG|APNG]] | *[[wikipedia:APNG|APNG]] | ||
* [[wikipedia:Scalable_Vector_Graphics|SVG]] | *[[wikipedia:Scalable_Vector_Graphics|SVG]] | ||
* [[wikipedia:BMP_file_format|BMP]] | *[[wikipedia:BMP_file_format|BMP]] | ||
* [[wikipedia:ICO_(file_format)|BMP ICO]] | *[[wikipedia:ICO_(file_format)|BMP ICO]] | ||
* [[wikipedia:ICO_(file_format)|PNG ICO]] | *[[wikipedia:ICO_(file_format)|PNG ICO]] | ||
وبعض المتصفحات مثل Chrome و Opera تدعم صيغة [[wikipedia:WebP|WebP]] الجديدة. | وبعض المتصفحات مثل Chrome و Opera تدعم صيغة [[wikipedia:WebP|WebP]] الجديدة. | ||
===التفاعل مع CSS=== | |||
=== التفاعل مع CSS === | إنَّ العنصر <code><img></code> هو عنصر سيستبدل بمورد خارجي، وليس له خط أساس (baseline)، لذا عندما تستخدم الصور في المحتوى السطري (inline) مع خاصية <code>[[CSS/vertical-align|vertical-align]]: baseline</code> في CSS فسيوضع أسفل الصورة على خط الأساس للعنصر الحاوي لها. | ||
إنَّ العنصر <img> هو عنصر سيستبدل بمورد خارجي، وليس له خط أساس (baseline)، لذا عندما تستخدم الصور في المحتوى السطري (inline) مع خاصية <code>vertical-align: baseline</code> في CSS فسيوضع أسفل الصورة على خط الأساس للعنصر الحاوي لها. | |||
قد يكون للصورة أبعاد صافية اعتمادًا على نوعها، لكن لبعض أنواع الصورة لا يكون لها أبعاد صافية، مثل صور SVG. | قد يكون للصورة أبعاد صافية اعتمادًا على نوعها، لكن لبعض أنواع الصورة لا يكون لها أبعاد صافية، مثل صور SVG. | ||
===الأخطاء=== | |||
عندما يحدث خطأ عند محاولة تحميل أو عرض الصورة، فستستدعى الدالة التي تُعالِج الحدث <code>error</code>، وهذا قد يحدث في عدِّة حالات مثل: | |||
*الخاصية <code>src</code> غير موجودة أو قيمتها فارغة. | |||
*قيمة رابط URL للصورة هي نفس قيمة رابط URL للصفحة الحالية. | |||
*الصورة المُحدَّدة معطوبة بطريقةٍ ما تمنع عرضها. | |||
*البيانات الوصفية للصورة معطوبة بشكلٍ يمنع الحصول على أبعادها، ولم تكن أبعادها مُحدَّدة عبر خاصيات العنصر <code><img></code>. | |||
*صيغة الصورة المُحدَّدة ليست مدعومة في المتصفح. | |||
== | == التنسيق الافتراضي == | ||
تعرض أغلبية المتصفحات الصور مع ضبط الخاصية <code>[[CSS/display|display]]</code> إلى <code>inline-block</code>:<syntaxhighlight lang="css"> | |||
img { | |||
display: inline-block; | |||
} | |||
</syntaxhighlight> | |||
==مصادر ومواصفات== | ==مصادر ومواصفات== | ||
*معيار [https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element HTML Living Standard]. | *معيار [https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element HTML Living Standard]. |
المراجعة الحالية بتاريخ 16:06، 7 أكتوبر 2022
يُمثِّل العنصر <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>
- 72 ساعة فيديو تدريبية
- من الصفر دون الحاجة لخبرة مسبقة
- شهادة معتمدة من أكاديمية حسوب
- متابعة أثناء الدورة من فريق مختص
بطاقة العنصر
تصنيفات المحتوى | عنصر تنظيمي أو عنصر عادي أو عنصر يحتوي وسائط مضمّنة أو عنصر تفاعلي. |
---|---|
المحتوى المسموح | لا يوجد، فهذا العنصر فارغ. |
الوسم المختصر | لمّا كان هذا العنصر فارغًا، فيجب توفير وسم البداية وحذف وسم النهاية. |
العناصر الأب | أي عنصر يقبل العناصر التضمينية. |
واجهة 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، وهي تقبل سلسلة نصية فيها قيمة أو أكثر (مفصولة بفاصلة) لمصادر القياسات المختلفة للصور. يجب أن يحتوي كل مصدر على:
- عبارة media query، والتي يجب حذفها في آخر عنصر في القائمة.
- قيمة لقياس الصورة
قيمة قياس الصورة تُحدِّد ما هو حجم الصورة المراد عرضه، وتستخدم المتصفحات عبارة media query لتحديد أحد مصادر الصورة المُعرَّفة في خاصية srcset
، وذلك عندما تقترن تلك المصادر مع مُحدِّدات العرض (w
).
يؤثر حجم الصورة المُختارة على الحجم الصافي للصورة (أي الحجم الذي ستُعرَض فيه الصورة إن لم تُطبَّق قواعد CSS عليها).
إذا كانت الخاصية srcset
غير موجودة، أو كانت لا تحتوي على أيّة قيمة فيها مُحدِّد العرض w
، فلن يكون للخاصية sizes
أي أثر.
src
رابط URL للصورة، وهذه الخاصية إجبارية لجميع عناصر <img>
.
إذا كان المتصفح يدعم الخاصية srcset
، فستُعامَل قيمة الخاصية src
على أنها صورة مرشحّة لها معامل الكثافة 1x
ما لم تُعرَّف صورة لها نفس معامل الكثافة في خاصية srcset
، أو إذا لم تحتوي الخاصية srcset
على المُحدِّد w
.
srcset
قائمة أو أكثر من السلاسل النصية المفصولة بفاصلة ,
التي تُشير إلى مجموعة من مصادر الصورة المحتملة لكي يستخدم إحداها المتصفح.
تتألف كل سلسلة نصية من محتويات هذه الخاصية من:
- رابط URL لملف الصورة
- (اختياريًا) فراغ يتبعه أحد المُحدِّدات الآتية:
- مُحدِّد العرض الذي هو عدد صحيح موجب يتبعه الحرف
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;
}
مصادر ومواصفات
- معيار HTML Living Standard.
- مواصفة HTML5.
- مواصفة HTML 4.01.