2016-08-03 7 views
2

예 : 다음의 렌더링content 속성의 값에 CSS 사용자 정의 속성을 사용할 수 있습니까?

:root { 
    --PrimaryThemeColor: #3acfb6; /* with or without quotes */ 
} 

.ColorSwatch:after { 
    content: var(--PrimaryThemeColor); 
} 

, 계산 된 CSS 그대로 그 값이다. 내가 대체로 계산 된 값을 주입 후 프로세서를 사용하고 있더라도

content: var(--PrimaryThemeColor); 

, 값 자체가 문자열이 아닌, 그래서 content에 대해 유효합니다.

.ColorSwatch:after { 
    content: #3acfb6; 
    content: var(--PrimaryThemeColor); 
} 
+0

"따옴표 유무"란 무엇을 의미합니까? 따옴표로 올바르게 작동해야합니다. – BoltClock

+0

예 가능합니다. 하지만 문제는 'content'에서 변수를 사용하는 대신 색상을 문자열로 변환하는 것 같습니다. – Oriol

+0

CSS 변수는 CSS 속성에 적용 할 때 작동하지만 내용에 적용 할 때는 작동하지 않습니다. CSS 변수는 자바 스크립트 변수처럼 문자열의 값을 출력하지 않습니다. – Buffalo

답변

2

커스텀 속성의 값은 대응 var() 표현 순서 (리터럴 스트링 attr() 식 또는 content의 경우 임의의 수의 임의의 조합이 토큰은 상기 하나) 스트링이어야 문자열이 예상되는 곳이면 어디서든 올바르게 작동합니다.

var() 함수를 통해 문자열이 아닌 값을 문자열로 변환하거나 임의의 두 데이터 유형간에 변환 할 수 없습니다. 값은 항상 파싱되고, 그대로 저장되며, 값은 임의의 수의 토큰으로 구성 될 수 있으므로 데이터 유형 간의 변환은 매우 어려울 것입니다.

+0

맞아, 나는 이미 그것을 지적했다. > "값 자체가 문자열이 아니므로 내용에 유효하지 않습니다." –

+0

@Kevin Suttle : 네 - 당신 자신의 질문에 대답했습니다. – BoltClock

+2

합리적으로 보편적 인 사용 사례처럼 보입니다. 따라서'var' 구문을'var (- name type-or-unit)'으로 확장하는 것이 좋습니다. 이것은'font-size : var (- size px)'를 허용 할 것이고, 따라서 성가신'font-size : calc (1px * var (- size))'를 피하게되며, 내용 : var (- primaryThemeColor 문자열)'. ('type-of-unit'은 물론'attr()'함수에서 사용되는 것과 동일한 의미를가집니다.) –