خلاصه مطالب sass

پرسیده شده
فعالیت 1236 روز پیش
دیده شده 627 بار
3

Sass : Syntactically Awesome Style Sheets 

 

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

 

نکته : ما باید بیایم و کد های sass امون رو کامپایل کنیم به css  که برای این کار میتوانیم 2 تا کار رو انجام بدهیم یا بیایم و از پلاگین های vscode  استفاده کنیم که محبوب ترین اشون live sass compile  هستش و راه دومی استفاده از پکیج منجیر ها مثل gulp یا webpack  هستش که بیایم و از اونا استفاده بکنیم 

و یادمان باشد که باید ادرس فایل های css که کامپایل شده رو به ht

 

نکته : برتری sass به نسبت رقیب اش less در این است که برای توسعه فایل جانبه ای رو اضافه نمیکند 

 

 

Futures Sass   :

 

1-Variable-7       Nesting -6       Mixin -5       Extend-4      Import  -3    Conditional-statement -2       loops 

 

 

Sass دارای دو گزینه سینتکس است:

 

1-  ( SCSS ( Sassy CSS : استفاده از فایل با فرمت .scss که سازگاری بالایی با سینتکس CSS دارد.

 

2 - دندانه‌دار (همان Sass) : از فرمت .sass استفاده می‌کند و به صورت دندانه‌ای است -برخلاف حالت }{-. این مورد نیز به با CSS سازگاری دارد و نوشتن آن سریع‌تر است. 

 

 

توضیح هات پیرامون امکانات sass 

 

1- variables : به ما این اجازه رو میدهد تا مثل دیگر زبان های برنامه نویسی بتوانیم یک متغیر رو تعریف کنیم که برای تعریف متغیر کافی است از $ کمک بگیریم همچنین ما در آن می توانیم متغیر هامون رو به دو صورت سراسری یا گلوبال و محلی تعریف کنیم که برای سراسری کافی است که در root  پروژه اون هارو تعریف کنیم و برای محلی در { } استایل دهی هامون همچنین با دادن یک global! میتوانیم بیایم و متغیر های محلی امون رو به سراسری تبدیل بکنیم 

$font-stack:    Helvetica, sans-serif;
$primary-color: #333;
$color : blue ;

body {

  font: 100% $font-stack;
  color: $primary-color;
  
}
a {

 $color : red !global ;  که در این جا این مقدار دیگه جایگزین می شود

 color : $color

  }

 

2- nesting : ما برای تو در تو نویسی مشابه به css  میایم و استفاده میکنیم ولی شیوه کار با تودرتو نویسی در css تفاوت دارد و دو مدل تو در تو نویسی داریم یکی برای کلاس ها یا تگ هامون یکی هم برای پراپرتی هامون یا سودوالمنت هامون

تو در تو نویسی برای تگ ها

nav {  style nav
  ul {
       style nav ul
    li {
         style nav ul  li
        a {
               style nav ul li a
               } 
                  }
                     } 
                        }

حال برای تو در نویسی برای پراپرتی هامون هم بکه دارای پیشوند مشترک هستند پسوند های متفاوت به شیوه ی زیر استفاده میکنیم

a {

 &:hover{ }
 &::after {}
 
  font:{
    size : 17px;
    weight : 600px
     }

 

3- mixin : برای موقعی هستش که میخاهیم تعدادی از پراپرتی های مشابه رو برای المان های مختلف در نظر بگیریم که ما در داخل css و  حتی ساختار bootstrap برای بهینه تر شدن کدهامون میومدیم و یک کلاس واحد تعریف میکردیم و استایل های مشترک رو درون آن قرار میدادیم و در نهایت هم میومدیم و یک کلاس متفاوت تعریف میکردیم  و اون پراپرتی هایی که متفاوت بودن رو درون قرار میدادیم  و دو تا کلاس مربوطه رو به تگ هامون میدادیم

.btn {  fontsize : 16px; ......  padding:4px }

.btn-sucsess {  background-color : green; } و بعد به تگ هامون کلاس های بالا رو باهم میدادیم

حال ما در داخل ساختار sass  باید بیایم و پراپرتی هایی که در داخل btn  هستند رو به عنوان یک mixin  در نظر بگیریم و بعد استایل هامون رو بهش میدهیم و در نهایت به کلاس مربوطه میایم اضافه اش میکنیم به شیوه ی زیر  

 

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

// sass

@mixin  btn {   ....... fonstsize:23px ...........   }                                     

 .btn-sucsess { @include btn ;  background-color : green ;  }           

 حال فقط لازم هستش که بیایم وکلاس btn-sucsess رو بهش بدهیم  
 
 // css 
 
 .btn-success {  ... fonstsize:23px ..... background-color : green  }
           
  @mixin flex-center {  display : flex;  align-item:center;  justify-content:center }

 .x {  @include flex-center();  .....  }  

ما در حالت عادی میکسین هامون ساده هستند ولی میتوانیم در آن ها از متغیر ها نیز  استفاده کنیم بهتر هست در نام گزاری متغیر ها اصول کد نویسی تمیز رو رعایت کنیم 


@mixin flex-position ($justify-content : center ,$align-item : center ) {

   dusplay : flex ;

   justify-content : $justify-content ;

   align-item : $align-item ;
  
   }
 
.y {
          @include flex-position(space-around,end); 
}

نکته : همچنین mixin های ما میتوانند مقادیر پیش فرض بیان و بگیرند و میتوانیم چند mixin رو پشت سر هم قرار دهیم

 

4- extend : همانطور که در بالا گفته شد mixin ها برای پراپرتی های تکراری مورد استفاده قرار میگیرد ما از خاصیت برای موقعی استفاده میکنیم که مواردی کلی هستند اما  ما تکرار پراپرتی رو نداریم حال اگر ما یکسری پراپرتی داشتیم که یکبار نوشته می شود و خیلی عمومی هستش و جاهای دیگه هم برا ما کاربرد دارد از extend  استفاده میکنیم این دو مفهوم خیلی به هم نزدیک هستند

 

تفاوت این دو مفهوم در مقدار تولیدی حجم کدهامون هستش که خطوط کد کمتری رو اشغال میکند  

 // sass
 .btn { ....... fontsize:23px ..... }
 .btn-success { @extend .btn;  background-color : green}
 
 //css
 .btn , .btn-sucess { ....... fontsize:23px .....  }
 .btn-sucsess { background-color : green }

نکته : زمانی که در یک پروژه عناصری داریم که استایل بیشتری دارند و قرار هستش که بعدا یک پراپرتی یا خصیصه اشون تغیر بکند رو با extend استفاده میکنیم ازشون

 

 

5- loop : ما می توانیم با استفاده از sass بیایم و یک سری حلقه هایی ایجاد کنیم برای کلاس هایی که تقریبا اسامی مشترکی رو دارند برای مثال در کد زیر ما  اومدیم و با استفاده از حلقه ها ساختار گرید بندی مون رو بهتری نوشتیم

 $sm-width : 768px;
@media screen and ( max-width : $sm-width ) {
   $sm-class-slug L col-sm;
   @for $i from 1 through 12 {  
     .#{ $sm-class-slug}-#{$i}{ 
        width : 8.3333 * $i
                                }
                                 } 
                                  }

 

6- Conditional-statement :  استفاده از ساختار های شرطی ما با استفاده از if میتوانیم بیایم و برای استایل هامون یکسری ساختار های شرطی قرار دهیم

@mixin avatar ($size,#$circle : false ){
  width:$size;
  height : $size
  @if $circle {  border-radius: $size / 2 ;
                 box-shadow : 0 0 10px rgba(0,0,0,.5)  }
                 else {  border-radius : 25px }
  }
  
  .circle { @include avatar(100px,$circle:false) }

7- pattern ها یا import ها : Partialها فایل کوچک Sass هستند که قابلیت import شدن در دیگر فایل‌های Sass را مهیا می‌کنند. با استفاده از این حالت شما می‌توانید فایل‌های CSS ماژولاری داشته باشید که نگه‌داری و دیباگ‌ کردن آن‌ها ساده‌تر است. یک Partial به این صورت نام گذاری می‌شود: partial.scss_ بااستفاده از دستور @import می‌توانید Partialهایی که در بالا گفته شد را به کدها اضافه کنیم. این کار با استفاده از یک Http Request انجام می‌شود.

 

 

 

فایل پیوست

emad ta
emad ta

15 آذر 99

2
حذف شده

نکته : در استفاده از mixin  ها وقتی برای یک تابع اش میایم و یک مقدار پیش فرض قرار نمیدهیم در هنگام استفاده اگر آن را ندهیم مقدار null را برای ما در نظر میگیرد همچنین ما زمانی که چندین حالت  optional در داخل برنامه امون در mixin  ها داریم  که یکی مقدار پیش فرض دادیم به بقیه نه باید حتی اون هایی که مقدار پیش فرض نمیخایم بهش بدهیم هم مقدار null  رو بهشون اضافه کنیم 

 

فایل پیوست

emad ta

توسط

emad ta

16 آذر 99