TIL 25 SCSS(3) Mixins

biblee·2023년 4월 10일

TIL

목록 보기
25/28

#Mixins

1. scss functionality를 재사용할 수 있게 해준다.
2. Mixins은 compile 될 수 없다.
variables과 마찬가지로 앞에 밑줄(_)을 사용하여 파일을 만들어야한다.

맨처음에 @mixin ${name} <=(mixin의 이름) 을 작성한다

ex) 
@import biblee {

color: blue;
font-size: 32px;
margin: 20px;

}

위와 같이 선언해주고 해당 코드를 적용하고 싶으면 variable과 동일하게 style.scss에서
@import "_${name}"을 해주어야한다

그리고 내가 적용하고싶은 요소에 아래와 같이 작성하면 된다.

.box1 {

@include biblee(); // Mixins는 function과 비슷하다

}

해당 스타일은 하나의 태그에 전부 적용이 가능하겠지만 따로 적용하는 방법도 있다.

Ch2

1. _Mixins.scss 파일

@mixin link($color){

 text-decoration: none;
  font-size: 40px;
  display: block;
  color: $color;  <=== 우리가 원하는 값

 }

2. styles.scss

a {
  &:nth-child(odd) {
    @include link(red); // 홀수의 글씨는 RED
  }
  &:nth-child(even) {
    @include link(blue); // 짝수의 글씨는 BLUE
  }
}

odd: 홀수 , even : 짝수

위와 같이 홀수 요소에는 color를 blue로 짝수 요소에는 color를 red로 적용할 수 있다.

또 다른 방법으로는 함수 처럼 사용 할 수 있다.

Ch3

if , else를 사용 할 수 있으며 , 비교연산자 (==)를 사용 할 수 있다.

1. _mixins.scss

@mixin link($word) {
  text-decoration: none;
  font-size: 40px;
  display: block;
  @if $word== "odd" {  // 만약 홀수 이면 글씨색은 yellow , 홀수가 아니면 blue
    color: yellow;
  } @else {
    color: blue;
  }
}

2.style.scss

li {
  &:nth-child(odd) {
    @include link("odd");
  }
  &:nth-child(even) {
    @include link("even");
  }
}

li : 홀수 번째 자식들은 color:blue로 변하게 되고 짝수 번째 자식들은 color:yellow로 변하게 된다.

0개의 댓글