2010-08-13 5 views
5

GWT에서 사용하는 CSS 파서는 CSS2 만 처리하지만 iPhone Safari를 대상으로하므로 CSS3 항목을 사용할 수 있기를 원합니다. 속성의 경우 GWT에서 제공하는 literal 함수를 사용하여 문제가 없었지만 CSS3 선택기와 관련된 문제가 발생했습니다. 특히 not() 가상 클래스입니다. 리소스로 GWT는 하중이 파일을GWT CSSResource에서 not() 선택자를 구문 분석하는 방법

.iMore:not (.__lod):active { 
    color: #fff 
} 

, 내가 얻을 :

이 같은 CSS의 비트

중 하나 기다리고 있었다 "("가 발생했습니다. "{ "", "

literal 기능이 속성에 대해 잘 작동하지만이 시도 :

을 발생

""하지 (.__ LOD) : ""

.iMore:literal("not (.__lod)"):active { 
    color: #fff 
} 

및은 다른 오류 메시지를 받았습니다. 중 하나를 기다리고 있었다 : <IDENT>

나는 전체 블록 주위에 literal을 넣고 오류 메시지가 멀리 갔다,하지만 난 거기에 (즉, 이것을 사용 선택기에서 참조 @external 보내고 모든없이 작동합니다 생각하지 않습니다 이 파일에있는 다른 많은 것들).

  1. 작동 여부
  2. 더 우아한 방법이 있습니까?
+0

는 내가 전환 등하지만 '같은 일부 "쿨"CSS3을 이해하는 것 CSS 파서가 CSS3 선택기를 허용합니다. –

+0

문제는 다른 사람의 CSS 파일을 상속한다는 것입니다. 편집 할 수있는 권한이 있지만 모든 것을 다시 만들고 싶지는 않습니다. 위의 문장과 동일한 CSS2가 무엇입니까? 나는 거기에 쉬운 것이 있다고 생각하지 않습니까? – jhericks

답변

7

선택기에서 괄호를 백 슬래시로 이스케이프합니다. 당신의 CSS에 대한 그래서 - 내가 볼 수있는 유일한 "우아한"방법은 바로 해킹 때문에 not`는 노력이 거의 가치가있다 :

.iMore:not \(.__lod \):active { 
    color: #fff 
} 
+1

답변을 주셔서 감사합니다.하지만 오래 전에 포기 했으므로 테스트 할 코드가 없습니다. – jhericks

+0

오 잘. 그것은 후손을위한 것입니다 :-) –

+2

+1 이것은 작동합니다. 충분한 백 슬래시를 사용하여 더 이상 쓸모없는() 셀렉터를 이스케이프 처리 할 수 ​​있다는 점은 주목할 가치가 있습니다. 예를 들어'not ([type = "search"])'는'not \ (\ [type \ = \ "search \"\] \)'가됩니다. –

관련 문제