آکادمی بنو/آموزش HTML

SVG در HTML5

بهنام نوبخت · ۱۴۰۵/۶/۲۸

در مقاله قبل با Canvas آشنا شدیم؛ روشی که به کمک JavaScript امکان رسم شکل‌ها و گرافیک دوبعدی را فراهم می‌کند. اما Canvas تنها راه ایجاد گرافیک در صفحات وب نیست. SVG یا Scalable Vector Graphics یکی دیگر از فناوری‌های مهم وب برای ساخت تصاویر و اشکال برداری است. SVG برخلاف تصاویر پیکسلی، از عناصر و مسیرهای برداری تشکیل می‌شود و به همین دلیل می‌تواند در اندازه‌های مختلف بدون افت کیفیت نمایش داده شود. همچنین از آنجا که SVG به صورت ساختاریافته در HTML قابل استفاده است، می‌توان عناصر آن را با CSS و JavaScript نیز کنترل کرد. در این مقاله از ساده‌ترین مثال‌ها شروع می‌کنیم و به تدریج با شکل‌ها، رنگ‌ها، مختصات، viewBox و تفاوت SVG و Canvas آشنا می‌شویم.

SVG چیست؟

SVG مخفف عبارت:

Scalable Vector Graphics

است.

به زبان ساده، SVG یک روش برای ساخت گرافیک برداری در وب است.

مثلاً می‌توانیم با SVG موارد زیر را ایجاد کنیم:

  • مستطیل

  • دایره

  • خط

  • مثلث

  • چندضلعی

  • مسیرهای پیچیده

  • متن

  • آیکون

  • لوگو

  • نمودار

  • تصاویر برداری

SVG بر پایه ساختار متنی و عناصر مشخصی ساخته می‌شود و می‌تواند مستقیماً داخل HTML قرار بگیرد.

تصویر پیکسلی و برداری چه تفاوتی دارند؟

قبل از ادامه بهتر است دو مفهوم مهم را بشناسیم.

تصاویر پیکسلی

تصاویر معمولی مانند:

JPG
PNG
WebP
GIF

از تعداد زیادی پیکسل تشکیل شده‌اند.

اگر یک تصویر پیکسلی را بیش از حد بزرگ کنیم، ممکن است کیفیت آن کاهش پیدا کند.

مثلاً:

تصویر کوچک
   ↓
بزرگ‌نمایی زیاد
   ↓
نمایش پیکسل‌ها
   ↓
کاهش کیفیت

تصاویر برداری

در تصاویر برداری، شکل‌ها بر اساس اطلاعات هندسی توصیف می‌شوند.

مثلاً به جای اینکه بگوییم:

این تصویر شامل هزاران پیکسل است.

می‌توانیم بگوییم:

یک دایره با مرکز مشخص و شعاع مشخص ایجاد کن.

در SVG مثلاً یک دایره به این شکل تعریف می‌شود:

<circle
    cx="100"
    cy="100"
    r="50">
</circle>

مرورگر شکل را بر اساس این اطلاعات رسم می‌کند.

به همین دلیل SVG برای مواردی مانند لوگوها، آیکون‌ها و اشکال هندسی بسیار مناسب است.

اولین SVG

یک فایل HTML ایجاد کنید و کد زیر را داخل آن قرار دهید:

<!DOCTYPE html>
<html lang="fa" dir="rtl">

<head>
    <meta charset="UTF-8">
    <title>اولین SVG</title>
</head>

<body>

    <svg width="300" height="200">

    </svg>

</body>

</html>

در اینجا:

<svg width="300" height="200">
</svg>

یک فضای SVG ایجاد کرده‌ایم.

اما هنوز هیچ شکلی داخل آن قرار نداده‌ایم.

رسم مستطیل با SVG

یکی از ساده‌ترین شکل‌ها در SVG، مستطیل است.

برای این کار از:

<rect>

استفاده می‌کنیم.

مثال:

<svg width="400" height="300">

    <rect
        x="50"
        y="50"
        width="200"
        height="100">
    </rect>

</svg>

یا می‌توانیم آن را کوتاه‌تر بنویسیم:

<svg width="400" height="300">

    <rect
        x="50"
        y="50"
        width="200"
        height="100" />

</svg>

عنصر rect برای رسم مستطیل استفاده می‌شود.

مختصات مستطیل

در مثال قبلی:

<rect
    x="50"
    y="50"
    width="200"
    height="100" />

مقادیر زیر را داریم:

x = 50
y = 50
width = 200
height = 100

یعنی گوشه بالای سمت چپ مستطیل در مختصات:

(50, 50)

قرار دارد.

و اندازه آن:

عرض = 200
ارتفاع = 100

است.

تغییر رنگ با fill

برای تعیین رنگ داخل یک شکل می‌توانیم از:

fill

استفاده کنیم.

مثلاً:

<svg width="400" height="300">

    <rect
        x="50"
        y="50"
        width="200"
        height="100"
        fill="orange" />

</svg>

حالا مستطیل نارنجی خواهد بود.

ایجاد حاشیه با stroke

برای ایجاد حاشیه اطراف شکل از:

stroke

استفاده می‌کنیم.

مثلاً:

<svg width="400" height="300">

    <rect
        x="50"
        y="50"
        width="200"
        height="100"
        fill="orange"
        stroke="black" />

</svg>

حالا مستطیل هم رنگ داخلی دارد و هم حاشیه.

تغییر ضخامت حاشیه

برای تغییر ضخامت حاشیه می‌توانیم از:

stroke-width

استفاده کنیم.

مثال:

<svg width="400" height="300">

    <rect
        x="50"
        y="50"
        width="200"
        height="100"
        fill="orange"
        stroke="black"
        stroke-width="5" />

</svg>

حالا حاشیه ضخیم‌تر می‌شود.

گوشه‌های گرد

یکی از قابلیت‌های جالب rect امکان گرد کردن گوشه‌ها است.

برای این کار از:

rx

استفاده می‌کنیم.

مثال:

<svg width="400" height="300">

    <rect
        x="50"
        y="50"
        width="200"
        height="100"
        rx="20"
        fill="orange" />

</svg>

گوشه‌های مستطیل گرد می‌شوند.

SVG برای rect ویژگی‌های x، y، width، height، rx و ry را برای کنترل موقعیت، اندازه و گوشه‌ها ارائه می‌کند.

رسم دایره

برای رسم دایره از:

<circle>

استفاده می‌کنیم.

مثال:

<svg width="400" height="300">

    <circle
        cx="200"
        cy="150"
        r="80"
        fill="blue" />

</svg>

در اینجا:

cx = موقعیت افقی مرکز
cy = موقعیت عمودی مرکز
r  = شعاع

است.

دایره با حاشیه

می‌توانیم حاشیه هم اضافه کنیم:

<svg width="400" height="300">

    <circle
        cx="200"
        cy="150"
        r="80"
        fill="orange"
        stroke="black"
        stroke-width="5" />

</svg>

رسم بیضی

برای رسم بیضی از:

<ellipse>

استفاده می‌کنیم.

مثال:

<svg width="400" height="300">

    <ellipse
        cx="200"
        cy="150"
        rx="120"
        ry="70"
        fill="green" />

</svg>

در اینجا:

cx = مرکز افقی
cy = مرکز عمودی
rx = شعاع افقی
ry = شعاع عمودی

است.

رسم خط

برای رسم خط از:

<line>

استفاده می‌کنیم.

مثال:

<svg width="400" height="300">

    <line
        x1="50"
        y1="50"
        x2="350"
        y2="250"
        stroke="red"
        stroke-width="5" />

</svg>

در اینجا:

x1 , y1

نقطه شروع و:

x2 , y2

نقطه پایان خط هستند.

چندضلعی با polygon

می‌توانیم با polygon چندضلعی ایجاد کنیم.

مثلاً یک مثلث:

<svg width="400" height="300">

    <polygon
        points="200,40 350,250 50,250"
        fill="orange"
        stroke="black"
        stroke-width="4" />

</svg>

در ویژگی:

points

مختصات نقاط را مشخص می‌کنیم.

در این مثال سه نقطه داریم:

(200,40)
(350,250)
(50,250)

SVG این نقاط را به هم متصل می‌کند و شکل را می‌سازد.

تفاوت Polygon و Polyline

دو عنصر مهم وجود دارند:

<polygon>

و:

<polyline>

هر دو می‌توانند از مجموعه‌ای از نقاط تشکیل شوند.

تفاوت اصلی این است که polygon مسیر را به صورت بسته کامل می‌کند؛ یعنی نقطه آخر را به نقطه اول متصل می‌کند.

مثال:

<polygon
    points="50,50 150,50 100,150"
    fill="orange" />

اما polyline بیشتر برای ایجاد مسیرهای باز استفاده می‌شود.

رسم مسیر با path

یکی از قدرتمندترین عناصر SVG:

<path>

است.

path می‌تواند برای ایجاد:

  • خطوط

  • منحنی‌ها

  • مسیرهای پیچیده

  • شکل‌های سفارشی

استفاده شود.

مثال ساده:

<svg width="400" height="300">

    <path
        d="M 50 50 L 300 50 L 200 200 Z"
        fill="orange"
        stroke="black" />

</svg>

d در Path چیست؟

ویژگی:

d

مسیر path را تعریف می‌کند.

مثلاً:

M 50 50

یعنی از نقطه مشخص‌شده شروع کن.

و:

L 300 50

یعنی یک خط به این نقطه بکش.

و:

Z

یعنی مسیر را ببند.

در ابتدا لازم نیست تمام دستورات path را حفظ کنید.

مهم این است که بدانید:

path
   ↓
یک مسیر قابل کنترل

ایجاد می‌کند.

سیستم مختصات SVG

مانند Canvas، SVG نیز یک سیستم مختصات دارد.

به طور معمول نقطه:

(0,0)

در گوشه بالا سمت چپ قرار می‌گیرد.

مثلاً:

(0,0)
   ┌──────────────────→ X
   │
   │
   │
   ↓
   Y

بنابراین:

x

مقدار حرکت به سمت راست را مشخص می‌کند و:

y

مقدار حرکت به سمت پایین را مشخص می‌کند.

width و height

می‌توانیم اندازه فضای SVG را مشخص کنیم:

<svg
    width="500"
    height="300">
</svg>

یعنی فضای نمایش SVG:

عرض = 500
ارتفاع = 300

خواهد داشت.

viewBox چیست؟

یکی از مهم‌ترین ویژگی‌های SVG:

viewBox

است.

در ابتدا ممکن است کمی عجیب به نظر برسد، اما مفهوم آن ساده است.

viewBox یک سیستم مختصات داخلی برای SVG مشخص می‌کند. مقدار آن از چهار عدد تشکیل می‌شود:

min-x
min-y
width
height

مثلاً:

<svg
    width="500"
    height="300"
    viewBox="0 0 500 300">
</svg>

یعنی محدوده مختصات داخلی SVG از:

x = 0
y = 0

شروع می‌شود و:

width = 500
height = 300

است.

چرا viewBox مهم است؟

فرض کنید بنویسیم:

<svg
    width="600"
    height="400"
    viewBox="0 0 300 200">

در این حالت:

اندازه ظاهری:
600 × 400

اما سیستم مختصات داخلی:

300 × 200

است.

مرورگر این سیستم مختصات را به فضای نمایش SVG نگاشت می‌کند.

به همین دلیل viewBox یکی از ویژگی‌های بسیار مهم برای ساخت SVGهای قابل مقیاس است.

یک مثال با ViewBox

<svg
    width="600"
    height="400"
    viewBox="0 0 300 200">

    <rect
        x="50"
        y="50"
        width="100"
        height="60"
        fill="orange" />

</svg>

در این مثال مختصات مستطیل بر اساس سیستم:

300 × 200

محاسبه می‌شود.

اما SVG در صفحه با اندازه:

600 × 400

نمایش داده می‌شود.

SVG می‌تواند Responsive باشد

یکی از مزایای مهم SVG این است که می‌توانیم از viewBox همراه با اندازه‌های انعطاف‌پذیر استفاده کنیم.

مثلاً:

<svg
    width="100%"
    viewBox="0 0 500 300">

    <rect
        x="50"
        y="50"
        width="400"
        height="200"
        fill="orange" />

</svg>

در این حالت SVG می‌تواند متناسب با فضای در دسترس تغییر اندازه دهد.

رسم متن در SVG

SVG می‌تواند متن نیز نمایش دهد.

برای این کار از:

<text>

استفاده می‌کنیم.

مثال:

<svg
    width="500"
    height="300">

    <text
        x="100"
        y="100"
        font-size="32">
        بنو سرویس
    </text>

</svg>

تغییر رنگ متن

می‌توانیم از fill استفاده کنیم:

<svg
    width="500"
    height="300">

    <text
        x="100"
        y="100"
        font-size="32"
        fill="orange">
        بنو سرویس
    </text>

</svg>

SVG و CSS

یکی از ویژگی‌های مهم SVG این است که می‌توانیم ظاهر آن را با CSS کنترل کنیم.

مثلاً:

<svg
    class="logo"
    viewBox="0 0 300 200">

    <circle
        cx="150"
        cy="100"
        r="80" />

</svg>

و در CSS:

.logo circle {
    fill: orange;
    stroke: black;
    stroke-width: 5;
}

SVG و CSS می‌توانند با یکدیگر استفاده شوند و این موضوع در طراحی رابط کاربری و آیکون‌ها بسیار کاربردی است.

استفاده از SVG به عنوان فایل جداگانه

SVG فقط به صورت مستقیم داخل HTML استفاده نمی‌شود.

می‌توانیم یک فایل جداگانه مانند:

logo.svg

داشته باشیم.

و سپس آن را مانند یک تصویر نمایش دهیم:

<img
    src="logo.svg"
    alt="لوگو">

این روش برای استفاده از لوگوها و تصاویر برداری بسیار رایج است.

SVG می‌تواند مستقیماً در مرورگر نمایش داده شود یا از طریق عناصری مانند img در HTML قرار بگیرد.

SVG داخلی و SVG خارجی

به طور کلی دو روش رایج داریم.

SVG داخلی

<svg viewBox="0 0 100 100">

    <circle
        cx="50"
        cy="50"
        r="40"
        fill="orange" />

</svg>

SVG خارجی

<img
    src="logo.svg"
    alt="لوگو">

در روش داخلی، عناصر SVG مستقیماً داخل ساختار HTML قرار دارند و می‌توانیم آن‌ها را با CSS و JavaScript کنترل کنیم.

ساخت یک آیکون ساده

بیایید یک آیکون ساده با SVG ایجاد کنیم.

<svg
    width="200"
    height="200"
    viewBox="0 0 200 200">

    <circle
        cx="100"
        cy="100"
        r="80"
        fill="orange" />

    <circle
        cx="70"
        cy="80"
        r="10"
        fill="black" />

    <circle
        cx="130"
        cy="80"
        r="10"
        fill="black" />

    <path
        d="M 60 120 Q 100 160 140 120"
        fill="none"
        stroke="black"
        stroke-width="6" />

</svg>

در این مثال یک شکل ساده شبیه صورت ایجاد کرده‌ایم.

ترتیب عناصر در SVG

به ترتیب عناصر دقت کنید:

<circle ... />
<circle ... />
<circle ... />
<path ... />

در SVG عناصر بعدی معمولاً روی عناصر قبلی رسم می‌شوند.

بنابراین ترتیب قرار گرفتن عناصر می‌تواند روی ظاهر نهایی تصویر تأثیر بگذارد.

SVG و Canvas چه تفاوتی دارند؟

حالا که هر دو فناوری را می‌شناسیم، مقایسه آن‌ها بسیار مهم است.

ویژگی

SVG

Canvas

نوع گرافیک

برداری

رسم روی بوم

ساختار

عنصر و شکل

پیکسل‌های سطح رسم

استفاده از HTML

بله

بله

نیاز به JavaScript برای رسم پایه

خیر

معمولاً بله

مناسب برای لوگو

بسیار مناسب

معمولاً انتخاب اول نیست

مناسب برای آیکون

بسیار مناسب

ممکن است

مناسب برای بازی دوبعدی

ممکن است

بسیار مناسب

قابلیت کنترل عناصر به صورت جداگانه

مناسب

نیازمند مدیریت در کد

مناسب برای شکل‌های هندسی

بسیار مناسب

مناسب

این جدول یک قانون مطلق نیست؛ انتخاب فناوری به نوع پروژه بستگی دارد.

یک تفاوت مهم بین SVG و Canvas

در SVG وقتی یک دایره ایجاد می‌کنیم:

<circle
    id="circle1"
    cx="100"
    cy="100"
    r="50" />

این دایره یک عنصر مستقل در ساختار SVG است.

می‌توانیم آن را با CSS یا JavaScript پیدا و تغییر دهیم.

اما در Canvas وقتی یک دایره رسم می‌کنیم، نتیجه به عنوان یک عنصر HTML مستقل مانند <circle> در DOM وجود ندارد.

این یکی از تفاوت‌های مفهومی مهم بین این دو فناوری است.

چه زمانی SVG انتخاب خوبی است؟

SVG معمولاً انتخاب مناسبی برای مواردی مانند:

  • لوگو

  • آیکون

  • نمودارهای برداری

  • تصاویر ساده و هندسی

  • نقشه‌های برداری

  • نمودارهای تعاملی

  • اشکال قابل مقیاس

است.

چه زمانی Canvas انتخاب بهتری است؟

Canvas می‌تواند برای مواردی مانند:

  • بازی‌های دوبعدی

  • نقاشی آزاد

  • پردازش و نمایش گرافیک

  • انیمیشن‌های گرافیکی خاص

  • پروژه‌هایی که تعداد زیادی عملیات رسم دارند

مناسب باشد.

انتخاب نهایی به نیاز پروژه بستگی دارد.

اشتباهات رایج در SVG

اشتباه اول: تصور اینکه SVG همان PNG است

SVG و PNG ساختار یکسانی ندارند.

PNG یک تصویر پیکسلی است، اما SVG یک گرافیک برداری ساختاریافته است.

اشتباه دوم: نادیده گرفتن viewBox

در پروژه‌های واقعی، viewBox یکی از ویژگی‌های بسیار مهم SVG است.

اگر هدف شما ساخت SVG قابل مقیاس باشد، باید مفهوم آن را به خوبی یاد بگیرید.

اشتباه سوم: استفاده اشتباه از مختصات

مثلاً:

<circle
    cx="500"
    cy="500"
    r="50">
</circle>

اگر SVG شما فقط:

200 × 200

باشد، احتمالاً دایره خارج از محدوده قابل مشاهده قرار می‌گیرد.

پس باید مختصات را با فضای SVG هماهنگ کنیم.

اشتباه چهارم: استفاده از SVG برای هر چیزی

SVG ابزار بسیار قدرتمندی است، اما به این معنی نیست که برای همه پروژه‌ها بهترین انتخاب است.

گاهی CSS کافی است.

گاهی یک تصویر معمولی بهتر است.

گاهی Canvas مناسب‌تر است.

یک پروژه کوچک SVG

حالا یک مثال کامل‌تر بسازیم.

<!DOCTYPE html>
<html lang="fa" dir="rtl">

<head>

    <meta charset="UTF-8">

    <meta name="viewport"
          content="width=device-width, initial-scale=1.0">

    <title>پروژه SVG</title>

</head>

<body>

    <h1>نمونه SVG</h1>

    <svg
        width="600"
        height="400"
        viewBox="0 0 600 400">

        <!-- پس‌زمینه -->

        <rect
            width="600"
            height="400"
            fill="#f2f2f2" />


        <!-- خورشید -->

        <circle
            cx="480"
            cy="100"
            r="60"
            fill="orange" />


        <!-- خانه -->

        <rect
            x="150"
            y="180"
            width="250"
            height="150"
            fill="#eeeeee"
            stroke="black"
            stroke-width="4" />


        <!-- سقف -->

        <polygon
            points="120,180 275,60 430,180"
            fill="#d35400"
            stroke="black"
            stroke-width="4" />


        <!-- در -->

        <rect
            x="250"
            y="240"
            width="60"
            height="90"
            fill="#8e5a3c" />


        <!-- پنجره -->

        <rect
            x="180"
            y="220"
            width="50"
            height="50"
            fill="#87ceeb"
            stroke="black"
            stroke-width="3" />


        <!-- متن -->

        <text
            x="275"
            y="370"
            font-size="28"
            text-anchor="middle">
            خانه من
        </text>

    </svg>

</body>

</html>

در این مثال چند مفهوم را کنار هم قرار دادیم:

SVG
├── rect
├── circle
├── polygon
├── text
├── fill
├── stroke
├── stroke-width
└── viewBox

دسترسی‌پذیری در SVG

اگر SVG یک تصویر یا گرافیک معنادار باشد، بهتر است اطلاعات مناسبی برای فناوری‌های کمکی فراهم کنیم.

برای مثال می‌توان داخل SVG از:

<title>

استفاده کرد.

مثال:

<svg
    viewBox="0 0 200 200"
    role="img">

    <title>
        لوگوی بنو سرویس
    </title>

    <circle
        cx="100"
        cy="100"
        r="80"
        fill="orange" />

</svg>

title می‌تواند یک توضیح کوتاه برای گرافیک فراهم کند. در SVGهای معنادار می‌توان از الگوهای دسترسی‌پذیری مانند role="img" و عنوان مناسب استفاده کرد.

تمرین عملی اول

یک SVG با اندازه:

500 × 300

ایجاد کنید.

سپس:

  1. یک مستطیل رسم کنید.

  2. رنگ آن را تغییر دهید.

  3. برای آن حاشیه ایجاد کنید.

  4. ضخامت حاشیه را تغییر دهید.

  5. گوشه‌های آن را گرد کنید.

تمرین عملی دوم

یک SVG ایجاد کنید و داخل آن:

  • یک دایره

  • یک بیضی

  • یک خط

  • یک مثلث

قرار دهید.

برای هرکدام رنگ متفاوتی انتخاب کنید.

تمرین عملی سوم

یک آیکون ساده با SVG طراحی کنید.

مثلاً:

صورت خندان

یا:

خانه

یا:

ابر

از شکل‌های ساده‌ای مانند:

circle
rect
polygon
path

استفاده کنید.

تمرین عملی چهارم

یک SVG با:

viewBox="0 0 500 300"

بسازید.

سپس:

width="100%"

را برای آن قرار دهید و صفحه را کوچک و بزرگ کنید.

بررسی کنید SVG چگونه متناسب با فضای موجود تغییر اندازه می‌دهد.

چالش

یک تصویر ساده از یک خانه با SVG بسازید.

تصویر شما باید شامل موارد زیر باشد:

  • آسمان

  • خورشید

  • خانه

  • سقف

  • در

  • حداقل یک پنجره

  • زمین

  • یک متن کوتاه

سعی کنید تمام شکل‌ها را با عناصر SVG بسازید.

برای مثال:

rect
circle
polygon
line
text

و در نهایت از:

viewBox

استفاده کنید.

نکات مهم این مقاله

در این مقاله یاد گرفتیم:

  • SVG مخفف Scalable Vector Graphics است.

  • SVG برای ایجاد گرافیک برداری استفاده می‌شود.

  • SVG را می‌توان مستقیماً داخل HTML قرار داد.

  • SVG را می‌توان به صورت فایل جداگانه با پسوند .svg نیز استفاده کرد.

  • rect برای مستطیل است.

  • circle برای دایره است.

  • ellipse برای بیضی است.

  • line برای خط است.

  • polygon برای چندضلعی است.

  • polyline برای مسیرهای متشکل از خطوط است.

  • path برای مسیرهای پیچیده‌تر استفاده می‌شود.

  • text برای نمایش متن در SVG است.

  • fill رنگ داخلی شکل را مشخص می‌کند.

  • stroke رنگ حاشیه را مشخص می‌کند.

  • stroke-width ضخامت حاشیه را تعیین می‌کند.

  • x و y برای تعیین موقعیت بسیاری از شکل‌ها استفاده می‌شوند.

  • cx و cy مرکز دایره یا بیضی را مشخص می‌کنند.

  • r شعاع دایره را مشخص می‌کند.

  • viewBox سیستم مختصات داخلی و محدوده دید SVG را مشخص می‌کند.

  • SVG می‌تواند با CSS ترکیب شود.

  • SVG برای لوگوها و آیکون‌ها بسیار کاربردی است.

  • SVG و Canvas دو روش متفاوت برای کار با گرافیک در وب هستند.

جمع‌بندی

SVG یکی از مهم‌ترین ابزارهای ایجاد گرافیک در وب است. برخلاف تصاویر پیکسلی، SVG شکل‌ها را به صورت برداری و ساختاریافته توصیف می‌کند و به همین دلیل برای بسیاری از موارد مانند لوگو، آیکون، نمودار و تصاویر هندسی گزینه بسیار مناسبی است.

در این مقاله ابتدا مفهوم SVG را یاد گرفتیم و سپس با عناصر مهمی مانند rect، circle، ellipse، line، polygon، path و text کار کردیم. همچنین با ویژگی‌هایی مانند fill، stroke و stroke-width آشنا شدیم و مفهوم مهم viewBox را بررسی کردیم.

در مقاله بعدی به سراغ یکی از قابلیت‌های جالب HTML5 یعنی Geolocation می‌رویم و یاد می‌گیریم مرورگر چگونه می‌تواند در صورت اجازه کاربر، موقعیت مکانی او را در اختیار صفحه وب قرار دهد.

مقاله بعدی: «Geolocation در HTML5»

۰۰

نظرات

کد در دسترس نیست

هنوز نظری ثبت نشده است.