2012-05-04 9 views
5

Mam ustawione następujące zapytania o media, aby kierować reklamy na różne urządzenia z systemem iOS (iPad3, iPad2, iPhone4, iPhone3). Kiedy ładuję tę stronę na iPhonie3 i iPadzie2, poprawne divy są kolorowe. Kiedy jednak ładuję tę stronę za pomocą iPada3, ładowane są style iPad2 I iPhone4, ale NIE iPada3. (W tej chwili nie można przetestować iPhone4.) Jakieś pomysły?Problem z zapytaniami o media CSS na urządzeniach z systemem iOS

<!DOCTYPE html> 
<html> 
<head> 
<title></title> 
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" /> 
<link rel="stylesheet" href="ipad3.css" media="only screen and (min-device-width:1536px) and (max-device-width:2048px) and (-webkit-min-device-pixel-ratio:2)" type="text/css" /> 
<link rel="stylesheet" href="ipad2.css" media="only screen and (min-device-width:768px) and (max-device-width:1024px) and (-webkit-min-device-pixel-ratio:0)" type="text/css" /> 
<link rel="stylesheet" href="iphone4.css" media="only screen and (min-device-width:640px) and (max-device-width:960px) and (-webkit-min-device-pixel-ratio:2)" type="text/css" /> 
<link rel="stylesheet" href="iphone3.css" media="only screen and (min-device-width:320px) and (max-device-width:480px) and (-webkit-min-device-pixel-ratio:0)" type="text/css" /> 
</head> 

<body> 
<div id="ipad3" style="width:200px;height:200px;border:1px solid black"></div> 
<div id="ipad2" style="width:200px;height:200px;border:1px solid black"></div> 
<div id="iphone4" style="width:200px;height:200px;border:1px solid black"></div> 
<div id="iphone3" style="width:200px;height:200px;border:1px solid black"></div> 

ipad3 should be RED 
<br> 
ipad2 should be GREEN 
<br> 
iphone4 should be BLUE 
<br> 
iphone3 should be ORANGE 
</body> 
</html> 

..i to 4 pliki CSS są odpowiednio zakodowane (w tym przykładzie jest to plik iPad3.css):

#ipad3 { background-color: red; } 
+1

Dlaczego usunąłeś to pytanie, aby poprosić o ponowne? – BoltClock

+0

Wyjaśniłem problem w sposób znaczący i dostarczyłem łatwy przykład, aby ludzie mogli się wypróbować - lepiej niż edytowanie oryginału. –

Odpowiedz

4

Ponieważ masz szerokość rzutni ustawiony device-szerokości, rozdzielczość ekranu iPad3 będzie wciąż zgłaszane jako 1024x768, ale piksela stosunek urządzenie będzie 2.

+0

Dzięki, to mnie przybliża. Jeśli ustawię zapytanie o media na iPada3 na 1024x768, to pobierane są zarówno pliki iPad3.css, jak i iPad2.css. Wygląda na to, że ignoruje ustawienie -webkit-min-device-pixel-ratio. To samo dotyczy iPhone4 (iPad2 i iPhone3 działają bez zarzutu). Jakieś pomysły? –

0

Aby kierować iPad 3 można użyć:

<link rel="stylesheet" href="ipad3.css" media="only screen and (min-device-width:768px) and (max-device-width:1024px) and (-webkit-min-device-pixel-ratio:1.5)" type="text/css" /> 

Wymiary w pikselach są takie same, ale stosunek pikseli zmienia się w porównaniu do oryginalnego iPada i iPada 2.

0

Robbo, Twój kod używa: -webkit-min-device-pixel-ratio:0, która jest nieprawidłową instrukcją. Urządzenia inne niż Retina będą miały piksel o wartości 1. Prawdopodobnie dlatego iPad 3 odbiera oba arkusze stylów.