
HTMLHTML Graphicsالموسوعة
47 – رسومات HTML SVG
تعرف SVG على رسومات المتجهات القابلة للتكبير باستخدام تنسيق XML.
- SVG: اختصار لعبارة “Scalable Vector Graphics” وتعني رسومات المتجهات القابلة للتكبير.
- رسومات المتجهات: هي نوع من الرسومات تتكون من مسارات ونقاط محددة إحداثياتها بدقة، على عكس الرسومات النقطية (raster graphics) التي تعتمد على بيكسلات ثابتة، مما يمنح رسومات المتجهات ميزة تكبيرها دون فقدان الجودة.
- استخدامات SVG: تستخدم SVG بشكل رئيسي لتعريف الرسومات التفاعلية والمتحركة على صفحات الويب. ويمكن أيضًا استخدامها لإنشاء صور ثابتة عالية الدقة.
عنصر <svg> في HTML
عنصر <svg> في HTML هو حاوية لرسومات SVG. يوفر SVG عدة طرق لرسم المسارات والمستطيلات والدوائر والنصوص والصور الرسومية.
دعم المتصفح لـ SVG
يوضح الجدول أدناه إصدارات المتصفحات التي تدعم عنصر <svg> بشكل كامل:
المتصفح | الإصدار |
---|---|
Internet Explorer | 9.0 |
Chrome | 4.0 |
Firefox | 3.0 |
Safari | 3.2 |
Opera | 10.1 |
دائرة SVG

<!DOCTYPE html>
<html>
<body>
<svg width="100" height="100">
<circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg>
</body>
</html>
مستطيل SVG

<svg width="400" height="100">
<rect width="400" height="100" style="fill:rgb(0,0,255);stroke-width:10;stroke:rgb(0,0,0)" />
</svg>
SVG مستطيل مدور الزوايا

<svg width="400" height="180">
<rect x="50" y="20" rx="20" ry="20" width="150" height="150"
style="fill:red;stroke:black;stroke-width:5;opacity:0.5" />
</svg>
نجمه SVG

<svg width="300" height="200">
<polygon points="100,10 40,198 190,78 10,78 160,198"
style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;" />
</svg>
لوجو SVG

<svg height="130" width="500">
<defs>
<linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1" />
<stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1" />
</linearGradient>
</defs>
<ellipse cx="100" cy="70" rx="85" ry="55" fill="url(#grad1)" />
<text fill="#ffffff" font-size="45" font-family="Verdana" x="50" y="86">SVG</text>
Sorry, your browser does not support inline SVG.
</svg>
الاختلافات بين SVG و Canvas
SVG:
- لغة لوصف رسومات ثنائية الأبعاد باستخدام XML.
- تعتمد على XML، مما يعني أن كل عنصر رسومي متاح ضمن نموذج كائن المستند (DOM) لـ SVG.
- يمكن ربط معالجات أحداث JavaScript بالعناصر الرسومية.
- يتذكر المتصفح كل شكل مرسوم ككائن مستقل.
- إذا تم تغيير سمات كائن SVG، يقوم المتصفح بإعادة رسم الشكل تلقائيًا.
Canvas:
- ترسم رسومات ثنائية الأبعاد بشكل حيوي باستخدام JavaScript.
- يتم عرض الرسومات بكسل بكسل.
- بعد رسم الشكل، لا يتذكره المتصفح.
- إذا لزم تغيير موضع الشكل، يتم إعادة رسم المشهد بأكمله، بما في ذلك أي كائنات مغطاة بالرسم.
متى تستخدم SVG أو Canvas:
تُفضل SVG عندما:
- تحتاج إلى رسومات قابلة للتكبير دون فقدان الجودة.
- ترغب في التفاعل مع العناصر الرسومية بشكل فردي.
- تتطلب الرسومات أن تكون قابلة للبحث والفهرسة بواسطة محركات البحث.
تُفضل Canvas عندما:
- تتطلب الرسومات أداءً عاليًا وتحديثات سريعة.
- تحتاج إلى معالجة الرسومات على مستوى البكسل.
- تتعامل مع رسومات معقدة للغاية أو رسوم متحركة كثيفة.
بشكل عام، يعد كل من SVG و Canvas أدوات قوية لإنشاء رسومات تفاعلية على الويب. يعتمد اختيار الأداة المناسبة على احتياجات المشروع ومتطلباته.