티스토리 뷰
발생일: 2015.06.05
키워드: less
문제:
엘리먼트의 높이에 따라 `height100px`, `height200px`과 같은 식으로 클래스를 할당하려고 한다.
정상적인 경우엔 이런 클래스를 만들지 않겠지만, 몇 가지 이슈 때문에 우회하는 방법을 선택했다.
여튼, 예를 들어, 100px 부터 2000px 까지 20px 단위로 클래스를 생성할 생각이다.
less 를 쓰고 있는데, 동적으로 클래스명을 할당하면 작성하기 편할 것 같다.
클래스명도 변수를 이용해서 동적으로 생성할 수 있나?
해결책:
클래스명에 `@{변수명}` 형태로 할당하면 된다.
아래 코드처럼 mixin 을 생성해서, 재귀호출하는 식으로 처리했다.
// Mixin: 높이가 2000이 될 때까지 클래스를 생성한다.
.makeHeightClasses(@height) when (@height <= @viewer-max-height) {
&.is-height@{height} {
height: @height !important;
}
.makeHeightClasses(@height + 20);
}
참고:
http://blog.gleitzman.com/post/69120318918/generating-repetitive-css-with-loops-in-less
반응형
댓글
공지사항