SASS에서 변수와 콘텐츠 블록의 스코프
콘텐츠 블록을 믹스인으로 전달할 때, 그 블록의 스코프는 믹스인의 위치가 아니라 블록의 구체적인 위치에 의해 결정됩니다. 결과적으로, 전달된 콘텐츠 블록 내에서는 믹스인의 로컬 변수를 사용할 수 없으며, 오직 전역 변수만 사용할 수 있습니다.
다음 예제를 살펴보겠습니다:
$size: 14px;
@mixin sizes ($size: 20px) {
font-size: $size;
padding: $size;
@content;
}
.navbar {
@include sizes {
margin: $size;
}
}
컴파일 결과:
.navbar {
font-size: 20px;
padding: 20px;
margin: 14px;
}
다음 코드의 컴파일 결과는 무엇이 될까요?
$color: yellow;
@mixin links ($color: red) {
background: $color;
@content;
}
다음 코드의 컴파일 결과는 무엇이 될까요?
$color: yellow;
$size: 10px;
@mixin links ($color: red, $size: 12px) {
background-color: $color;
font-size: $size;
@content;
}
.navbar {
@include links {
box-shadow: $color;
padding: $size;
}
}
다음 코드의 컴파일 결과는 무엇이 될까요?
$color: green;
$size: 6px;
@mixin links ($color: red, $size: 10px) {
color: $color;
font-size: $size;
@content;
}
.navbar {
@include links {
border-color: $color;
margin: $size;
}
}
#active{
@include links{
background-color: $color;
padding-top: $size;
padding-bottom: $size * 2;
}
}