2016-08-21 7 views
0

내 프로젝트 도우미 클래스를 여백, 글꼴 크기 등으로 만들기 때문에 문제가 있습니다. 클래스 이름을 정의하려면 클래스 이름의 속성을 "자리 표시 자"로 지정해야합니다.sass의 클래스 이름에 대한 동적 변수

현재 알 수 있듯이 범위 루프에 의해 m-r- (amount)을 생성하며 엄청난 한계 (컴파일 및 범위 시간)가 있습니다.

  1. $ value 변수가 자리 표시자인 처럼 작동하도록 할 수 있습니까?
  2. 그렇지 않다면 어떻게 할 수 있습니까?
  3. 다음

는 답변을

$break-small: 320px; 
    $break-medium: 768px; 
    $break-large: 1024px; 
    $break-extra: 1280px; 

    $baseSizes: (s: 1.5vw, m: 0.7vw, l: 5px, x: 5px); 
    $fontSizes: (s: 4.7vw, m: 2.08vw, l: 16px, x: 16px); 

    @mixin respond-to($media) { 
     @if $media == s { 
     @media (max-width: $break-medium) { 
      @content; 
     } 
     } 
     @else if $media == m { 
     @media (min-width: $break-medium) and (max-width: $break-large) { 
      @content; 
     } 
     } 
     @else if $media == l { 
     @media (min-width: $break-large) and (max-width: $break-extra) { 
      @content; 
     } 
     } 
     @else if $media == x { 
     @media (min-width: $break-extra) { 
      @content; 
     } 
     } 
    } 

    $range: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10; 

    $properties: (m: "margin", p: "padding", b: "border"); 
    $directions: (t: "top", b: "bottom", l: "left", r: "right", a: "all"); 

    @each $value in $range { 
     @each $breakpoint, $size in $baseSizes { 
     @each $aliasProp, $propValue in $properties { 
      @each $aliasFrom, $fromValue in $directions { 

      @if $aliasFrom == a { 
       .#{$aliasProp}-#{$aliasFrom}-#{$value} { 
       $final: calc((#{$value} * #{$size}) * 2); 

       #{$propValue}: $final; 
       } 
      } 

      @if $aliasFrom != a { 
       .#{$aliasProp}-#{$aliasFrom}-#{$value} { 
       $final: calc((#{$value} * #{$size}) * 2); 

       #{$propValue}-#{$fromValue}: $final; 

       &-#{$breakpoint} { 
        @include respond-to($breakpoint) { 
        $final: calc((#{$value} * #{$size}) * 2); 

        #{$propValue}-#{$fromValue}: $final !important; 
        } 
       } 
       } 
      } 


      } 
     } 
     } 
    } 

http://codepen.io/anon/pen/NAmVVj codepen 감사에 대한 링크입니다!

답변

0

gulp-sass가 ~ 23 초인 반면 node-sass를 통해 라이브러리를 처리하여 해결했지만 여전히 no1 질문에 대해 궁금합니다.

관련 문제