Omgekeerd conditional comment! [if !IE]

Status
Niet open voor verdere reacties.

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:
HTML:
<!--[if IE]>
   ... wat je wilt dat IE doet ...
<![endif]-->
of:
HTML:
<!--[if IE 6]>
   ... wat je wilt dat IE 6 doet ... (let op de spatie tussen IE en 6!)
<![endif]-->
of:
HTML:
<!--[if lt IE 8]>
   ... wat je wilt dat de IE's vóór IE 8 doen ... (lt = less then)
<![endif]-->
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:
HTML:
<!--[if !IE]>-->
   ... wat je wilt dat andere browsers dan IE doen ...
<!--<![endif]-->
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.
 
Laatst bewerkt:
PS:
Grappig, de CSS-validator geeft in het gevalideerde Cascading Style Sheet beide varianten weer, alsof er geen cc bestond; zie hier helemaal onderaan.

klopt, dit komt omdat de conditional comment is uit gecommentarieerd, oftewel, deze heef totaal geen invloed op de code volgens de validator want het is puur commentaar.
BTW: graag wel even vraag opgelost aanvinken als je geen antwoord verwacht, anders denken mensen dat er om hulp gevraagd word, terwijl het juist een tip is over omgekeerde CC

MvG
tiran818
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan