Yücel Alkan

SASS ve SCSS'te if else Kullanımı

Merhaba. Bu yazımda SASS ve SCSS'te kullanılan Flow Control yani akış kontrol yapılarından biri olan if ve if-else yapısından bahsedeceğim. 

Programlama dillerinde olduğu gibi SASS ve SCSS'te de if-else yapısı mantıksal ve matematiksel kıyaslamalar yapmak için kullanılır. If-else yapısı ile aşağıdaki operatörleri kullanabilmekteyiz. 

== Eşittir
!= Eşit Değildir / Farklıdır
>  Büyüktür
>= Büyük veya Eşittir
<  Küçüktür 
<= Küçük veya Eşittir 

SASS ile yapacağımız bir örnek ile if-else kullanımına göz atalım. 

@mixin icon($boyut, $yuvarlak) 
    width: $boyut 
    height: $boyut 

    @if ($yuvarlak)
        border-radius: $boyut/2

.profilBilgi 
    float: left 
    @include icon(40px, true) 

Bu örnekte icon adında bir mixin oluşturup iki tane parametre gönderdim. Parametrelerden biri genişlik ve yüksekliği belirleyecek olan $boyut parametresi, diğeri ise oluşturulan bu alanın kare mi yoksa dikdörten mi olacağını belirleyen ve true/false şeklinde bir değer alan $yuvarlak adlı parametre. Bu işleme göre eğer icon mixin'i çağırılırken $yuvarlak parametresi true olarak gönderilirse yuvarlak bir alan oluşturulacak yani border-radius eklenecek, false olarak gönderilirse kare bir alan oluşacaktır. 

Yukarıdaki aynı örneği SCSS ile yapalım. 

@mixin icon($boyut, $yuvarlak) {
    width: $boyut;
    height: $boyut; 

    @if ($yuvarlak)
        border-radius: $boyut/2;
}

.profilBilgi { 
    float: left ;
    @include icon(40px, true) ;
}

Bu iki bloğun çıktısı aşağıdaki gibi olacaktır. 

.profilBilgi {
  float: left;
  width: 40px;
  height: 40px;
  border-radius: 20px;
}

Eğer $yuvarlak parametresini false olarak gönderseydim, .profilBilgi bloğu içerisinde border-radius ifade oluşmayacak ve alanımız kare olacaktı.

2. Örnek: Bu örnekte ise bir mixin yapısı oluşturup, parametre ile gönderdiğim takım ismine göre arkaplan ve yazı renkleri oluşturmak istiyorum. Buradaki kontroller için yine if-else yapısını kullanacağım. 

@mixin stil($takim)
    @if ( $takim == "ss" )
        background: red
        color: #fff 
    @else if( $takim == "bs" )
        background: green 
        color: #fff 
    @else if ( $takim == "as" )
        background: orange
        color: green

.kutu 
    float: left 
    @include stil("ss")

Bu örnekte, stil adlı mixin'e gönderdiğim takim adlı parametreyi if-else bloğuyla kontrol edip, bu değerlere göre arkaplan ve yazı renkleri oluşturuyorum. Aynı örneği şimdi de SCSS içerisinde yapalım.

@mixin stil($takim){
    @if ( $takim == "ss" ) {
        background: red;
        color: #fff ;
    } @else if( $takim == "bs" ) {
        background: green ;
        color: #fff ;
    } @else if ( $takim == "as" ) {
        background: orange;
        color: green;
    }
}
.kutu {
    float: left;
    @include stil("ss")
}

Bu iki örneğin de çıktısı aşağıdaki gibi olacaktır.

.kutu {
  float: left;
  background: red;
  color: #fff;
}

Eğer parametreyi ss değil de bs olarak gönderirsem aşağıdaki gibi bir çıktı elde edeceğim.

.kutu {
  float: left;
  background: green;
  color: #fff;
}

Görüldüğü gibi gönderdiğim takım isimlerine göre if-else yapısını kullanarak dinamik olarak arkaplan ve yazı rengi özelliklerini vermiş olduk.

Bu içeriğe ait video derse aşağıdan ulaşabilirsiniz.

Soru ve görüşlerinizi yorum olarak yazabilirsiniz. Hayırlı çalışmalar dilerim.

Yorumlar
Bu içeriğe henüz yorum yapılmamıştır. İlk yorum yapan siz olun!
Yorum Yapın