CSS/Bootstrap
[Bootstrap] @use 'sass:map'; map.get(), map-get(), map-deep-get()
비니_
2025. 4. 8. 20:50
728x90
@use 'sass:map';
.navigation {
&-menu {
display: flex;
flex-wrap: wrap;
#{ $self } {
@include padding((map.get($navigation, padding-y) * 0.5) 0);
width: map-deep-get($header, dropdown, width);
border: none;
border-radius: map-deep-get($header, dropdown, border-radius);
box-shadow: $box-shadow;
}
#{ $self }-link-extra {
@include margin-left(map.get($navigation, margin-x));
}
}
}
❓❓❓
@include padding((map.get($navigation, padding-y) * 0.5) 0);
=> $navigation이라는 map(객체) 안에서 'padding-y'라는 key의 value를 가져와라
가정:
$navigation: (
padding-y: 2rem,
padding-x: 1.5rem
);
결과: padding: (2rem * 0.5) 0; => padding: 1rem 0;
| 문법 | 사용 조건 | 설명 |
| map-get() | 예전 스타일(SCSS 기본) | 바로 사용 가능 |
| map.get() | Dart Sass + 모듈 시스템 | @use "sass:map"; 선언 필요 |
| map-deep-get() | 커스텀 함수 | 이전 작업자가 만들어 놓은 유틸 함수 👩🏻 해당 함수 정의 부분을 찾으려면 @function map-deep-get 로 검색 |
❓❓❓
map-deep-get($header, dropdown, width)
이전 작업자가 커스텀해 놓은 함수
@function map-deep-get($map, $keys...) {
@each $key in $keys {
$map: map.get($map, $key);
}
@return $map;
}
해당 함수 사용 예시)
$theme: (
header: (
dropdown: (
width: 200px,
border-radius: 8px
)
)
);
사용 방법)
map-deep-get($map, key1, key2, key3, ...)
map-deep-get($theme, header, dropdown, width) // → 200px
map-deep-get($theme, header, dropdown, border-radius) // → 8px
728x90