css 작업시 이미지 경로를 여러곳에 써야 할때, 어찌보면 별거 아닌 일이지만 매우 귀찮은 일임에는 틀림 없을 것입니다. 거기다가 중간에 경로가 변경이라도 된다면, 작업한 경로를 하나하나 찾아 바꿔줘야 하겠지요. 이럴 경우에도 scss가 도움을 줄 수 있습니다.
변수로 이미지 경로 관리하기
scss에서 이미지 경로를 변수로 정의해 둔다면, 경로를 반복해서 입력할 필요 없이 변수만 입력하면 됩니다. 경로가 바뀌었을 경우에도, 변수를 정의한 부분만 수정해주면 되니 유지보수에도 유리합니다.
// 이미지경로 변수 정의
$image-path: "../assets/images";
// 변수 사용
.background {
background-image: url("#{$image-path}/background.jpg");
background-size: cover;
background-position: center;
}
경로를 $image-path라는 변수로 정의해 두고 사용해 보았습니다. 단순히 변수 이름만 사용한다면 scss가 변수의 값을 문자열로 합치지 못하므로, #{$변수} 형식을 사용하여 scss가 변수를 문자열로 변환하여 결합하도록 합니다.
믹스인으로 스타일까지 관리하기
이번에는 경로 뿐만 아니라, 배경이미지를 사용할 때 반복적으로 쓰이는 코드까지 믹스인으로 만들어 사용해 봅시다.
// 믹스인 정의
@mixin background-image($image-name, $size: cover, $position: center) {
background-image: url("#{$image-path}/#{$image-name}");
background-size: $size;
background-position: $position;
background-repeat: no-repeat;
}
// 사용 예시
.header {
@include background-image("header-bg.jpg");
}
.footer {
@include background-image("footer-bg.jpg", contain, bottom);
}
background-image라는 믹스인에, 이미지파일명 $image-name, 배경 사이즈 $size, 배경 위치 $position을 인자로 넣었습니다. 항상 변경되는 부분인 $image-name을 제외하고는 기본값을 지정하였습니다.
이제 사용 예시처럼 이미지의 파일명만 넣어주면, 코드를 반복적으로 작성하지 않고 쉽게 쓸 수 있겠네요.
/* css */
.header {
background-image: url("assets/images/header-bg.jpg");
background-size: cover;
background-position: center;
background-repeat: no-repeat;
}
.footer {
background-image: url("assets/images/footer-bg.jpg");
background-size: contain;
background-position: bottom;
background-repeat: no-repeat;
}
'👩💻 > CSS, SCSS' 카테고리의 다른 글
SCSS 활용 팁 6. 참조 선택자 "&"을 활용하여 BEM 방법론에 따라 클래스 네이밍하기 (0) | 2025.01.13 |
---|---|
SCSS 활용 팁 5. 믹스인(mixin)으로 반응형 중단점 쉽게 관리하기 (0) | 2025.01.10 |
SCSS 활용 팁 4. @extend를 이용한 스타일 상속 (0) | 2025.01.08 |
SCSS 활용 팁 2. @if/@else를 포함한 @mixin으로 텍스트 말줄임 쉽게 처리하기 (0) | 2025.01.06 |
SCSS 활용 팁 1. @function을 활용하여 px을 rem으로 쉽게 변환하기 (0) | 2025.01.06 |