@mixin flexbox {
display: flex;
justify-content: center;
align-items: center;
}
body {
@include flexbox;
}
@mixin
으로 스타일을 정의하고 @include
로 적용@mixin flexbox($width, $height) {
display: flex;
justify-content: center;
align-items: center;
width: $width;
height: $height;
}
body {
@include flexbox(100vw, 100vh);
}
@import
는 사용할 때마다 http 호출을 해서 속도 저하가 발생하지만 SCSS의 @import
는 CSS로 컴파일하면서 바로 처리하기 때문에 속도 저하가 없다@import 'post.scss';
@import 'post'; // 확장자 생략 가능
_
를 붙여주면 CSS로 컴파일될 때 해당 파일은 컴파일되지 않는다_
파일의 내용은 적용되지만 CSS로 컴파일되지 않아 관리하기 편리하다@import
와 비슷하다@use
로 가져온 스타일은 여러번 로드되더라도 컴파일된 CSS 파일에는 한 번만 표시@use 'global';
body {
@include global.flexbox(100vw, 100vh);
}
@use
와 비슷하다@use
와 다르게 @forward
를 사용하면 페이지 내에서 @forward
한 모듈의 mixin, 변수 등을 사용할 수 없다@forward
로 모듈을 가져온 파일을 @use
를 사용해 import하면 된다@use
한 파일에서 @use
한 파일 안에 있는 콘텐츠를 사용하고 싶을때 @forward
// main.scss
@use 'global';
@forward 'global';
main {
@include global.flexbox(100px, 100px);
}
// index.scss
@use 'main';
body {
@include main.flexbox(100vw, 100vh);
}
참고자료
https://www.biew.co.kr/entry/SassㆍSCSS-SASS-문법-5편-mixin-extend-import
https://www.liquidlight.co.uk/blog/use-and-import-rules-in-scss/