توابع SASS

در این بخش توابع مختلف در SASS شامل توابع رشته، عدد، لیست، Map، همچنین Selector و Introspection و نحوه عملکرد آنها آموزش داده می شود.

توابع SASS

توابع در Sass

در کنار متغیرها، توابع Sass شاید مفیدترین جنبه زبان باشند که در این بخش بررسی خواهیم کرد.

علاوه بر توابعی که Sass ارائه می کند، می توانید توابع خود را نیز در Ruby بنویسید. اما از آنجایی که این یک دوره آموزش Sass است، نه یک دوره Ruby، ما در اینجا در مورد آن صحبت نخواهیم کرد.

می توانید از سینتکس تابع استاندارد CSS برای فراخوانی توابع Sass استفاده کنید:

توابع در Sass

که خروجی آن به صورت زیر خواهد بود:

توابع در Sass

Sass همچنین به شما امکان می دهد آرگومان های تابع را با نام آنها مشخص کنید. اکثر زبان های برنامه نویسی اینها را به عنوان "پارامترهای نامگذاری شده" یا "named parameters" معرفی می کنند، اما اسناد Sass اینها را "آرگومان های کلمه کلیدی صریح" یا "explicit keyword arguments" می نامند. این آرگومان ها را می توان به هر ترتیبی مشخص کرد:

توابع در Sass

توجه داشته باشید که نام آرگومان ها دارای علامت دلار ($) به عنوان پیشوند هستند، یعنی همان سینتکسی که برای شناسایی متغیرها استفاده می شود.

توابع در Sass

خروجی به صورت زیر خواهد شد:

توابع در Sass

نام گذاری آرگومان های شما نیاز به تایپ کردن بیشتری دارد، اما هدف شما را روشن و واضح می کند و نیاز به حفظ کردن (یا جستجوی) ترتیب پارامترها را از بین می برد.

همه تعاریف تابع همیشه از نام پارامترها در این آموزش Sass استفاده می کنند، با توجه به اعلان str-insert($string, $insert, $index) .

پارامترهای نامگذاری شده (که می توانند به هر ترتیبی مشخص شوند) عبارتند از string ، $insert$ و index$ . در این حالت str-insert($insert: "hello, ", $string: "world", $index: 1) عبارت "hello, world" را بر می گرداند.

Sass شامل توابع مختلفی برای رشته، عدد، لیست، map، انتخابگر و الحاق یا introspection است. همه این توابع را در این بخش بررسی خواهیم دید.

توابع متفرقه

Sass سه تابع دیگر را ارائه می دهد که در هیچ یک از دسته بندی های بالا قرار نمی گیرند. این توابع در جدول زیر لیست شده اند.

توابع در Sass

توابع رشته در Sass

اگر در یک زبان برنامه نویسی روی رشته ها کار کرده اید، با توابع رشته Sass یا String Functions کاملا راحت خواهید بود، فقط یک استثنا وجود دارد: رشته های Sass آرایه های مبتنی بر صفر نیستند. اولین کاراکتر در یک رشته Sass در ایندکس 1 است نه 0.

مثلا تابع Sass به صورت str-index($string, $substring) موقعیت اولین رخداد substring$ را در $string برمی گرداند. تابع جاوا اسکریپت معادل آن متد indexOf(<substring>) است. اما با وجود آرگومان های یکسان، مقادیر یکسانی را بر نمی گردانند:

توابع رشته در Sass

جدول زیر تمام توابع رشته در Sass را فهرست می کند.

توابع رشته در Sass

توابع عددی در Sass

مانند توابع رشته ای،Sass مجموعه ای اساسی از توابع به نام Numeric Functions را برای دستکاری مقادیر عددی ارائه می دهد، و آنها همانطور که شما انتظار دارید کار می کنند. توجه داشته باشید که می توانید توصیف کننده های مقدار CSS مانند "px" یا "rem" را برای همه توابع به جز ()percentage ارائه دهید. Sass واحدها را نادیده می گیرد و آنها را در نتیجه شامل نمی شود.

توابع عددی در Sass

توابع لیست در Sass

توابع لیست Sass یا Sass List Functions به شما امکان می دهد لیست ها را به روش های مورد انتظار بررسی، دستکاری و ترکیب کنید. لیست ها را می توان با استفاده از هر یک از گزینه های توضیح داده شده در فصل SassScript مشخص کرد، اما باید آنها را با پرانتز احاطه کنید تا مشخص شود که لیست یک آرگومان واحد است.

لیست های Sass تغییر ناپذیر هستند یعنی آنها را نمی توان تغییر داد. بنابراین تمام توابع لیست که یک لیست را برمی گرداند، برای مثال ()join یک لیست جدید برمی گرداند. آنها لیست اصلی را تغییر نمی دهند.

مانند توابع رشته ای، تنها مشکل در مورد لیست های Sass این است که آنها به جای صفر مبتنی بر یک هستند. (به عنوان مثال تابع ()nth را در جدول زیر ببینید).

توابع لیست در Sass

توابع Map در Sass

به یاد داشته باشید که در Sass نوع داده map یک یا چند جفت مقدار کلید را نشان می دهد. علاوه بر توابع خاص map در جدول زیر، می توانید از هر یک از توابع لیست با map ها نیز استفاده کنید. map به عنوان مجموعه ای از لیست های دو عنصری در نظر گرفته می شود:

nth(("red": #ff0000, "green": #00ff00), 2) مقدار ("green" #00ff00) را برمی گرداند.

مانند لیست ها، map های Sass غیر قابل تغییر هستند. توابع map که یک map را برمی گرداند، یک map جدید را برمی گرداند. آنها آرگومان های اصلی را تغییر نمی دهند.

توابع Map در Sass

توابع Selector در Sass

توابع انتخابگر یا selector به شما امکان می دهند انتخابگرهای CSS را در یک stylesheet دستکاری کنید. همه توابع به جز ()selector-nest استفاده از انتخابگر والد & را ممنوع می کنند.

توابع Selector در Sass

توابع Introspection در Sass

توابع موجود در این گروه به شما امکان می دهد حالت و وضعیت خود Sass را بررسی کنید. هنگامی که در حال ساختن stylesheets هستید، اغلب از آنها استفاده نمی کنید، اما برای فهمیدن اینکه چه اتفاقی می افتد وقتی چیزی کاملاً آنطور که انتظار داشتید کار نمی کند بسیار ارزشمند هستند.

توابع Introspection در Sass
توابع SASS SASS Functions توابع رشته در Sass توابع عددی در Sass توابع لیست در Sass توابع Map در Sass توابع Selector در Sass توابع Introspection در Sass