Tworzę witrynę przy użyciu nowego Twitter Bootstrap. Strona wygląda dobrze i działa we wszystkich wymaganych przeglądarkach oprócz IE8.
W IE8 wydaje się, że wyświetla elementy wersji mobilnej, ale rozciąga się na pełnym ekranie mojego pulpitu. Uważam, że mam problem z tym, że najpierw bootstrap na Twitterze jest mobilny. Z jakiegoś powodu IE8 wybiera tę opcję.
Zauważam również, że container
klasa nie wydaje się pobierać właściwości CSS o maksymalnej szerokości zgodnie z przeznaczeniem. Czy ktoś może zobaczyć, co zrobiłem źle?
<!-- 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>
Odpowiedzi:
Otrzymałeś swój CSS z CDN (bootstrapcdn.com) respond.js działa tylko dla plików lokalnych. Więc wypróbuj swoją stronę na IE8 z lokalną kopią bootstrap.css. Lub przeczytaj: Konfiguracja CDN / X-Domain
Uwaga Zobacz także: https://github.com/scottjehl/Respond/pull/206Aktualizacja:
Proszę przeczytać: http://getbootstrap.com/getting-started/#support
Zobacz także: https://github.com/scottjehl/Respond
Z tego powodu podstawowy szablon zawiera następujące wiersze w sekcji nagłówka:
źródło
respond.js
??Musiałem także ustawić następujący tag META:
źródło
<div class="left-finger-picker img-responsive">
do wyświetlenia obrazu, w którym:left-finger-picker
wygląda następująco:.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; }
jednak nie reaguje w IE8Miałem ten sam problem podczas przechodzenia z Bootstrap 2 do 3. Już dostałem respond.js i html5shiv.js i ustawiłem meta na edge. Przegapiłem, że z 2 do 3 zmienił się typ elementu paska nawigacyjnego. W Bootstrap 2 była to nawigacja. W Bootstrap 3 jest teraz nagłówkiem. Aby w pełni rozwiązać problem, musiałem
Umieść to zaraz po załadowaniu mojego css:
a następnie zmienić
do
Aha i dla pewności dodałem również
po prostu dlatego, że to właśnie ma sama strona Bootstrap.
źródło
<div class="left-finger-picker img-responsive">
do wyświetlenia obrazu, w którym:left-finger-picker
wygląda następująco:.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; }
jednak nie reaguje w IE8W moim przypadku przyczyną problemu był zminimalizowany CSS bootstrap. Aby bootstrap 3.0.2 był responsywny w IE8 (emulowany za pomocą F12 Developer Tools) musiałem:
1 - Ustaw flagę zgodną z X-UA.
2 - Użyj niezminimalizowanego bootstrap.css, zamiast bootstrap.min.css
3 - Dodaj plik answer.js (i html5shiv.js)
źródło
<div class="left-finger-picker img-responsive">
do wyświetlenia obrazu, w którym:left-finger-picker
wygląda następująco:.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; }
jednak nie reaguje w IE8umieść
respond.js
na dole strony, ale przed zamknięciembody
tagu, a tutaj jest linkrespond.js
i uruchom ten kod na swoim lokalnym serwerze.https://github.com/scottjehl/Respond
źródło
respond.js
powinny być ładowane po arkuszach stylów.W razie czego. Upewnij się, że załadowałeś pliki js specyficzne dla IE po załadowaniu plików css.
źródło
Nie zapomnij umieścić swoich linków css w
<head>
asrespond.js
bierze tylko te.źródło
Jak już wcześniej wspomniano, istnieją dwa różne problemy: 1) IE8 nie obsługuje zapytań o media 2) Odpowiedź.js używana w połączeniu z plikami css między domenami musi zostać dołączona jak opisano wcześniej.
Jeśli chcesz użyć BootstrapCDN, oto działający przykład:
Upewnij się także, że skopiowałeś respond.proxy.gif, answer.min.js i response.proxy.js w lokalnych katalogach
źródło
Po weryfikacji:
Nadal col-lg, col-md i col-sm nie działały. W końcu przeniosłem referencje na bootstrap, aby były przed referencjami do html5shiv.js i answer.js i wszystko działało.
Oto fragment:
źródło
Z wyjaśnienia wynika, że IE8 jest standardową wersją dla ciebie, a wykonanie
content="IE=edge"
spowoduje, że strona będzie wyświetlana w najwyższym trybie. Aby był kompatybilny, zmień nacontent="IE=8"
.Odwołanie Co robi <meta http-equiv = "X-UA-Compatible" content = "IE = edge">?
źródło
Potrzebne do dodania -
<meta http-equiv="X-UA-Compatible" content="IE=edge">
Używałem Bootstrap 3 - działał w IE na moim komputerze lokalnym.
Podałem, że na żywo nie działa w IE.
Po prostu Bootstrap nie zawiera tej linii kodu w swoich szablonach, nie jestem pewien dlaczego, ale może to być spowodowane tym, że nie jest kompatybilny z W3C.
źródło
Mam naprawę tego problemu. W rzeczywistości IE7 i 8 nie obsługują poprawnie @media i jeśli sprawdzisz css dla klas „col-md- *”, a szerokość jest podana w szerokości mediów 992px. Wystarczy utworzyć nowy plik css IE, np .: IE.css i dodać komentarze warunkowe. A następnie po prostu skopiuj klasy wymagane dla twojego projektu bezpośrednio z wszelkimi zapytaniami o media i gotowe.
źródło
Miałem dokładnie ten sam problem podczas migracji z bootstrapv2 do v3.
Jeśli (podobnie jak ja) przeprowadziłeś migrację, zastępując stary spanX kol-sm-X, musisz również dodać klasy col-X. col-X to style, które znajdują się poza blokami @media, więc działają bez obsługi zapytań o media.
Aby naprawić szerokość pojemnika, możesz ustawić go samodzielnie poza blokiem @media. Coś jak:
źródło
Mam ten sam problem w IE 10.0. Wiem, że nie jest to dokładnie problem w PO, ale być może przyda się innym.
W moim przypadku na początku dokumentu był pusty wiersz:
Jeśli pusta linia znajduje się między DOCTYPE a tagiem, problem jest również wyświetlany:
Po usunięciu pustej linii i bez magicznej meta kompatybilnej z X-UA, IE 10 zaczął poprawnie renderować stronę.
Jeśli używasz PHP i Smarty, uważaj na komentarze Smarty, ponieważ dodadzą one te problematyczne puste wiersze :-)
źródło
mój tag głowy jest taki:
jeśli chcesz spróbować w lokalnym ... spróbuj przez localhost lub utwórz serwer kontroli jakości i ustaw zawartość i spróbuj.
Potrzebujemy answer.js dla bootstrap 3 i nie będzie działał na komputerze lokalnym, jeśli po prostu umieścimy go w js i dołączymy do html w nagłówku. Powie, że odmowa dostępu. działa tylko przez serwer, ponieważ IE ma ograniczenia bezpieczeństwa. : P
źródło
Przeczytałem tutaj każdy komentarz, próbowałem wszystkiego ... ale nie mogłem go uruchomić z Windows 7 - Internet Explorer 11 ( z trybem dokumentu: IE8 ).
Potem przyszło mi do głowy, że tryb dokumentu (IE8) to nie to samo, co prawdziwy IE8, więc zainstalowałem Windows Virtual PC ( Windows 7 z Internet Explorer 8 ) i tadaaaa ... to działa jak urok!
Umieściłem ten fragment kodu JUST na dole strony, aby działał:
źródło
Tak jak heads up. Miałem ten sam problem i żadne z powyższych nie rozwiązało go dla mnie. W końcu dowiedziałem się, że respond.js nie analizuje CSS, do którego odwołuje się @import . Całość została
bootstrap.min.css
zaimportowana@import
do mojegomain.css
.Upewnij się więc, że nie masz CSS, który zawiera zapytania o media, do których odwołuje się @import .
źródło
Rozwiązałem poniższe kroki.
(1) zainstalował moduł Respond.js dla drupal 7. (2) moduł lessphp dla drupal 7 ustawiony w bibliotekach zamiast w folderze modułów. (3) (3.1)
<meta http-equiv="X-UA-Compatible" content="IE=edge">
(3.2)
używając cdn bootstrap z ustawień motywu.
Aby dowiedzieć się więcej, przejrzyj mój blog na stronie poświęconej projektowaniu i rozwojowi drupal www.devangsolanki.com
źródło
Jeśli używasz Bootstrap 3 i wszystko działa dobrze w innych przeglądarkach oprócz IE, wypróbuj poniższe.
źródło
Skorzystaj z tego rozwiązania
Ten ciąg
<script src="js/css3-mediaqueries.js"></script>
włącza zapytania multimedialne. Ten ciąg<link rel="stylesheet" type="text/css" href="css/bootstrap-ie7.css" />
włącza czcionki rozruchowe.Testowane na Bootstrap 3.3.5
Link do pobrania mediaqieries.js . Link do pobrania bootstrap-ie7.css
źródło
Pamiętaj, aby połączyć źródło ładowania początkowego osobno
Jeśli używasz
LESS
lubSASS
nie masz ochoty na kompilowanie stylów. Do mojego projektu włączyłembootstrap.min.css
w głównym stylu na górze pliku - więc powinno być tylko jedno żądanie dla wszystkich stylów.Z tego powodu klasy boostrap nie działały poprawnie. Po dodaniu osobno działa zgodnie z oczekiwaniami.
źródło
Napotkałem ten sam problem, wypróbowałem pierwszą odpowiedź, ale czegoś mi brakowało.
Jeśli używacie Webpacka, wasz css zostanie załadowany jako znacznik stylu, który nie jest obsługiwany przez respond.js, potrzebuje pliku, więc upewnij się, że bootstrap jest załadowany jako plik css
Osobiście korzystałem
extract-text-webpack-plugin
Mam nadzieję, że ci to pomoże
źródło