Sto sviluppando un'applicazione che utilizza ubiquity-xforms. In precedenza avevo pubblicato le pagine come text/html con il doctype XHTML 1.0.Puoi modellare gli elementi XHTML in un altro spazio dei nomi utilizzando id e selettori css del nome di classe?
Se passassi il tipo mime a application/xhtml + xml, vedrei un miglioramento delle prestazioni piuttosto grande, perché il javascript potrebbe usare le funzioni get ____ NS(), invece di quello che sta facendo ora (iterando lentamente attraverso l'intero Albero DOM ogni volta che è necessario selezionare un elemento).
Ma quando ho provato questo, un po 'del mio CSS ha smesso di funzionare. Ho notato che quando ho controllato gli elementi, sia in Firebug che in WebKit Nightly Web Inspector, il punto di errore erano i selettori css ". Nomass" e "nid" sugli elementi nello spazio dei nomi XFORMS. Ho anche notato che nelle proprietà DOM elencate per quegli elementi mancavano entrambi gli attributi 'id' e 'className'.
La mia domanda è, c'è un modo per far sì che l'UA riconosca questi come classi e id?
Le cose che ho provato, inutilmente:
- specificando il "id" attributi come ID in ATTLIST di un doctype linea
- cercando ogni doctype ho potuto, o nessun doctype affatto
- qualificando gli attributi id e class name nello spazio dei nomi xhtml (es. xhtml: id)
Ecco alcuni esempi di xhtml. Non funziona sia in Firefox 3.5 o Safari 4/WebKit Nightly
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:xf="http://www.w3.org/2002/xforms">
<head>
<style type="text/css">
/* <![CDATA[ */
#test {
background-color: red;
}
.testing {
color: blue;
}
/* ]]> */
</style>
</head>
<body>
<xf:group id="test" class="testing">Test</xf:group>
</body>
Dato che sto sviluppando un'applicazione interna, mi è stata data l'autorizzazione per impostare i requisiti del browser, quindi IE non è un problema (la versione di base è Firefox 3.6 e Safari 4). Speravo di evitare di dover modificare tutti gli stili, ma sembra che non abbia molta scelta. – Frankie