2010-10-07 25 views
5

Vorrei essere in grado di utilizzare oggetti vml su un rendering di pagina in modalità standard anziché in modalità quirk. Ho trovato frammenti di risposte sparsi in giro ma non riesco a capirlo. Raphael lo tira fuori in qualche modo ma non posso invertire per capire cosa sta succedendo. Qualsiasi esempio di base di lavoro sarebbe fantastico.Come faccio a far funzionare VML in modalità standard?

risposta

7

Penso di averlo capito. Il passaggio 1 sta importando lo spazio dei nomi vml tramite javascript.

document.namespaces.add('v', 'urn:schemas-microsoft-com:vml', "#default#VML"); 

Questo ha alcuni esempi di vml casuali per funzionare in modalità strane ma non standard. La chiave è che gli elementi richiedono un'unità per le misurazioni in cui la modalità quirks assumerà px se non viene fornita un'unità. Anche le forme devono essere abbinate a position:absolute; sebbene le linee apparentemente non abbiano bisogno di questa parte.

Ecco un esempio con 2 ovali. Entrambi gli ovali renderanno in modalità strane ma l'ovale blu non verrà visualizzato in modalità standard.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head></head> 
<body> 
    <script> 
     document.namespaces.add('v', 'urn:schemas-microsoft-com:vml', "#default#VML"); 
    </script> 
    <v:oval style="width: 100; height: 50" fillcolor="blue"></v:oval> 
    <v:oval style="position: absolute; width: 100px; height: 50px" fillcolor="green"></v:oval> 
</body> 
</html> 
0

Perché non usi semplicemente Raffaello in sé invece di utilizzare VML raw? I ragazzi di Raphael hanno fatto un ottimo lavoro producendo una libreria standard che funziona quasi ovunque - sfrutta il loro duro lavoro.

+0

Ho un progetto esistente con un sacco di vml che funziona in modalità quirks. Mi piacerebbe sapere cosa serve per cambiare la modalità della pagina piuttosto che scambiare tutte le chiamate vml per raphael. – lincolnk