2012-02-14 4 views
2
나는 하나의 중앙 위치에, 말하고 싶으면

,어떻게 여러 CssResource CSS 파일에서 동일한 @def를 사용할 수 있습니까?

@def mainColor = #f00; 

을하고, 내 다른 CSS 파일의 모든에서, 다시 정의 할 필요없이 mainColor를 참조하십시오. 그런 다음 한 번에 mainColor를 변경하면 전체 앱 색상이 바뀝니다.

내가 생각할 수있는 가장 좋은 방법은 모든 CssResource 선언에 두 개의 @Source 개의 파일을 포함시키고 항상 전역 def 파일을 포함시키는 것입니다. 다른 방법이 있습니까?

+0

를 사용할 수 있을까? – checketts

+1

방금 ​​아래 Danny Kirchmeier의 답변에 댓글로 추가했습니다. 이것은 구문과 컨텍스트가 다른 본질적으로 같은 기술입니다. –

답변

5

지금까지 내가 아는 한,이 유일한 옵션이다 :

있는 style.css

@def mainColor #f00; 

* .ui.xml

<ui:style src="../../../styles/style.css"> 
    .widget{ color: mainColor; } 
</ui:style> 

이의 단점 상대 경로입니다. 각 ui.xml에는 다른 src 경로가 필요합니다. 당신이 Constants.java 파일 (CSS 대신), 를 사용하여 마음을 해달라고하면

또는, 당신은 당신이 비교를 위해 또 다른 '대답'로 자신의 @Source 예를 추가 시겠어요 @eval

<ui:style> 
    @eval mainColor com.myproject.client.Styles.INSTANCE.mainColor(); 
    .widget{ color: mainColor; } 
</ui:style>  
+0

Oof. 제안 해줘서 고마워. 그러나 이들은 매우 거친 것입니다;) –

+2

@Thomas Broyer가 https://groups.google.com/forum/#!msg/google-web-toolkit/c8XdDoxDNZA/dWtkdAENYXMJ에서이 방법을 사용한다고 덧붙였습니다. uibinders 외부에서 그는 여러 가지 @Source 기술에 대해 언급했다 :'@Source ({ "path/to/definitions.css", "foo.css"}) FooStyles foo;' –

관련 문제