مسیرها، اشکال، برش، و پوشش

رندر HTML در بالای مدل جعبه ساخته شده است، اما زندگی (و طراحی وب) بیشتر از مستطیل ها وجود دارد. CSS از راه‌های متعددی برای تغییر قسمت‌هایی از یک عنصر پشتیبانی می‌کند و به توسعه‌دهندگان آزادی می‌دهد تا طرح‌هایی ایجاد کنند که از همه اشکال و اندازه‌ها پشتیبانی می‌کنند. برش دادن به اشکال هندسی اجازه می دهد، در حالی که پوشش روی دید در سطح پیکسل تأثیر می گذارد.

مسیرها و اشکال

CSS از توابع برای تعریف اشکال استفاده می کند. ما اطلاعات کلی در مورد توابع در ماژول توابع CSS را پوشش می دهیم. در این بخش، نحوه ایجاد اشکال در CSS را یاد خواهید گرفت. همه مثال‌های زیر از شکل‌هایی استفاده می‌کنند که با ویژگی clip-path ایجاد می‌کنید، که ناحیه قابل مشاهده را فقط به آنچه در داخل شکل است کاهش می‌دهد. این اجازه می دهد تا عناصر از نظر بصری با جعبه عنصر متفاوت باشند. در ادامه با جزئیات بیشتر بریده را پوشش می دهیم.

اشکال تعریف شده در CSS می توانند اشکال پایه (مانند دایره، مستطیل و چند ضلعی) یا مسیرها (که می توانند اشکال پیچیده و مرکب را تعریف کنند) باشند.

اشکال اساسی

circle() و ellipse()

توابع circle() و ellipse() اشکال گرد و بیضی را با شعاع نسبت به یک عنصر تعریف می کنند. تابع circle() یک اندازه یا درصد را به عنوان آرگومان می پذیرد. به طور پیش فرض، هر دو تابع شکل را نسبت به مرکز عنصر قرار می دهند. هر دو یک موقعیت اختیاری پس از کلمه کلیدی at را می پذیرند که می تواند به صورت طول، درصد یا کلمات کلیدی موقعیتی بیان شود.

.my-element {
  width: 60px;
  height: 60px;
  background: blue;
  clip-path: circle(50%);
}

زمانی که تابع circle() آرگومان 50% می گیرد، یک دایره کامل ارائه می شود.

مثال قبلی یک مسیر برش دایره ای را با استفاده از تابع circle() نشان می دهد. توجه داشته باشید که شعاع 50% دایره ای به عرض کامل عنصر ایجاد می کند. تابع ellipse() دو آرگومان را می پذیرد که شعاع افقی و عمودی شکل را نشان می دهد.

.my-element {
  width: 60px;
  height: 60px;
  background: blue;
  clip-path: ellipse(50% 25%);
}

تابع ellipse() یک بیضی را با آرگومان های درصد تولید می کند. آرگومان های 50% و 25% بیضی ایجاد می کنند که شعاع آن دو برابر محور X نسبت به محور Y است.

مثال قبلی یک مسیر برش بیضی را با استفاده از تابع ellipse() نشان می دهد. توجه داشته باشید که شعاع 50 درصد یک بیضی در عرض کامل عنصر ایجاد می کند. مثال زیر همان بیضی را با مرکز آن در بالای عنصر نمایش می دهد.

.my-element {
  width: 60px;
  height: 60px;
  background: blue;
  clip-path: ellipse(50% 25% at center top);
}

rect() و inset()

توابع rect() و inset() راه های مختلفی را برای تعریف مستطیل با تنظیم موقعیت اضلاع آن نسبت به اضلاع یک عنصر ارائه می دهند. این به شما امکان می دهد مستطیل هایی ایجاد کنید که از نظر ظاهری با کادر پیش فرض عنصر متفاوت باشند. آنها به صورت اختیاری کلمه کلیدی round را برای ایجاد یک مستطیل با گوشه های گرد می پذیرند و از همان نحوی استفاده می کنند که ویژگی مختصر border-radius را به کار می برند.

تابع rect() موقعیت اضلاع بالا و پایین مستطیل را نسبت به لبه بالایی عنصر و سمت چپ و راست را نسبت به لبه چپ عنصر مشخص می کند. این تابع چهار واحد اندازه یا درصد را به عنوان آرگومان هایی می پذیرد که قسمت های بالا، راست، پایین و چپ را تعریف می کنند. وقتی می‌خواهید مستطیلی را انتخاب کنید که در هنگام تغییر اندازه عنصر یا همان نسبت‌های تغییر عنصر را حفظ کند، تابع rect() را انتخاب کنید.

.my-element {
  width: 80px;
  height: 60px;
  background: blue;
  clip-path: rect(15px 75px 45px 10px);
}

تابع rect() چهار آرگومان را برای تعریف اندازه یک مستطیل می پذیرد. در این مورد، آرگومان ها 15 پیکسل، 75 پیکسل، 45 پیکسل و 10 پیکسل هستند.

مثال قبلی یک مسیر برش مستطیلی را نشان می دهد که با استفاده از تابع rect() تعریف شده است. ابعاد نسبت به لبه های بالا و سمت چپ عنصر همانطور که در نمودار نشان داده شده است.

تابع inset() موقعیت اضلاع یک مستطیل را با فاصله به سمت داخل از هر یک از اضلاع یک عنصر مشخص می کند. این تابع یک تا چهار واحد اندازه یا درصد را به عنوان آرگومان می پذیرد و به شما امکان می دهد چندین ضلع را همزمان تعریف کنید. وقتی می خواهید مستطیلی با عنصر یا مستطیلی که فاصله ثابتی با لبه های عنصر داشته باشد، تابع inset() را انتخاب کنید.

.my-element {
  width: 80px;
  height: 60px;
  background: blue;
  clip-path: inset(15px 5px 15px 10px);
}

تابع inset() می تواند از اندازه ذاتی عنصر کم کند. آرگومان های این تابع در این نمودار 15px، 5px، 15px و 10px می باشد.

مثال قبلی یک مسیر برش مستطیلی را نشان می دهد که با استفاده از تابع inset() تعریف شده است. ابعاد نسبت به طرفین عنصر است.

توابع rect() و inset() به صورت اختیاری کلمه کلیدی round را برای ایجاد یک مستطیل با گوشه های گرد می پذیرند، با استفاده از نحوی که ویژگی مختصر border-radius است. مثال زیر نسخه های گرد شده مستطیل هایی را که قبلا نشان داده شده بود نشان می دهد.

.rounded-rect {
  width: 80px;
  height: 60px;
  background: blue;
  clip-path: inset(15px 5px 15px 10px round 5px);
}

.rounded-inset {
  width: 80px;
  height: 60px;
  background: blue;
  clip-path: inset(15px 5px 15px 10px round 5px);
}

polygon()

برای اشکال دیگر، مانند مثلث، پنج ضلعی، ستاره و غیره، تابع polygon() به شما امکان می دهد با اتصال چندین نقطه با خطوط مستقیم، اشکال ایجاد کنید. تابع polygon() لیستی از جفت ها را می پذیرد که از دو واحد طول یا درصد تشکیل شده است. هر جفت نقطه ای از چند ضلعی را توصیف می کند: مقدار اول فاصله از لبه سمت چپ عنصر است، دومین مقدار فاصله از لبه بالایی عنصر است. لازم نیست چند ضلعی را ببندید، زیرا با اتصال آخرین نقطه به نقطه اول تکمیل می شود.

.my-element {
  width: 60px;
  height: 60px;
  background: blue;
  clip-path: polygon(
    50% 0,
    0 100%,
    100% 100%
  );
}

تابع polygon() تعداد متغیری از آرگومان ها را برای ترسیم اشکال پیچیده می پذیرد. در این حالت، آرگومان ها به گونه ای ساخته می شوند که یک مثلث ایجاد می شود.

مثال قبل با تعریف سه نقطه یک مسیر برش مثلثی ایجاد می کند.

به طور پیش فرض، تابع polygon() نواحی همپوشانی را به صورت پر شده ارائه می کند. شما می توانید این رفتار را با یک آرگومان اول اختیاری به نام قانون fill تغییر دهید. برای جابجایی بین نواحی پر و پر نشده، قانون پر را روی evenodd تنظیم کنید. برای استفاده از قانون پر کردن پیش‌فرض، آن را روی nonzero تنظیم کنید.

مثال قبلی تابع polygon() را با توابع مثلثاتی برای ایجاد چند ضلعی های منظم و اشکال ستاره نشان می دهد. این بزرگ‌ترین چند ضلعی منظم ممکن را ایجاد نمی‌کند که درون یک عنصر قرار گیرد یا در مرکز آن قرار گیرد – ما آن را به عنوان تمرینی برای شما می‌گذاریم تا امتحان کنید. شکل‌های ستاره در این مثال قوانین پر کردن nonzero و evenodd نیز نشان می‌دهند.

اشکال پیچیده

هنگامی که توابع شکل اصلی برای توصیف یک شکل پیچیده کافی نیستند، CSS توابعی را ارائه می دهد که از نحو پیچیده تری برای توصیف ویژگی هایی مانند منحنی ها و خطوط استفاده می کند. این توابع برای اشکال مرکب (شکل هایی که از چندین شکل تشکیل شده اند، مانند دایره ای که سوراخی در آن وجود دارد) نیز مفید است.

path()

تابع path() یک رشته از نحو مسیر SVG را برای توصیف یک شکل می پذیرد. این اجازه می دهد تا با استفاده از دستورالعمل هایی که خطوط و منحنی های تشکیل دهنده شکل را توصیف می کنند، اشکال پیچیده ایجاد شوند. ویرایش مستقیم نحو SVG می‌تواند پیچیده باشد، بنابراین توصیه می‌کنیم یک ویرایشگر بصری اختصاصی را در نظر بگیرید که می‌تواند هنگام ایجاد اشکال با تابع path() نحو را صادر کند.

تابع path() از واحدهای اندازه CSS استفاده نمی کند و همه مقادیر به صورت پیکسل تفسیر می شوند. این بدان معنی است که اشکال ایجاد شده با تابع path به اندازه عنصر یا ظرف پاسخگو نیستند. توصیه می کنیم از path() فقط برای اشکالی استفاده کنید که ابعاد ثابتی دارند.

shape()

تابع shape() از یک دستور دستوری برای توصیف یک شکل مشابه تابع path() استفاده می کند. با این حال، دستورات تابع shape() CSS بومی هستند و می توانند از واحدهای اندازه CSS استفاده کنند. این اجازه می دهد تا اشکال تعریف شده با استفاده از تابع shape() به صورت پاسخگو اندازه شوند.

مثال قبل از توابع path() و shape() برای تعریف شکل قلب و دایره ای با سوراخ در مرکز استفاده می کند. این مثال از مقدار یکسانی در پیکسل برای هر دو تابع استفاده می کند، اما تابع shape() می تواند از واحدهای اندازه CSS دیگر مانند درصد یا واحدهای نسبی ظرف نیز استفاده کند.

بریدن

Clipping مشخص می‌کند که کدام بخش از یک عنصر قابل مشاهده است، شبیه به بریدن یک تصویر از یک مجله. ویژگی clip-path مسیر مورد استفاده برای تعریف ناحیه کلیپ را تنظیم می کند.

همانطور که در مثال های بخش قبلی دیدید، هر یک از توابع شکل یا مسیر اصلی را می توان به عنوان clip-path استفاده کرد. ویژگی clip-path همچنین از مسیرهای تعریف شده در عنصر clipPath SVG پشتیبانی می‌کند که می‌تواند در یک فایل جداگانه یا جاسازی شده باشد.

چگونه برش می‌تواند به‌ویژه روی یک تصویر تأثیر بگذارد: در این تصویر، عکس یک بچه گربه هم در یک دایره بریده شده است و هم یک مسیر کلیپ پیچیده که کل بچه گربه را مشخص می‌کند.

نمودار قبلی نشان می دهد که چگونه افزودن یک clip-path به یک عنصر تصویر، ناحیه قابل مشاهده تصویر را تغییر می دهد. مسیر کلیپ بالایی از تابع circle() استفاده می کند، در حالی که مسیر پایینی از clipPath SVG استفاده می کند. توجه داشته باشید که دایره ایجاد شده با استفاده از circle() به طور پیش فرض در مرکز عنصر قرار می گیرد.

ویژگی clip-path فقط یک مسیر را می پذیرد. برای برش دادن یک عنصر با چندین شکل که همپوشانی ندارند، از توابع path() یا shape() برای تعریف یک مسیر ترکیبی استفاده کنید، یا از یک clipPath SVG استفاده کنید. گزینه دیگر برای سناریوهای پیچیده استفاده از ماسک به جای بریدن است که در بخش بعدی به آن خواهیم پرداخت.

بریدن با اشکال

برای برش دادن با استفاده از یک شکل یا تابع مسیر اصلی، ویژگی clip-path را مانند مثال‌های قبلی روی مقدار بازگردانده شده توسط تابع تنظیم کنید. هر تابع شکل برش را نسبت به عنصر متفاوت قرار می دهد، بنابراین به مرجع هر تابع مراجعه کنید.

در مثال قبل دو عنصر دارای یک clip-path دایره ای هستند که با استفاده از کلاس .clipped اعمال می شود. توجه داشته باشید که clip-path نسبت به هر عنصر قرار می گیرد و متن درون clip-path برای پیروی از شکل دوباره جریان نمی یابد.

جعبه مرجع یک مسیر برش

به‌طور پیش‌فرض، مسیر برش یک عنصر شامل حاشیه عنصر است. هنگام استفاده از یکی از توابع شکل اصلی، می‌توانید کادر مرجع مسیر کلیپ را طوری تنظیم کنید که فقط ناحیه عنصر را در حاشیه قرار دهد. مقادیر معتبر برای کادر مرجع عبارتند از stroke-box (پیش‌فرض) و fill-box (فقط شامل قسمت داخل حاشیه).

مثال قبلی عناصری را با یک حاشیه بزرگ ( 20px ) نشان می‌دهد که هر کدام از تابع inset() برای تنظیم clip-path استفاده می‌کنند. عنصری که نسبت به حاشیه عنصر قطع می‌شود، همچنان بخشی از حاشیه را نشان می‌دهد. عناصری که نسبت به ناحیه درون مرزی قطع می‌شوند، هیچ حاشیه‌ای را نشان نمی‌دهند و کوچک‌تر هستند، حتی با مقدار ورودی یکسان.

کلیپ با گرافیک

یک مسیر برش ممکن است در یک سند SVG تعریف شود، یا در سند HTML تعبیه شده باشد یا به صورت خارجی ارجاع داده شود. این می تواند برای تعریف مسیرهای برش پیچیده ایجاد شده در برنامه های گرافیکی یا مسیرهای برش که چندین اشکال را ترکیب می کنند مفید باشد.

<img id="kitten" src="kitten.png">

<svg>
  <defs>
    <clipPath id="kitten-clip-shape">
      <circle cx="130" cy="175" r="100" />
    </clipPath>
  </defs>
</svg>

<style>
  #kitten {
    clip-path: url(#kitten-clip-shape);
  }
</style>

در مثال قبل، clipPath با id kitten-clip-shape روی عنصر <img> اعمال می شود. در این مورد سند SVG در HTML جاسازی شده است. اگر سند SVG یک فایل خارجی به نام kitten-clipper.svg باشد، در عوض clipPath به عنوان url(kitten-clipper.svg#kitten-clip-shape) ارجاع خواهد شد.

نقاب زدن

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

برای اعمال یک ماسک، ویژگی mask-image را تنظیم کنید. این ویژگی یک یا چند تصویر، گرادیان یا ارجاع به عناصر <mask> در یک سند SVG را می پذیرد. چندین تصویر ماسک ممکن است با جدا کردن آنها با کاما اعمال شوند.

.my-element {
  mask-image: url(my-mask.png),
              linear-gradient(black 0%, transparent 100%);
}

در مثال قبل، .my-element با استفاده از یک تصویر PNG، و به دنبال آن یک گرادیان خطی پوشانده شده است. برای ایجاد ماسک نهایی، چندین ماسک به طور پیش فرض با هم اضافه می شوند.

مثال قبل تصویری را با یک یا چند ماسک نشان می دهد. هر ماسک را تغییر دهید تا ببینید چگونه ماسک ها با هم جمع می شوند تا اثر نهایی را ایجاد کنند.

پوشش آلفا در مقابل درخشندگی

می توانید با استفاده از alpha یا luminance تصویر، ماسک را اعمال کنید. هنگام پوشاندن بر اساس alpha ، شفافیت هر پیکسل در تصویر ماسک به عنصر اعمال می شود و اطلاعات رنگ آن پیکسل را نادیده می گیرد. هنگام پوشاندن بر اساس luminance ، هم شفافیت و هم مقدار هر پیکسل (چقدر روشن یا تاریک) به عنصر اعمال می شود. پوشاندن با درخشندگی، رنگ‌های روشن‌تر را به‌عنوان قابل مشاهده و رنگ‌های تیره‌تر را به‌عنوان نامرئی تلقی می‌کند.

برای تنظیم حالت masking، از ویژگی mask-mode استفاده کنید. به طور پیش‌فرض، ویژگی mask-mode روی match-source تنظیم شده است که یک حالت را بر اساس نوع تصویر ماسک تنظیم می‌کند. برای تصاویر و گرادیان ها، این به طور پیش فرض روی alpha خواهد بود. برای ماسک‌های SVG، اگر mask-type تعریف نشده باشد، این مقدار به‌طور پیش‌فرض به مقدار خاصیت mask-type عنصر <mask> یا luminance خواهد بود.

در مثال قبل از یک الگوی آزمایشی که مقادیر مختلف رنگ و آلفا را نشان می دهد به عنوان یک ماسک استفاده شده است. با تغییر mask-mode ، می توانید ببینید که چگونه حالت alpha بر اساس شفافیت است، در حالی که حالت luminance بر اساس روشنایی رنگ و شفافیت است.

خواص پوشش اضافی

CSS ویژگی های اضافی را برای تنظیم دقیق رفتار ماسک های شما فراهم می کند. هر یک از ویژگی ها لیستی از مقادیر جدا شده با کاما را می پذیرد که با لیست ماسک های تنظیم شده توسط ویژگی mask-image مطابقت داده می شود. اگر مقادیر کمتر از ماسک ها وجود داشته باشد، لیست تا زمانی که مقداری برای هر ماسک تنظیم شود تکرار می شود. اگر مقادیر بیشتری از ماسک‌ها وجود داشته باشد، مقادیر اضافی کنار گذاشته می‌شوند.

اموال توضیحات
mask-clip

تعیین می کند که کدام جعبه مرجع از ماسک های عنصر اعمال می شود. به طور پیش فرض به border-box.

mask-composite

تعامل بین ماسک ها را زمانی که چند ماسک روی یک عنصر اعمال می شود تنظیم می کند. پیش فرض ها برای add

mask-origin

کادر مرجعی را که به عنوان مبدا یک ماسک عمل می کند، تنظیم می کند. به طور پیش فرض به border-box . این شبیه به background-origin رفتار می کند و کلمات کلیدی مشابهی را می پذیرد.

mask-position

موقعیت یک ماسک را نسبت به mask-origin تنظیم می کند. مقادیر کلیدواژه موقعیت مانند top یا center ، درصدها، واحدهای اندازه یا مقادیر مربوط به یک کلمه کلیدی موقعیت را می پذیرد. این شبیه به background-position عمل می کند و انواع آرگومان های مشابه را می پذیرد.

mask-repeat

اگر عنصر ماسک شده بزرگتر از ماسک باشد، نحوه تکرار یک ماسک را تنظیم می کند. پیش فرض برای repeat این شبیه به background-repeat عمل می کند و انواع آرگومان های مشابه را می پذیرد.

mask-size

نحوه تغییر اندازه یک ماسک نسبت به اندازه عنصر ماسک شده را تنظیم می کند. به طور پیش فرض به صورت auto . این شبیه به background-size عمل می کند و انواع آرگومان های مشابه را می پذیرد.

خلاصه ماسک

شما می توانید چندین ویژگی ماسک را به طور همزمان با مخفف ماسک تنظیم کنید. این می‌تواند با گروه‌بندی همه ویژگی‌های هر ماسک با هم، تنظیم چند ماسک را ساده کند. خلاصه ماسک معادل تنظیم این ویژگی ها به ترتیب است: mask-image ، mask-mode ، mask-position ، mask-size ، mask-repeat ، mask-origin ، mask-clip و mask-composite . لازم نیست همه دارایی ها گنجانده شوند و هر ویژگی که شامل نشده باشد به مقدار اولیه خود بازنشانی می شود. با پشتیبانی از حداکثر هشت ویژگی در هر ماسک، می‌تواند به داشتن یک مرجع کامل کمک کند.

.longhand {
  mask-image: linear-gradient(white, black),
              linear-gradient(90deg, black, transparent);
  mask-mode: luminance, alpha;
  mask-position: bottom left, top right;
  mask-size: 50% 50%, 30% 30%;
}

.shorthand {
  mask: linear-gradient(white, black) luminance bottom left / 50% 50%,
        linear-gradient(90deg, black, transparent) alpha top right / 30% 30%;
}

در مثال قبل، هر کلاس دارای دو ماسک است. اولی از ویژگی های فردی استفاده می کند در حالی که دومی از مختصر mask استفاده می کند. هر دو سبک معادل یکدیگر هستند.

جریان متن در اطراف عناصر شناور

وقتی یک عنصر را گیره یا ماسک می‌کنید، فقط ناحیه قابل مشاهده در کادر آن را تغییر می‌دهید، اما خود کادر بدون تغییر باقی می‌ماند. این بدان معنی است که یک عنصر شناور بر روی جریان سند بر اساس جعبه محدود کننده اصلی خود تأثیر می گذارد، نه بخش های قابل مشاهده عنصر. برای تعریف جریان در اطراف یک عنصر، از ویژگی shape-outside به همراه مسیر clip استفاده کنید.

ویژگی shape-outside شکلی را تعریف می کند که محتوا در اطراف یک عنصر جریان می یابد. این شکل ممکن است هر یک از توابع شکل اصلی باشد، اما نه اشکالی که با استفاده از توابع path() یا shape() یا یک clipPath تعریف شده در یک سند SVG تعریف شده باشد.

ویژگی shape-outside نیز یک تصویر یا گرادیان را می پذیرد. مانند پوشش، مرزهای شکل با شفافیت تصویر یا گرادیان تعیین می شود. ویژگی shape-image-threshold تعیین می کند که کدام سطح از شفافیت در داخل شکل در نظر گرفته شود.

اشکال در انیمیشن

متحرک سازی مسیر کلیپ

می توانید ویژگی clip-path را متحرک کنید و از شکلی به شکل دیگر ترکیب کنید. برای تولید انیمیشن های روان باید از همان تابع شکل برای هر فریم کلیدی استفاده کنید. هنگام استفاده از توابع polygon() یا shape() باید از تعداد نقاط یکسانی در هر فریم کلیدی استفاده شود.

در مثال قبل، clip-path یک عنصر بین شکل پنج ضلعی و ستاره ای که با استفاده از تابع polygon() تعریف شده است، تغییر می کند. این مثال از قانون پر کردن evenodd استفاده می کند تا نشان دهد که چگونه نقاط متحرک مناطق همپوشانی ایجاد می کنند.

متحرک سازی با مسیر افست

همچنین می توانید عناصر را در مسیرهای ایجاد شده با این توابع شکل متحرک کنید. ویژگی offset-path شکل را برای استفاده به عنوان مسیر تنظیم می کند و offset-distance موقعیت را در طول مسیر تعیین می کند. همچنین می توانید از تابع ray() با ویژگی offset-path برای متحرک سازی در امتداد یک خط مستقیم استفاده کنید.

مثال قبلی استفاده از یک چند ضلعی را برای هر دو clip-path و offset-path نشان می دهد. این انیمیشن از offset-distance برای حرکت ستاره های کوچکتر در امتداد همان چند ضلعی استفاده می کند که ستاره بزرگ به عنوان clip-path خود استفاده می کند.

درک خود را بررسی کنید

کدام یک از موارد زیر توابع شکل معتبر هستند؟

circle()
درسته!
square()
نادرست است.
hexagon()
نادرست است.
polygon()
درسته!
rectangle()
نادرست است.
inset()
درسته!

درست یا غلط: اشکال تعریف شده با path() را می توان با استفاده از درصد تعریف کرد

درست است
نادرست است.
نادرست
درسته!

درست یا نادرست: تنظیم مسیر برش یک عنصر، جریان متن را در اطراف یک عنصر تغییر نمی دهد

درست است
درسته!
نادرست
نادرست است.

کدام یک از موارد زیر را می توان به عنوان مسیر برش استفاده کرد؟

یک شکل اساسی
درسته!
یک عنصر SVG clipMask
درسته!
یک تصویر بیت مپ
نادرست است.
یک گرادیان
نادرست است.

کدام یک از موارد زیر را می توان به عنوان ماسک استفاده کرد؟

یک تصویر بیت مپ
درسته!
یک گرادیان
درسته!
یک عنصر ماسک SVG
درسته!
یک شکل پایه، مانند circle() یا rect()
نادرست است.