기록하는 개발자

scss에서의 media query 적용하기 본문

Web

scss에서의 media query 적용하기

밍맹030 2023. 4. 7. 14:06
728x90

졸업 프로젝트에서 반응형 웹사이트를 만들 때 Css에 media query를 적용했던 적이 있다.

새로운 프로젝트를 시작하면서부터는 scss를 사용하고 있는데, 이 scss 에서 media query를 적용하는 방법을 알아보자.

 

_variables.scss

$breakpoint-mobile: 335px;
$breakpoint-tablet: 758px;
$breakpoint-desktop: 1024px;

Scss 에서는 css와 달리 변수 사용이 가능하다.

“_variables.scss” 파일을 만들고 변수로 breakpoint를 선언해준다.

변수를 저장할 파일이기 때문에 언더바 “_” 로 파일명을 시작한다.(언더바로 시작하는 파일은 파일 단위로 분리되어 컴파일 되지 않는다.)

 

mixin.scss

@import "./_variables.scss";

@mixin mobile {
  @media (min-width: #{$breakpoint-mobile}) 
    and (max-width: #{$breakpoint-tablet - 1px}) {
    @content;
  }
}

@mixin tablet {
  @media (min-width: #{$breakpoint-tablet}) 
    and (max-width: #{$breakpoint-desktop - 1px}) {
    @content;
  }
}

@mixin desktop {
  @media (min-width: #{$breakpoint-desktop}) {
    @content;
  }
}

 

Scss에서는 Mixin을 통해 Css를 재사용이 가능하도록 모듈화 할 수 있다. 

위처럼 Mixin으로 media query를 생성하고 나면 아래와 같이 scss 파일에 적용한다.

@include를 통해 mixin을 불러와 사용한다.

@import "../../../static/style/mixin";

@include desktop {
  div {
    width: 70%;
    min-width: 890px;
    margin: 0 auto;
  }
}

@include tablet {
  div {
    width: 65%;
    min-width: 650px;
  }
}

@include mobile {
  div {
    width: 60%;
    min-width: 500px;
  }
}
728x90