2010-08-13 10 views
5

Mi rendo conto che il parser CSS utilizzato da GWT gestirà solo i CSS2, ma sto prendendo di mira iPhone Safari, quindi voglio essere in grado di utilizzare alcuni elementi di CSS3. Per le proprietà, ho funzionato correttamente con la funzione literal fornita da GWT, ma ho problemi con i selettori CSS3, in particolare con la pseudo-classe not().Come ottenere GWT CSSResource per analizzare non() selettori

ho un po 'di CSS in questo modo:

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

Quando GWT carichi questo file come una risorsa, ottengo:

incontrato "(" Mi aspettavo uno di:. "{ "","

la funzione literal funziona bene per le proprietà, ma ho provato questo:

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

e appena ricevuto un messaggio di errore diverso:

incontrato "" non (.__ lod): "". Mi aspettavo una delle: <IDENT>

ho messo literal intorno tutto il blocco e il messaggio di errore è andato via, ma non credo che funzionerà senza @external ing tutto si fa riferimento in selettori che utilizzano questo (ci sono molti altri in questo file).

  1. Potrebbe funzionare?
  2. C'è un modo più aggraziato per farlo?
+0

capirei alcune CSS3 "cool" come le transizioni, ecc ma ': not' è difficilmente vale la pena - perché l'unico modo "elegante" Vedo è solo hacking Parser CSS per accettare selettori CSS3. –

+0

Il problema è che sto ereditando il file CSS di qualcun altro. Ho accesso per modificarlo ma mi piacerebbe non ricrearlo tutto. Qual è l'equivalente css2 della dichiarazione di cui sopra? Non penso che ci sia uno facile lì? – jhericks

risposta

7

Si esce dalle parentesi nel selettore con barre rovesciate. Quindi per la vostra CSS:

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

Grazie per la tua risposta, ma mi ero arreso così tanto tempo fa, quindi non ho il codice per testarlo. – jhericks

+0

Oh bene. È lì per i posteri :-) –

+2

+1 Funziona. Vale la pena notare che anche i selettori non più gnarly() possono essere sfuggiti usando abbastanza barre rovesciate. Ad esempio, 'not ([type =" search "])' diventa 'not \ (\ [type \ = \" search \ "\] \)'. –

Problemi correlati