SASS 를 이용해서 미디어 쿼리를 체계적으로 작성하기

2021. 1. 20. 22:19웹 프론트엔드 개발 노하우/퍼블리싱(HTML, CSS) 노하우

이 글은 아래의 영상의 내용을 기반으로 작성되었습니다.

www.youtube.com/watch?v=KWrGRZaBdgs

 

 

방법에는 총 두가지가 있습니다.

1. Break Point Mixin 생성

이 방법은 사용하는 것이 더 간단하지만 성능은 더 좋지 않습니다.

// mixin 생성
@mixin breakpoint($size) { 
    @if $size == mobile { 
    	@media screen and (min-width: 360px) { @content; } 
    } 
    @else if $size == tablet { 
    	@media screen and (min-width: 768px) { @content; } 
    }
    @else if $size == laptop { 
    	@media screen and (min-width: 1224px) { @content; } 
    }
    @else if $size == desktop { 
    	@media screen and (min-width: 1824px) { @content; } 
    }
} 
// 아래와 같이 어디서나 적용 
@include breakpoint(mobile) { ... }

 

2. —device 라는 이름의 mixin 들을 생성 후 media query 에 include 해서 적용

이 방법은 사용하는 방법이 복잡하고 귀찮은 점도 좀 있지만 css 로 트랜스파일된 결과물 파일에 여러번의 미디어 쿼리가 사용되지 않으므로 더 좋은 성능을 낼 수 있습니다.

 

// 미디어 쿼리 모음에 각 mixin 을 include 해서 적용 
@media screen and (min-width: 360px) { 
	@include mobile-header(); 
} 
@media screen and (min-width: 768px) { 
	@include tablet-header(); 
} 
@media screen and (min-width: 1224px) { 
	@include laptop-header(); 
} 
@media screen and (min-width: 1824px) { 
	@include desktop-header(); 
}

 

// components 폴더 생성 후 그 안에 기본 scss 와 미디어 쿼리에 넣을 mixin 의 내용 작성

.logo { ... } 

@mixin desktop-logo() { 
	.logo { ... } 
}

 

'웹 프론트엔드 개발 노하우 > 퍼블리싱(HTML, CSS) 노하우' 카테고리의 다른 글

HTML로 이메일 템플릿 제작하기  (0) 2020.11.05
CSS Animation (Transition & Keyframes)  (0) 2020.10.22
Positioning  (0) 2020.10.22
CSS Grid  (0) 2020.10.22
Flexbox  (0) 2020.10.22