Ich erstelle eine Site mit dem neuen Twitter Bootstrap. Die Site sieht gut aus und funktioniert in allen erforderlichen Browsern außer IE8.
In IE8 werden anscheinend Elemente der mobilen Version angezeigt, die sich jedoch über den gesamten Bildschirm meines Desktops erstrecken. Ich glaube, das Problem, das ich habe, ist, dass Twitter Bootstrap zuerst mobil ist. Aus irgendeinem Grund wird IE8 diese Option wählen.
Ich stelle auch fest, dass die container
Klasse die CSS-Eigenschaften mit maximaler Breite nicht wie beabsichtigt einzieht. Kann jemand sehen, was ich falsch gemacht habe?
<!-- Favicon -->
<link rel="shortcut icon" href="/favicon.ico">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<!-- Bootstrap -->
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0-rc1/css/bootstrap.css" rel="stylesheet">
<link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet">
<script src="/SiteFiles/js/modernizr.js"></script>
<!-- CSS -->
<link href="/SiteFiles/css/main.css" rel="stylesheet">
<header>
<div class="topArea clearfix">
<div class="container">
<div class="topLinks">
<div class="btn-group">
<span class="flag" data-toggle="dropdown"> </span>
<ul class="dropdown-menu">
<li><a href="#">Country 1</a></li>
<li><a href="#">Country 2</a></li>
<li><a href="#">Country 3</a></li>
<li class="divider"></li>
<li><a href="#">Country 4</a></li>
<li><a href="#">Country 5</a></li>
<li><a href="#">Country 6</a></li>
</ul>
</div>
<div class="visible-sm btn-group">
<div class="plus" data-toggle="dropdown"><i class="icon-plus icon-2x"> </i></div>
<ul class="dropdown-menu">
<li><a href="#">Parts & Service</a></li>
<li><a href="#">Store Locator</a></li>
<li><a href="#">Find a Service Centre</a></li>
<li><a href="#">Parts List</a></li>
<li><a href="#">Tool Vibration</a></li>
<li><a href="#">Resource Centre</a></li>
<li><a href="#">Media Centre</a></li>
<li><a href="#">Register your Tools</a></li>
<li><a href="#">About Us</a></li>
<li><a href="#">
<button type="button" class="btn btn-default">Where to Buy</button></a></li>
</ul>
</div>
<div class="topNav">
<ul class="hidden-sm">
<li>
<div class="btn-group">
<a href="#" data-toggle="dropdown">Parts & Service</a>
<ul class="dropdown-menu">
<li><a href="#">Store Locator</a></li>
<li><a href="#">Find a Service Centre</a></li>
<li><a href="#">Parts List</a></li>
<li><a href="#">Tool Vibration</a></li>
</ul>
</div>
</li>
<li><a href="#">Resource Centre</a></li>
<li><a href="#">Media Centre</a></li>
<li><a href="#">Register your Tools</a></li>
<li><a href="#">About Us</a></li>
<li><a href="#">
<button type="button" class="btn btn-default">Where to Buy</button></a></li>
</ul>
</div>
<div class="searchArea">
<input type="text" />
<a href="#" class="goBtn">GO</a>
</div>
</div>
</div>
</div>
<div class="mainNavArea">
<div class="container rel">
<div class="logo">
<img src="/SiteFiles/img/logo.png" title="Milwaukee - Nothing but heavy duty" alt="Milwaukee - Nothing but heavy duty" />
</div>
<div class="navi">
<div class="navbar">
<div class="container">
<!-- .navbar-toggle is used as the toggle for collapsed navbar content -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-responsive-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<!-- Place everything within .navbar-collapse to hide it until above 768px -->
<div class="nav-collapse collapse navbar-responsive-collapse">
<ul class="nav nav-justified">
<li><span class="dropArrow"> </span><span class="topNavPosition">Power Tools</span>
<div class="navDrop">
<div class="navDropInner">
<div class="row">
<div class="hidden-sm col-sm-4 col-lg-4">
<img src="/SiteFiles/img/drill.jpg" alt="" />
</div>
<div class="col-12 col-sm-8 col-lg-8">
<h2>Power Tools</h2>
<div class="row">
<div class="col-6 col-sm-6 col-lg-6">
<a href="#">Cutters</a>
<a href="#">Levels</a>
<a href="#">Pliers</a>
<a href="#">Saws</a>
<a href="#">Screwdrivers</a>
</div>
<div class="col-6 col-sm-6 col-lg-6">
<a href="#">Snips</a>
<a href="#">Utility Knives</a>
<a href="#">Combo Knives</a>
<a href="#">Hand Tool Accessories</a>
</div>
</div>
</div>
</div>
</div>
<a href="#" class="closeNav">X</a>
</div>
</li>
<li><span class="dropArrow"> </span><span class="topNavPosition">Hand Tools</span>
<div class="navDrop">
<div class="navDropInner">
<div class="row">
<div class="hidden-sm col-sm-4 col-lg-4">
<img src="/SiteFiles/img/drill.jpg" alt="" />
</div>
<div class="col-12 col-sm-8 col-lg-8">
<h2>Hand Tools</h2>
<div class="row">
<div class="col-6 col-sm-6 col-lg-6">
<a href="#">Cutters</a>
<a href="#">Levels</a>
<a href="#">Pliers</a>
<a href="#">Saws</a>
<a href="#">Screwdrivers</a>
</div>
<div class="col-6 col-sm-6 col-lg-6">
<a href="#">Snips</a>
<a href="#">Utility Knives</a>
<a href="#">Combo Knives</a>
<a href="#">Hand Tool Accessories</a>
</div>
</div>
</div>
</div>
</div>
<a href="#" class="closeNav">X</a>
</div>
</li>
<li><span class="dropArrow"> </span><span class="topNavPosition">Test & Measurement</span>
<div class="navDrop">
<div class="navDropInner">
<div class="row">
<div class="hidden-sm col-sm-4 col-lg-4">
<img src="/SiteFiles/img/drill.jpg" alt="" />
</div>
<div class="col-12 col-sm-8 col-lg-8">
<h2>Test & Measurement</h2>
<div class="row">
<div class="col-6 col-sm-6 col-lg-6">
<a href="#">Cutters</a>
<a href="#">Levels</a>
<a href="#">Pliers</a>
<a href="#">Saws</a>
<a href="#">Screwdrivers</a>
</div>
<div class="col-6 col-sm-6 col-lg-6">
<a href="#">Snips</a>
<a href="#">Utility Knives</a>
<a href="#">Combo Knives</a>
<a href="#">Hand Tool Accessories</a>
</div>
</div>
</div>
</div>
</div>
<a href="#" class="closeNav">X</a>
</div>
</li>
<li><span class="dropArrow"> </span><span class="topNavPosition">Accessories</span>
<div class="navDrop">
<div class="navDropInner">
<div class="row">
<div class="hidden-sm col-sm-4 col-lg-4">
<img src="/SiteFiles/img/drill.jpg" alt="" />
</div>
<div class="col-12 col-sm-8 col-lg-8">
<h2>Accessories</h2>
<div class="row">
<div class="col-6 col-sm-6 col-lg-6">
<a href="#">Cutters</a>
<a href="#">Levels</a>
<a href="#">Pliers</a>
<a href="#">Saws</a>
<a href="#">Screwdrivers</a>
</div>
<div class="col-6 col-sm-6 col-lg-6">
<a href="#">Snips</a>
<a href="#">Utility Knives</a>
<a href="#">Combo Knives</a>
<a href="#">Hand Tool Accessories</a>
</div>
</div>
</div>
</div>
</div>
<a href="#" class="closeNav">X</a>
</div>
</li>
</ul>
</div>
<!-- /.nav-collapse -->
</div>
<!-- /.container -->
</div>
<!-- /.navbar -->
</div>
</div>
</div>
</header>
Antworten:
Sie haben Ihr CSS von CDN (bootstrapcdn.com) erhalten. Response.js funktioniert nur für lokale Dateien. Probieren Sie Ihre Website auf IE8 mit einer lokalen Kopie von bootstrap.css aus. Oder lesen Sie: CDN / X-Domain Setup
Hinweis Siehe auch: https://github.com/scottjehl/Respond/pull/206Aktualisieren:
Bitte lesen Sie: http://getbootstrap.com/getting-started/#support
Siehe auch: https://github.com/scottjehl/Respond
Aus diesem Grund enthält die Basisvorlage die folgenden Zeilen im Kopfbereich:
quelle
respond.js
??Ich musste auch das folgende META-Tag setzen:
quelle
<div class="left-finger-picker img-responsive">
um ein Bild zu zeigen, wobei:left-finger-picker
wie folgt ist:.left-finger-picker { width: 200px; height: 210px; position : relative; background-size: cover; background-image : url("../myPics/leftHand.png"); background-repeat: no-repeat; background-size: contain; }
esIch hatte das gleiche Problem beim Übergang von Bootstrap 2 zu 3. Ich hatte bereits reply.js und html5shiv.js und habe mein Meta auf edge gesetzt. Ich hatte übersehen, dass sich der Navbar-Elementtyp von 2 auf 3 geändert hatte. In Bootstrap 2 war es nav. In Bootstrap 3 ist es jetzt Header. Um das Problem vollständig zu lösen, musste ich
Stellen Sie dies richtig, nachdem ich mein CSS geladen hatte:
und dann ändern
zu
Oh und zum guten Teil habe ich auch hinzugefügt
einfach, weil es das ist, was die Bootstrap-Site selbst hat.
quelle
<div class="left-finger-picker img-responsive">
um ein Bild zu zeigen, wobei:left-finger-picker
wie folgt ist:.left-finger-picker { width: 200px; height: 210px; position : relative; background-size: cover; background-image : url("../myPics/leftHand.png"); background-repeat: no-repeat; background-size: contain; }
esIn meinem Fall verursachte das Bootstrap-minimierte CSS das Problem. Um Bootstrap 3.0.2 in IE8 (emuliert mit den F12 Developer Tools) ansprechbar zu machen, musste ich:
1 - Setzen Sie das X-UA-kompatible Flag.
2 - Verwenden Sie anstelle von bootstrap.min.css die nicht minimierte Datei bootstrap.css
3 - Fügen Sie die Datei reply.js (und html5shiv.js) hinzu.
quelle
<div class="left-finger-picker img-responsive">
left-finger-picker
.left-finger-picker { width: 200px; height: 210px; position : relative; background-size: cover; background-image : url("../myPics/leftHand.png"); background-repeat: no-repeat; background-size: contain; }
Fügen Sie
respond.js
am Ende der Seite, aber bevor Sie dasbody
Tag schließen, den Link zurespond.js
diesem Code ein und führen Sie ihn in Ihrem lokalen Host aus.https://github.com/scottjehl/Respond
quelle
respond.js
geladen wird .Nur für den Fall. Stellen Sie sicher, dass Sie die IE-spezifischen JS-Dateien laden, nachdem Sie Ihre CSS-Dateien geladen haben.
quelle
Vergessen Sie nicht, Ihre CSS-Links in das
<head>
zu setzen,respond.js
das nur diese nimmt.quelle
Wie bereits erwähnt, gibt es zwei verschiedene Probleme: 1) IE8 unterstützt keine Medienabfragen. 2) reply.js, die in Verbindung mit domänenübergreifenden CSS-Dateien verwendet werden, müssen wie zuvor beschrieben enthalten sein.
Wenn Sie BootstrapCDN verwenden möchten, finden Sie hier ein funktionierendes Beispiel:
Stellen Sie außerdem sicher, dass Sie reply.proxy.gif, reply.min.js und response.proxy.js in lokale Verzeichnisse kopieren
quelle
Nach Überprüfung:
Immer noch funktionierten col-lg, col-md und col-sm nicht. Schließlich habe ich die Verweise auf bootstrap verschoben, um vor den Verweisen auf html5shiv.js und reply.js zu stehen, und alles hat funktioniert.
Hier ist ein Ausschnitt:
quelle
Aus der Erklärung geht hervor, dass IE8 die Standardversion für Sie ist und
content="IE=edge"
das Erstellen die Seite im höchsten Modus rendert. Um es kompatibel zu machen, ändern Sie es incontent="IE=8"
.Referenz Was macht <meta http-equiv = "X-UA-kompatibel" content = "IE = edge">?
quelle
Musste hinzufügen -
<meta http-equiv="X-UA-Compatible" content="IE=edge">
Ich habe Bootstrap 3 verwendet - hatte es auf meinem lokalen IE funktionieren.
Ich habe es live gestellt, hat im IE nicht funktioniert.
Nur Bootstrap enthält diese Codezeile nicht in ihren Vorlagen. Ich bin mir nicht sicher, warum, aber es könnte daran liegen, dass es nicht W3C-kompatibel ist.
quelle
Ich habe eine Lösung für dieses Problem. Tatsächlich unterstützen IE7 und 8 das @ media nicht richtig und wenn Sie das CSS auf "col-md- *" -Klassen überprüfen und dort die Breite in Medienbreite 992px angegeben ist. Erstellen Sie einfach eine neue CSS-Datei IE, z. B.: IE.css, und fügen Sie die bedingten Kommentare hinzu. Und dann kopieren Sie einfach die für Ihr Design erforderlichen Klassen direkt mit den dortigen Medienabfragen, und schon sind Sie fertig.
quelle
Ich hatte genau das gleiche Problem bei der Migration von Bootstrapv2 auf Version 3.
Wenn Sie (wie ich) migriert haben, indem Sie das alte spanX durch col-sm-X ersetzt haben, müssen Sie auch col-X-Klassen hinzufügen. col-X sind die Stile, die sich außerhalb von @ media-Blöcken befinden, sodass sie ohne Unterstützung für Medienabfragen funktionieren.
Um die Containerbreite festzulegen, können Sie sie selbst außerhalb eines @ media-Blocks festlegen. Etwas wie:
quelle
Ich habe das gleiche Problem in IE 10.0. Ich weiß, dass dies nicht gerade das Problem im OP ist, aber vielleicht ist es für andere nützlich.
In meinem Fall hatte ich am Anfang des Dokuments eine leere Zeile:
Wenn sich die leere Zeile zwischen dem DOCTYPE und dem Tag befindet, wird das Problem auch angezeigt:
Nachdem ich die leere Zeile entfernt habe und ohne das magische X-UA-kompatible Meta, hat IE 10 begonnen, die Site korrekt zu rendern.
Wenn Sie PHP und Smarty verwenden, gehen Sie vorsichtig mit Ihren Smarty-Kommentaren um, da diese diese problematischen Leerzeilen hinzufügen :-)
quelle
Mein Head Tag ist wie folgt:
Wenn Sie es auf lokaler Ebene versuchen möchten, versuchen Sie es über localhost oder erstellen Sie einen QS-Server, legen Sie den Inhalt fest und versuchen Sie es.
Wir benötigen reply.js für Bootstrap 3 und es funktioniert nicht auf dem lokalen Computer, wenn wir es einfach in js einfügen und im Header an HTML anhängen. Es wird angezeigt, dass der Zugriff verweigert wurde. Es funktioniert nur über den Server, da der IE Sicherheitsbeschränkungen unterliegt. : P.
quelle
Ich habe jeden Kommentar hier gelesen, alles versucht .. konnte ihn aber nicht mit Windows 7 - Internet Explorer 11 ( mit Dokumentmodus: IE8 ) zum Laufen bringen .
Dann kam mir der Gedanke, dass das Ausführen eines Dokumentmodus (IE8) nicht mit dem echten IE8 identisch ist, also habe ich Windows Virtual PC ( Windows 7 mit Internet Explorer 8 ) und tadaaaa installiert ... es funktioniert wie ein Zauber!
Ich habe diesen Code NUR am Ende der Seite eingefügt, damit er funktioniert:
quelle
Nur als Heads-Up. Ich hatte das gleiche Problem und keines der oben genannten Probleme hat es für mich behoben. Schließlich fand ich heraus, dass reply.js kein CSS analysiert, auf das über @import verwiesen wird . Ich hatte das ganze
bootstrap.min.css
via@import
in mein importiertmain.css
.Stellen Sie also sicher, dass Sie kein CSS haben, das Ihre Medienabfragen enthält, auf die über @import verwiesen wird .
quelle
Ich habe die folgenden Schritte gelöst.
(1) installiertes Respond.js-Modul für Drupal 7. (2) Lessphp-Modul für Drupal 7 in Bibliotheken anstelle des Modulordners. (3) (3.1)
<meta http-equiv="X-UA-Compatible" content="IE=edge">
(3.2)
Verwenden von CDN-Bootstrap aus der Designeinstellung.
Weitere Informationen finden Sie in meinem Website-Blog für Drupal-Design und -Entwicklung unter www.devangsolanki.com
quelle
Wenn Sie Bootstrap 3 verwenden und alles in anderen Browsern außer IE einwandfrei funktioniert, versuchen Sie Folgendes.
quelle
Verwenden Sie diese Lösung
Diese Zeichenfolge
<script src="js/css3-mediaqueries.js"></script>
aktiviert Medienabfragen. Diese Zeichenfolge<link rel="stylesheet" type="text/css" href="css/bootstrap-ie7.css" />
aktiviert Bootstrap-Schriftarten.Getestet auf Bootstrap 3.3.5
Link zum Herunterladen von mediaqieries.js . Link zum Herunterladen von bootstrap-ie7.css
quelle
Stellen Sie sicher, dass Sie die Bootstrap-Quelle separat verknüpfen
Wenn Sie mit dem Kompilieren der Stile zu gierig sind
LESS
oderSASS
nicht. In meinem Projekt habe ichbootstrap.min.css
meinen Hauptstil oben in die Datei aufgenommen - daher sollte es nur eine Anfrage für alle Stile geben.Und aus diesem Grund funktionierten die Boostrap-Klassen nicht richtig. Funktioniert wie erwartet, wenn separat hinzugefügt.
quelle
Ich hatte das gleiche Problem, versuchte die erste Antwort, aber es fehlte etwas.
Wenn Sie Webpack verwenden, wird Ihr CSS als Style-Tag geladen, das von reply.js nicht unterstützt wird. Es wird eine Datei benötigt. Stellen Sie daher sicher, dass Bootstrap als CSS-Datei geladen ist
Persönlich habe ich verwendet
extract-text-webpack-plugin
Hoffe es wird dir helfen
quelle