HTML5 Elemente ausblenden (IE7/8)
Ole
- css
0 MrMurphy0 Ole
0 Steel0 Ole
2 Matti Mäkitalo0 Ole1 Matthias Apsel0 Ole
1 dave
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
Hallo,
ohne Link zur Seite kann man nur raten, das du die CSS-Anweisung falsch einbindest.
Gruss
MrMurphy
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
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?
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
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.
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
[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);
Hi Kai
so habe ich es dann auch gemacht.
Danke & Gruß
Ole
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 :-)
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.
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.
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
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
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
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
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