Matti Mäkitalo: HTML5 Elemente ausblenden (IE7/8)

Beitrag lesen

Hi,

Bekanntlich kann man ja mit html5shim/v älteren IEs die neuen HTML5 Elemente bekannt machen.

Was muss ich aber machen, damit ältere IEs diese Elemente erst garnicht rendern?

Die Css-Deklaration

header, footer, nav {display: none;}


> wird geflissentlich ignoriert (auch mit !IMPORTANT), was mir auch soweit einleuchtet, das die Elemente den Browsern ja unbekannt sind. Allerdings wird trotz Unwissen eine ganze Menge vom Inhalt dieser Elemente angezeigt und grade das möchte ich verhindern.  
  
Der Grund ist recht einfach. Die IE 7 und 8 machen aus dem Vorkommen von  
~~~html
  
<header>  
      blablub  
</header>  

implizit

  
<header />  
blablub  
</header />  

~~~. (Einrückung beachten, weil damit die Verschachtelung klar wird).  
  
blablub ist also kein Kindelement mehr von header, weil IE<9 das unbekannte Element header direkt schließt. Also blenden eine CSS-Anweisungen auch blablub nicht aus.  
  
Lösung: nutze auch dafür den html5shim.  
  
Bis die Tage,  
Matti