2014-12-19 3 views
1

는 :말대꾸는 문자열로 변수를 표시하는 것은 내가 다음과 같은 변수를 생성하는 사스에서 루프를 실행하기 위해 노력하고있어

$size-xs: 1em; 
$size-sm: 1.1em; 
$size-md: 1.2em; 
$size-lg: 1.3em; 

이것은 내가 지금까지 무엇을 가지고 :

$size-base:1em; 
$size-increment:0.1em; 

$size-list: "xs","sm","md","lg"; 

@each $value-size in $size-list { 
    $size-#{$value-size}:#{$i}; 
    $i:$size-base + $size-increment; 
} 

내가 겪고있는 문제는 $ size- 변수로 해석되지만, 그렇지 않다. 생성하고 싶은 변수 집합의 근원이다. 이 작업을 수행하는 방법에 대한 아이디어가 있습니까?

도움을 주셔서 감사합니다.

+0

예상되는 CSS 출력은 무엇입니까? –

+0

그래서 이것을 위해 실제로 CSS를 넣지 않습니다. 먼저 변수 목록을 생성하려고합니다. 이 변수는 나중에 CSS 클래스에서 사용됩니다. – loriensleafs

+0

새로운 변수를 동적으로 생성 할 수 없습니다. 그러나 궁금한 점은 왜 동적 변수의 가치를 만들어 내지 않는 것입니까? 당신은 이미 접두사의 하드 코딩 된 및 값만 변경 될 것이라고 가정합니다. –

답변

0

변수 이름을 그렇게 보간 할 수 없기 때문에 오류가 발생했습니다. (사용자가 정의되기 전에 $i도 사용하려고했습니다.)

하지만 스타일을 지정할 요소의 이름을 직접 지정할 수 있습니다. 예를 들면 다음과 같습니다.

$size-base: 1em; 
$size-increment: 0.1em; 
$size-list: "xs", "sm", "md", "lg"; 

@each $value-size in $size-list { 
    $size-base: $size-base + $size-increment; 
    .#{$value-size} { 
    font-size: $size-base; 
    } 
} 

요소 대신 무언지 자리 표시자를 출력 한 다음 필요할 때 확장 할 수도 있습니다.

$size-base: 1em; 
$size-increment: 0.1em; 
$size-list: "%xs", "%sm", "%md", "%lg"; 

@each $value-size in $size-list { 
    $size-base: $size-base + $size-increment; 
    #{$value-size} { 
    font-size: $size-base; 
    } 
} 

h2 { 
    @extend %lg; 
} 

이것은 h2 스타일 선언 만 컴파일합니다.

http://sassmeister.com/gist/a400ded59756a814c47e의 예를 참조하십시오.

+0

질문을 남기려면 언제나 투표 해주십시오. 중복? 이 질문은 명백한 중복이라는 사실을 염두에 두지 마십시오. 그러나 이것은 극히 형편없는 해결책입니다. 이러한 클래스를 확장 (코드가 부풀어 오름)하거나 프리젠 테이션 클래스로 마크 업을 오염시키는 것이 좋습니다. – cimmanon

+2

@cimmanon - 이와 같이 적대적인 의견을 가진 다른 사용자를 타겟팅하지 마십시오. 그들은 원하는 질문에 대해 좋은 대답을 자유롭게 줄 수 있으며, 이것이 중복임을 평가하는 데 동의하지 않을 수도 있습니다. –

관련 문제