🎁 تخفیف ویژه بلک فرایدی تا 10 آذر ماه 🎁

عملگرها در SASS

در این بخش عملیاتی را که می‌توانید روی هر نوع داده در SASS انجام دهید شامل عملگر تساوی، Boolean، عملیات عددی و پایه ای، عملیات بر روی رشته ها و رنگ ها و غیره به همراه مثال های کاربردی آموزش داده می شود.

عملگرها در SASS

عملگرهای SASS

در بخش قبل، انواع داده هایی را که SassScript می فهمد، بررسی کردیم. در این فصل، عملیاتی را که می توانید روی هر نوع داده انجام دهید، بررسی خواهیم کرد. بیشتر آنها همانطور که شما انتظار دارید رفتار می کنند، اما چند چیز وجود دارد که باید از آنها آگاه باشید زیرا Sass باید با CSS سازگار بماند که در نهایت یک زبان اسکریپت نویسی هم نیست.

عملگر تساوی در SASS

SassScript از یک عملیات برای همه انواع داده پشتیبانی می کند: برابری یا همان equality. شما می توانید هر دو مقدار را با استفاده از عملگرهای == و =! مقایسه کنید که در نتیجه یک مقدار بولی را برمی گرداند:

عملگر تساوی در SASS

مثال ها از مقادیر عددی استفاده می کنند، اما می توانید هر نوع داده ای را با هم مقایسه کنید:

عملگر تساوی در SASS

در انجام عملیات بولی، SassScript به انواع داده احترام می گذارد، مانند مثال زیر:

عملگر تساوی در SASS

این عملیات false را برمی گرداند زیرا عملوند اول یک عدد و دومی یک رشته است. شما اغلب از عملگر برابری در کد Sass خود استفاده نمی کنید، اما زمانی که شروع به استفاده از بخش دستورالعمل های کنترل (control directives) می کنید به آن نیاز خواهید داشت.

عملگر بولی (Boolean)

مانند عملیات برابری، عملگرهای بولی یک مقدار بولی (درست یا نادرست) برمی گردانند. Sass از سه عملگر Boolean پشتیبانی می کند: and ، or و not.

عملگر and فقط در صورتی true را برمی گرداند که هر دو عملوند آن درست (true) باشد:

عملگر بولی (Boolean) در SASS

اگر هر یک از عملوندها درست باشد عملگر or عبارت true را برمی گرداند:

عملگر بولی (Boolean) در SASS

Sass از عملیات "یای انحصاری" یا "exclusive or"پشتیبانی نمی کند، که اگر فقط یکی از عملوندهای آن درست باشد، true را برمی گرداند، اما می توانید یک "exclusive or" را از عملگرهای موجود بسازید:

عملگر بولی (Boolean) در SASS

عملگر بولی نهایی یعنی not در مثال قبلی استفاده شده است. این عملگر درستی یا نادرستی یک مقدار بولی را معکوس می کند:

عملگر بولی (Boolean) در SASS

عملیات عددی

Sassscript به شما اجازه می دهد تا عملیات محاسباتی و مقایسه ای را روی مقادیر عددی انجام دهید. اپراتورها در بیشتر موارد همان طور که انتظار دارید عمل می کنند، اما از آنجایی که Sass از سینتکس کامل CSS پشتیبانی می کند و CSS به جای زبان رویه ای (procedural)، یک زبان اعلامی (declarative) است، مکان هایی وجود دارد که سینتکس ممکن است کمی مشکل باشد. بیاید یک نگاهی بیندازیم.

محاسبات پایه ای

SassScript از تمام عملیات حسابی استاندارد برای مقادیر عددی پشتیبانی می کند:

محاسبات پایه ای در SASS

توجه داشته باشید که در اینجا فضاهای اطراف عملگرها را قرار داده ایم، اما این ضروری نیست، بنابراین 1 + 1 همان 1+1 است.

متأسفانه، الزام سازگاری Sass با سینتکس CSS، عملگرهای جبری را از چند جهت پیچیده می کند. اولین مورد عملگر تقسیم است. اگرچه این روش معمول نیست، اما CSS اجازه می دهد تا از کاراکتر برای جدا کردن اعداد استفاده شود، بنابراین Sass باید به آن پایبند باشد. اگر من بدون پرانتز نوشته بودم، ترانسپایلر به جای ارزیابی عبارت، آن را به عنوان یک رشته خروجی می داد.

راه حل این است که به سادگی قسمتی از عبارت یا کل عبارت را با پرانتز احاطه کنید:

محاسبات پایه ای در SASS

اما مشکل تنها زمانی رخ می دهد که هر دو عملوند مقادیر عددی ساده باشند. اگر هر یک از عملوندها یک متغیر یا نتیجه یک تابع باشد، Transpiler Sass می داند که چگونه آن را مدیریت کند. همچنین می داند که اگر تقسیم بخشی از یک عبارت بزرگتر باشد، چه کاری انجام دهد. بنابراین همه موارد زیر به خوبی کار خواهند کرد:

محاسبات پایه ای در SASS

شما همچنین باید مراقب عملگر - باشید زیرا در واقع دو عملیات مختلف را نشان می دهد: تفریق و نفی. راه حل در این مورد این است که مراقب جاهایی که فاصله (space) قرار می دهید باشید. فاصله در دو طرف عملگر نشان دهنده تفریق است:

محاسبات پایه ای در SASS

بدون space نیز نشان دهنده تفریق است:

محاسبات پایه ای در SASS

اما اگر فقط یک فاصله را قرار دهید، لیستی با مقدار منفی دریافت می کنید:

محاسبات پایه ای در SASS

مقایسه در SASS

علاوه بر مقایسه برای برابری که برای همه انواع داده معتبر است، SassScript از مقایسه دو مقدار نیز پشتیبانی می کند. مانند عملگرهای == و =!، همه اینها یک مقدار بولی برمی گردانند:

مقایسه در SASS

در این مثال، اپراتورهای Sass با سینتکس استاندارد CSS در تضاد نیستند، بنابراین هیچ شرایط یا سینتکس خاصی برای نگرانی وجود ندارد.

عملیات بر روی رشته ها در SASS

Sass فقط از یک عملگر واحد روی رشته ها به نام الحاق یا concatenation ، پشتیبانی می کند، اما چندین نوع از آن را پشتیبانی می کند. ساده ترین عملگر الحاق است :

مقایسه در SASS

ترانسپایلر Sass تعیین می کند که آیا رشته را بر اساس اولین عملوند نقل قول کند:

مقایسه در SASS

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

مقایسه در SASS

می توانید عبارات در رشته ها را با قرار دادن آنها در عملگر الحاق، {}# استفاده کنید.

مقایسه در SASS

که ترجمه خواهد شد به:

مقایسه در SASS

عملیات بر روی رنگها در SASS

SassScript به شما امکان می دهد عملیات حسابی بین دو رنگ یا بین یک رنگ و یک مقدار عددی انجام دهید. به دلیل نحوه عملکرد رنگ RGB، این عملیات به ندرت مفید هستند، اما خوب است بدانید که در صورت نیاز به آنها در دسترس هستند. (همانطور که در فصل بعدی خواهیم دید، SassScript توابع رنگی را در اختیار شما قرار می دهد که استفاده از آنها بسیار ساده تر است).

هنگام انجام محاسبات روی دو مقدار رنگ،Sass هر رنگ را به اجزای قرمز، سبز و آبی خود جدا می کند و سپس هر رنگ را به طور جداگانه اجرا می کند. بیایید به یک مثال نگاه کنیم. با توجه به عبارت زیر:

#102030 + #010203

Sass ابتدا دو رنگ را به اجزای قرمز، سبز و آبی تقسیم می کند: (10،20،30) و (01،02،03). سپس عملیات (در این مورد، جمع) را روی هر رنگ انجام می دهد: 10+1 برای قرمز، 20 + 2 برای سبز و 30 + 3 برای آبی. سپس مقادیر را مجدداً با هم ترکیب می کند و نتیجه آن 112233# است.

وقتی عملیاتی را روی یک رنگ و یک عدد انجام می دهید،Sass نیز اساساً همین کار را انجام می دهد: این عملیات روی هر جزء رنگی به صورت جداگانه انجام می شود. بنابراین با توجه به عبارت 101010# * 2، نتیجه 202020# خواهد بود.

مثال های اینجا از فرمت هگزا برای رنگ ها استفاده می کنند، اما می توانید از rgb ، rgba ، hsl و hsla نیز استفاده کنید. یک هشدار وجود دارد: اگر قالب رنگی که استفاده می کنید شامل مقدار آلفا ( rgba یا hsla) باشد، مقادیر آلفا باید یکسان باشند و در محاسبه لحاظ نمی شوند:

عملیات بر روی رنگها در SASS
عملگرها در SASS عملگر تساوی در SASS Boolean در SASS محاسبات عددی و پایه ای در SASS عملیات بر روی رشته ها در SASS عملیات بر روی رنگ ها در SASS