csshunter
Meubilair
- Lid geworden
- 4 aug 2009
- Berichten
- 6.465
Normaal gesproken pas je een conditional comment (een "voorwaardelijk commentaar") toe, als je wilt dat alleen Internet Explorer (of: een bepaalde IE versie) iets moet doen, en andere browsers niet.
Dit gaat met een speciale code in de html, waarop alleen Internet Explorer reageert:
of:
of:
Maar ik kwam tegen, dat er ook een omgekeerd conditional comment bestaat. D.w.z. daarop reageert Internet Explorer niet, maar alle andere browsers wel. De code moet dan zijn:
Normale browsers zien (zoals het hoort) door de --> in regel 1, dat het commentaar dat met <!-- begint, afgelopen is.
Daarom wordt regel 2 (= de erop volgende code) gewoon uitgevoerd.
Regel 3 wordt weer gezien als een commentaar-regeltje, waar verder niets mee hoeft te gebeuren.
Maar Internet Explorer is zó geprogrammeerd, dat als IE de <!--[if !IE] ziet, alles vóór de <![endif]--> als commentaar gezien wordt (de eerste --> wordt overgeslagen), en alles ertussen wordt dus niet weergegeven op het scherm.
Zie hier het:
In de praktijk zal je het niet erg nodig hebben (meestal moet je uitzonderingen voor Internet Explorer maken), maar je weet nooit of het niet eens van pas komt.
Het is maar een weet!
CSS-hunter
PS:
Grappig, de CSS-validator geeft in het gevalideerde Cascading Style Sheet beide varianten weer, alsof er geen cc bestond; zie hier helemaal onderaan.
Dit gaat met een speciale code in de html, waarop alleen Internet Explorer reageert:
HTML:
<!--[if IE]>
... wat je wilt dat IE doet ...
<![endif]-->
HTML:
<!--[if IE 6]>
... wat je wilt dat IE 6 doet ... (let op de spatie tussen IE en 6!)
<![endif]-->
HTML:
<!--[if lt IE 8]>
... wat je wilt dat de IE's vóór IE 8 doen ... (lt = less then)
<![endif]-->
HTML:
<!--[if !IE]>-->
... wat je wilt dat andere browsers dan IE doen ...
<!--<![endif]-->
Daarom wordt regel 2 (= de erop volgende code) gewoon uitgevoerd.
Regel 3 wordt weer gezien als een commentaar-regeltje, waar verder niets mee hoeft te gebeuren.
Maar Internet Explorer is zó geprogrammeerd, dat als IE de <!--[if !IE] ziet, alles vóór de <![endif]--> als commentaar gezien wordt (de eerste --> wordt overgeslagen), en alles ertussen wordt dus niet weergegeven op het scherm.
Zie hier het:
In de praktijk zal je het niet erg nodig hebben (meestal moet je uitzonderingen voor Internet Explorer maken), maar je weet nooit of het niet eens van pas komt.
Het is maar een weet!

CSS-hunter
PS:
Grappig, de CSS-validator geeft in het gevalideerde Cascading Style Sheet beide varianten weer, alsof er geen cc bestond; zie hier helemaal onderaan.
Laatst bewerkt: