Ole: HTML5 Elemente ausblenden (IE7/8)

Moin,

vorweg: Es geht hier um ein Intranet.

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.

Natürlich könnte ich jetzt jedes Kind dieser Elemente einzeln ansprechen, aber das wäre doch ziemlich mühselig.

Google lässt mich bei meinem Vorhaben leider auch alleine. Das Vorhaben schein wohl etwas unüblich zu sein.

Mir stehen CSS + JS zur Verfügung.

Hat jemand eine Idee?

Danke & Gruß
Ole

  1. Hallo,

    ohne Link zur Seite kann man nur raten, das du die CSS-Anweisung falsch einbindest.

    Gruss

    MrMurphy

    1. Hi

      ohne Link zur Seite kann man nur raten, das du die CSS-Anweisung falsch einbindest.

      Auf ein geschlossenes Intranet zu verlinken ist "ein bisschen" schwierig, allerdings ist es nicht wirklich schwierig einen Style-Abschnitt zu platzieren. Das mache ich schon richtig.

        
      <!--[if lt IE 9]>  
      <style>  
      header, footer, nav {display: none;}  
      </style>  
      <![endif]-->  
      
      

      Auch wenn ich da andere Angaben mache wie zum Beispiel

        
      body {background: #f00;}  
      
      

      funktioniert das hervorragend.

      Danke & Gruß
      Ole

  2. Hi!

    Hat jemand eine Idee?

    In einem Intranet mit veralteten Browsern kein HTML5 benutzen.

    Warum willst Du ueberhaupt die HTML5 Elemente verschwinden lassen? Ist deren Inhalt fuer User veralteter Browser nicht relevant?

    --
    Signaturen sind blöd!
    Frauen: Wenn sie gefunden haben, was sie suchen, schmeissen sie's weg...
    1. Hi Steel,

      In einem Intranet mit veralteten Browsern kein HTML5 benutzen.

      Ist schon so beabsichtigt :)

      Warum willst Du ueberhaupt die HTML5 Elemente verschwinden lassen? Ist deren Inhalt fuer User veralteter Browser nicht relevant?

      Nutzer mit älteren IEs bekommen einen Nachricht angezeigt, dass sie sich doch bitte bei der IT melden sollen, damit die das System aktualisieren können.
      Und damit nur dieses Nachricht angezeigt wird und nicht das Gerumpel drumrum, müssen die HTML5-Elemente eben weg.

      Gruß
      Ole

      1. Hi!

        Nutzer mit älteren IEs bekommen einen Nachricht angezeigt, dass sie sich doch bitte bei der IT melden sollen, damit die das System aktualisieren können.
        Und damit nur dieses Nachricht angezeigt wird und nicht das Gerumpel drumrum, müssen die HTML5-Elemente eben weg.

        Achso. Da wunderts mich, dass die IT die alten Dinger nicht einfach ersetzt. Ausser, die haben noch irgendeinen Existenzgrund. Dann waere dein Vorhaben aber auch unpraktisch. Oder sind deine Seiten nicht von Belang, so dass die User selbst entscheiden koennen?

        Da Du JS zur Verfuegung hast wuerde ich schlicht und einfach versuchen per JS den Client zu erkennen und einen Meldung zu generieren. Das Gerumpel kann man lassen, damit die User sehen was Ihr Browser macht. Man kann natuerlich noch HTML5Shim zusaetzlich nutzen, aber dann kannste Dir auch das andere Geraffel sparen.

        --
        Signaturen sind blöd!
        Frauen: Wenn sie gefunden haben, was sie suchen, schmeissen sie's weg...
        1. Hi

          Achso. Da wunderts mich, dass die IT die alten Dinger nicht einfach ersetzt. Ausser, die haben noch irgendeinen Existenzgrund.

          Es gibt einige Rechner die schon so lange im Einsatz sind oder quer reingekommen sind, dass die IT die, bzw. deren Browser, nicht auf dem Schirm hat (in der Summe reden wir hier von >10.000 Rechnern). Da ist es einfacher durch eine Zugangsbegrenzung zum neuen Intranet die User mit den alten Browsern (ca. 100+/-) dazu zu bringen sich selber bei der IT zu melden :)

          Da Du JS zur Verfuegung hast wuerde ich schlicht und einfach versuchen per JS den Client zu erkennen und einen Meldung zu generieren. Das Gerumpel kann man lassen, damit die User sehen was Ihr Browser macht. Man kann natuerlich noch HTML5Shim zusaetzlich nutzen, aber dann kannste Dir auch das andere Geraffel sparen.

          Die Meldung wird ja schon angezeigt. Das Gerumpel stört vielleicht nicht die User, aber mich :)

          Danke & Gruß
          Ole

      2. [latex]Mae  govannen![/latex]

        Warum willst Du ueberhaupt die HTML5 Elemente verschwinden lassen? Ist deren Inhalt fuer User veralteter Browser nicht relevant?

        Nutzer mit älteren IEs bekommen einen Nachricht angezeigt, dass sie sich doch bitte bei der IT melden sollen, damit die das System aktualisieren können.
        Und damit nur dieses Nachricht angezeigt wird und nicht das Gerumpel drumrum, müssen die HTML5-Elemente eben weg.

        Das würde ich nicht mit CSS, sondern rein mit HTML lösen:

        <!--[if lt IE 8]>Bitte wegen einer Systemaktualisierung bei der IT melden<![endif]-->  
        <!--[if gte IE 8]><!-->  
          
        Dein HTML5  
          
        <!--<![endif]-->  
        
        

        Browserversion passend ändern

        ♫ FIIIIISCH!! ♪

        Ric... äh Kai

        --
        var jQuery = $(hit);
        I am Pentium of Borg. Division is futile. You will be approximated.
        SelfHTML-Forum-Stylesheet
        1. Hi Kai

          so habe ich es dann auch gemacht.

          Danke & Gruß
          Ole

        2. var jQuery = $(hit);

          Ich hab nun schon die ein oder andere Zeile JavaScript / jQuery hinter mich gebracht, raffe aber den Gag nicht. Hilfe!

          I am Pentium of Borg. Division is futile. You will be approximated.

          Den wiederum verstehe ich :-)

          1. var jQuery = $(hit);

            Ich hab nun schon die ein oder andere Zeile JavaScript / jQuery hinter mich gebracht, raffe aber den Gag nicht. Hilfe!

            Entferne mal gedanklich die Klammern und stell dir das Dollarzeichen als S vor.

            1. var jQuery = $(hit);

              Ich hab nun schon die ein oder andere Zeile JavaScript / jQuery hinter mich gebracht, raffe aber den Gag nicht. Hilfe!

              Entferne mal gedanklich die Klammern und stell dir das Dollarzeichen als S vor.

              Danke! Auch wenn ich es im nachhinein lieber nicht verstanden hätte. Die Frage war interessanter als der ziemlich platte Gag.

  3. 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
    
    1. Hi Matti,

      Lösung: nutze auch dafür den html5shim.

      Ist eingebunden. Mit und ohne macht keinen Unterschied.
      Konsole bestätigt auch, dass das Script geladen wurde.

      Danke & Gruß
      Ole

      1. Om nah hoo pez nyeetz, Ole!

        Die unerwünschten Inhalte sind also Text von body geworden. Du könntest body visibilty hidden geben und body * visibility visible.

        Matthias

        --
        1/z ist kein Blatt Papier.

        1. Hallo Matthias,

          Die unerwünschten Inhalte sind also Text von body geworden. Du könntest body visibilty hidden geben und body * visibility visible.

          Funktioniert ... habe mich dann aber doch für Conditional Comments entschieden.

          Danke & Gruß
          Ole

      2. Hi,

        Ist eingebunden. Mit und ohne macht keinen Unterschied.
        Konsole bestätigt auch, dass das Script geladen wurde.

        Hast du es auch im head der Seite eingebunden, bevor irgendein HTML5-Element verwendet wird?

        ~dave