2016-04-13 7 views
1

Ich fand heraus, dass ich Respond.js verwenden muss, wenn ich Bootstrap in IE8 arbeiten möchte. Einmal eingeschlossen, sieht alles gut aus, bis auf eine Sache. Es sieht so aus, als würde sich HTML5-Elementstil nicht anpassen (selbst wenn ich mit Inline-Code arbeite, wenn ich Entwicklerwerkzeug in IE11 (mit Emulation auf IE8) in meiner lokalen HTML-Datei verwende, aber wenn ich dasselbe auf einer Bootstrap example mache, scheint es zu funktionieren vollkommen in Ordnung, obwohl).Bootstrap in IE8 Wie macht man Styling?

Ändern der HTML-Code aus:

<footer>...</footer> 

Um

<footer style="BACKGROUND-COLOR: tomato">...</footer> 

Werke im Beispielseite (während im Browser bearbeiten), aber funktioniert nicht, wenn ich meine lokale Datei öffnen und tun das gleiche Sache.

Warum kann ich eine Fußzeile auf den HTML5-Elementen innerhalb der the example Seite hinzufügen, aber nicht in meiner lokalen Datei? Fehle ich eine Datei oder muss ich etwas anders machen? Wie kann ich meine <footer> Styling arbeiten lassen?

Ein Vorschlag, den ich tun würde, ist es nur ein <div> Element mit einer Klasse machen .footer aber das ist nicht die Art und Weise es wie im Bootstrap Beispiel sieht, so dass ich weiß nicht, ob dies der richtige Weg ist es, das Problem, das mich zu beheben bin erleben.

+0

IE8 unterstützt die meisten HTML5-Funktionen nicht. Sehen Sie hier https://html5test.com/compare/browser/ie-8.html was in IE8 unterstützt wird. – Jer

+0

@ C0dekid.php Ich bin mir dessen bewusst, aber wenn ich mir das Bootstrap-Beispiel anschaue, scheint der Wechsel des Inline-Codes zu funktionieren, warum ist das dann so? – Barrosy

+0

Sie haben Javascripts, damit einige der HTML5-Elemente in älteren Browsern funktionieren. Vielleicht vermisst du sie – Jer

Antwort

2

HTML5 hat eine ganze Reihe neuer Elemente, um Ihren Seiten semantische Bedeutung hinzuzufügen. Zum Beispiel bedeutet nav ein Navigationsmenü.

Da IE8 nichts darüber weiß, erkennt es Stile nicht, die über CSS auf sie angewendet werden. Glücklicherweise gibt es eine einfache Möglichkeit, dieses Problem zu beheben, indem Sie einfach fehlende Elemente auf das DOM der Seite angehängt:

<!--[if lt IE 9]> 
    <script> 
     document.createElement('header'); 
     document.createElement('nav'); 
     document.createElement('section'); 
     document.createElement('article'); 
     document.createElement('aside'); 
     document.createElement('footer'); 
    </script> 
<![endif]--> 

Offensichtlich Sie nicht jedes HTML5-Element in Existenz definieren müssen, nur die, die Sie tatsächlich nutzen. Dieser Code verwendet übrigens conditional comment s, eine Funktion, die von Microsoft eingeführt wurde, um Unterschiede in den Browserversionen zu unterstützen.

Eine weitere wichtige Sache, auf die hingewiesen werden muss, ist, dass HTML5-Elemente standardmäßig als block angezeigt werden, aber IE8 weiß das auch nicht. Um dieses Problem zu mildern Sie entweder display: block; angeben könnten, wenn bestimmte Elemente Styling oder es tun Großhandel in Ihrem CSS:

header, nav, section, article, aside, footer { 
    display:block; 
} 

Beachten Sie, dass, wenn Sie einen HTML5 bewusst zurückgesetzt Sheet verwenden (wie this one), ist dies wahrscheinlich schon getroffen ist Sorge für dich.


Andere Weise js zu verwenden liberaries

Es gibt Workarounds in Form der html5shiv und Modernizr polyfill Skripten. Verwenden Sie eine dieser Bibliotheken, um älteren IE-Versionen HTML5-Tags hinzuzufügen.

+0

Das sieht irgendwie nach was ich suche, obwohl ich mich immer noch wundere, ist das die Art, wie Bootstrap das CSS für die Beispielseiten funktionierte? Kann ich mehr darüber lesen (hast du eine Quelle für mich)? – Barrosy

+0

auf diese Weise oder durch die Verwendung von js-Bibliotheken, die ich in meiner aktualisierten Antwort erwähnt, denn wenn es um Browser-Unterstützung geht, müssen Sie eine Lösung zu finden sein, eine Tags erstellen oder einfach nur Bibliotheken verwenden, um alle Tags zu unterstützen ... ich gebe Ihnen eine Link, wenn ich eine Quelle für Sie finden –

+0

Nur 'html5shiv' hinzufügen, löste das Problem für mich. http://getbootstrap.com/getting-started/#template Zeigt dies auch an. – Barrosy