Quando si utilizzano i commenti condizionali di IE, è necessario conoscere due tipi diversi. In primo luogo, quando l'intero contenuto è all'interno di un commento HTML (tra <!--
e -->
), ma IE leggerlo a causa della condizione:
<!--[if IE]>
This is inside a HTML comment, so most browsers will ignore it, but IE will
interpret it.
<![endif]-->
L'altro tipo è non un singolo commento, ma alcuni contenuti che browser vedranno, circondato da due commenti che renderà IE ignorarlo:
<!--[if !IE]> -->
This is not a HTML comment, so browsers should see it, but IE will ignore it.
<!-- <![endif]-->
(codice di evidenziazione del SO mostra la differenza - nella top uno tutto è grigio come è tutta commento, ma in questo testo è più scuro perché non è un commento).
The Haml support for IE conditional comments è utile solo per la creazione del primo tipo, poiché fa parte della sintassi per la creazione di commenti di blocco. Se si tenta di utilizzarlo per il secondo tipo (come avete qui) si ottiene qualcosa di simile:
<!--[if !IE]>
This is inside a HTML comment, so other browsers will ignore it.
IE will also ignore it, as the conditional states !IE.
So everything ignores it.
<![endif]-->
che è effettivamente un commento incondizionata.
Per poter utilizzare il tipo [if !IE]
in Haml, probabilmente dovrete farlo manualmente:
%p Some other content
<!--[if !IE]> -->
%p
Here's some content that shouldn't appear in IE.
<!-- <![endif]-->
Si potrebbe anche fare uso del Haml surround
helper, in questo modo:
%p Some other content
=surround '<!--[if !IE]> -->', '<!-- <![endif]-->' do
%p
Here's some content that shouldn't appear in IE.
(Se si utilizza Rails, sarà necessario utilizzare html_safe
sulle stringhe, ovvero surround '<!--[if !IE]> -->'.html_safe, '<!-- <![endif]-->'.html_safe do
).
Se si utilizza molto questo, potrebbe valere la pena creare un metodo di supporto che avvolge questa chiamata a surround
.
Qual è il codice HTML effettivo generato? –
– BronzeGate