2014-06-10 1 views
0

이것은 주로 구문 질문입니다.이 작업을 수행 할 수 있지만 변수를 선언하고 변수를 선언하고 연결하는 가장 좋은 방법은 모르겠습니다. for 루프의 문자열 근본적으로 필자는이 맵을 사용하여 색상의 변수와 글꼴 색 및 배경색과 같은 스타일을 할당하는 클래스를 생성했습니다.scss assoicated 배열을 가져 와서 변수와 클래스를 생성하고 싶습니다.

$color-collection: ('white': '#FFFFFF', 'black': '#000000', 'goldenrod': '#F59600'); 
@for $i from 0 to length($color-collection) { 


//create a variable for each color name, e.g. $white: #FFFFFF; 
//create a class for each variable name with a style, e.g. .bg-color-white {background-color: $white;} 

} 

답변

0

우선 @for 대신 @each을 사용해야합니다.

둘째 루프에서 필요한 두 개의 변수 만 얻을 수 있습니다. 첫 번째 변수는 키이고 두 번째 변수는 값입니다.

세 번째로 sass 보간을 사용하여 변수를 클래스 이름에 포함하고 선택기에서 값을 unqote 할 수 있습니다. 나는 이것을 위해 unqote($color-value)을 사용할 수도 있다고 생각합니다. 아니면 단순히 색상 값을 따옴표없이 배열에 쓸 수 있습니다.

아래 예를 참조하십시오.

$color-collection: ('white': '#FFFFFF', 'black': '#000000', 'goldenrod': '#F59600'); 
@each $color-name, $color-value in $color-collection { 

    .bg-color-#{$color-name} { 
    background-color: #{$color-value}; 
    } 
//create a variable for each color name, e.g. $white: #FFFFFF; 
//create a class for each variable name with a style, e.g. .bg-color-white {background-color: $white;} 

} 

http://sassmeister.com/gist/e321b7e36ed0e74cd2ce

여기 libsass 사용하고 있기 때문에 나이가 말대꾸 구문과 함께 일하는 것이 몇 가지 코드입니다 :

$color-collection: ('white' '#FFFFFF'), ('black' '#000000'), ('goldenrod' '#F59600'); 
@each $color in $color-collection { 
    $color-name: nth($color, 1); 
    $color-value: nth($color, 2); 
    .bg-color-#{$color-name} { 
    background-color: #{$color-value}; 
    } 
} 
유망 보이는

http://sassmeister.com/gist/28caaf9d5e644d5db0cc

+0

하지만 정의 할 때 나는 배열을 얻을 $ color-collection 변수. 아마도 내 버전의 scss가이를 지원하지 않습니까? 어떤 버전을 사용하고 있는지 어떻게 알 수 있습니까? 나는 "gulp-sass"를 사용하고 있습니다 : "0.7.x"하지만 어떤 버전의 sass가 어떤 버전인지는 알지 못합니다. – asolberg

+0

gulp-sass는 libsass를 사용합니다. libsass는 훨씬 빠르지 만 아직은 순열 어레이를 지원하지 않습니다 (아직). libsass에 대해 Sass 3.3 스펙 (이 어레이가 있음)을 얻기 위해 많은 작업이 이루어지고 있지만, 현재 그들은 3.2를 목표로하고 있습니다. "gulp-ruby-sass"를 사용할 수는 있지만 CSS를 렌더링하는 데 약간 느려질 수 있습니다. – KnutSv

+0

gulp-sass를 계속 사용하려면 libsass와 작동하는 몇 가지 코드를 추가했습니다 – KnutSv

관련 문제