2011-06-20 20 views
17

Mam dziwny problem, który występuje tylko w IE9. Pracuję nad stroną internetową, która ma układ pulpitu i układ mobilny. Ten sam HTML, inny CSS. Problem występuje z poniższym kodem:Zapytanie o media nie działa w IE9

@media only screen and (min-device-width: 768px) and (max-device-width: 1024px), only screen and (max-device-width: 640px) 

We wszystkich przeglądarkach, z wyjątkiem IE9, wyświetl witrynę na komputery w razie potrzeby. Przeglądarki mobilne poprawnie wyświetlają układ mobilny. Problem z IE9 polega na tym, że pokazuje także układ mobilny.

Teraz, jeśli usunę słowa "tylko" i "ekran" z powyższego kodu, IE9 następnie poprawnie wyświetli stronę pulpitu. Problem polega na tym, że przeglądarki mobilne wyświetlają także witrynę na komputery. Zrobiłem kilka badań na ten temat i nie widziałem nic na ten temat.

Dzięki za czytanie,

John

+4

["IE9, wydostań się z tego mobilnego arkusza stylów Jesteś przeglądarką komputerową, nawet nie korzystasz z Windows Phone."] (Http://knowyourmeme.com/memes/Buzzkilling) – BoltClock

Odpowiedz

7

Z tego co mogę powiedzieć, to sprowadza się do IE9 nie interpretując "min-device-width" i "max-device-width".

Zgodnie z http://msdn.microsoft.com/library/ms530813.aspx nie obsługuje tych właściwości, tylko "min-width" i "max-width".

Ponadto, http://www.w3.org/TR/css3-mediaqueries/#error-handling stwierdza, że ​​przeglądarka ma ignorować właściwości, których nie rozpoznaje. Nie tak z IE9 wydaje się.

+0

Jak na razie link podałeś do [msdn] (http://msdn.microsoft.com/library/ms530813.aspx) zawiera opis funkcji 'device-width' + [CSS3 Test] (http: // css3test.com /) mówi, że IE9 obsługuje 'device-width'. Więc działa. –

5

Tak, użyj @media (max-width: 860px) zamiast max-device-width.

IE 9 właśnie dostał mi zawał serca. Zapytania o media projektu nie działały.

Następnie po kilku minutach googlowania należy uwzględnić kod CSS w kodzie HTML. Tylko style Inline!

Co za opór są te przeglądarki IE!

29

wszelki wypadek ktoś roi więc na odpowiedź na to, powyższe dwie odpowiedzi nie są rozwiązaniem problemu rdzeń, który jest tutaj odpowiedzi - CSS media query not working in IE 9

Zasadniczo inline zapytania CSS3 multimedialne działają w IE9, ale trzeba aby wyłączyć tryb kompatybilność -

<meta http-equiv="X-UA-Compatible" content="IE=9"> 

powyższy tag musi być umieszczony przed inne meta tagi inaczej IE9 będzie domyślnie trybie zgodności na później i nie będzie działać.

+1

Przed nawet ''? – Saul

+1

To pomogło mi .. – Xarcell

+0

To nie zadziałało w moim przypadku. Bardzo frustrujące. –

2

I zazwyczaj dodać do moich projektów i to pracuje dla mnie do tej pory:

<!--[if lt IE 9]> 
<script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script> 
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]--> 
+3

Interesujące, ponieważ dotyczy wersji IE * mniej * niż 9. –

+0

To działało dla mnie. Na IE 9 również. – KWorrall

0

tryb zgodności IE rozwiązuje ten problem. Przejdź do Ustawienia zgodności widoku i wyłącz opcję Wyświetlanie witryn intranetowych w widoku zgodności.

Powiązane problemy