Sass və SCSS-də Mixins.

Ağalar Yusublu
Pragmatech
Published in
2 min readJun 5, 2021

Mixin, saytımız boyunca yenidən istifadə edə biləcəyimiz CSS kodlarını qruplaşdırmağa imkan verən bir kod blokudur.

Məsələn, HTML elementini Flex elementi kimi göstərməyi götürək.

.row {
display: -webkit-flex;
display: flex;
}

Fleks şəklində göstərmək istədiyimiz bir çox element var və bu kodu dəfələrlə yazmaq olduqca cansıxıcı olur. Bu zaman Mixins-dan istifadə olunur.

Mixin yaratmaq çox sadədir, etməyimiz lazım olan @mixin əmrindən sonra boşluq və Mixin adından istifadə etmək, sonra bəzəkli mötərizəmizi açmaq və bağlamaq.

Məsələn:

@mixin flex {    
display: -webkit-flex;
display: flex;
}

Mixin istifadə etmək üçün sadəcə @include istifadə edirik və ardından Mixin adı və nöqtəli vergül istifadə olunur.

.row {
@include flex;
}

Parametrləri Mixin-ə ötürək:

Mixin strukturlarındakı dəyişənlər sayəsində parametrlər əldə edə bilərik.

@mixin a-button($base, $hover, $link) {
a {
background-color: $base;
color: white;
radius: 3px;
margin: 2px;

&:hover {
color: $hover;
}

&:visited {
color: $link;
}
}
}

Normal sintaksisdən istifadə edərək dəyişən parametrləri qarışıqlara ötürürük:

.menu-button {
@include a-button(blue, red, green);
}
.text-button {
@include a-button(yellow, black, grey);
}

@content

@content Mixin genişləndirilməsinə imkan verir. @Content istifadə edərək bir bloku Mixins-ə ötürə bilərik.

@mixin grid() {
@content;
}

Məsələn:

@mixin small() {
@media only screen and (max-width: 320px) {
@content;
}
}
////////////////////
@mixin has-content {
html {
@content;
}
}

@include has-content {
#logo {
background-image: url(logo.svg);
}
}

Aşağıdakı CSS çıxışı ilə nəticələnəcəkdir:

html #logo {
background-image: url(logo.svg);
}

Xülasə etmək üçün, Mixin quruluşları təkrarlayan kod bloklarını, proqramlaşdırma dillərindəki funksiyalar kimi, bir dəfə təyin edərək istədiyimiz yerdə təkrar istifadə edə bilərik.

Mixins açıq-aşkar çox faydası var.İş axınınızı sürətləndirir və onlarla edə biləcəyimiz çox şey var.

--

--