CSS媒体查询在iOS设备上存在问题

5

我已设置以下媒体查询以针对各种iOS设备(iPad3、iPad2、iPhone4、iPhone3)。当我使用iPhone3和iPad2加载此页面时,正确的div被涂色。但是,当我使用iPad3加载此页面时,iPad2和iPhone4样式被加载,但没有加载iPad3样式。(目前无法测试iPhone4。)有什么想法吗?

<!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>

而这4个CSS文件的编码也相应地进行了编码(此示例为iPad3.css文件):

#ipad3 { background-color: red; }

1
你为什么要删除这个问题,然后又重新提出来? - BoltClock
我明确了问题,并提供了一个易于让人们自己尝试的简单示例 - 这比仅仅编辑原始内容要好。 - Rob Lauer
3个回答

4

由于您将视口宽度设置为设备宽度,因此iPad3屏幕分辨率仍将报告为1024x768,但设备像素比将为2。


谢谢,这让我更接近目标了。如果我将iPad3媒体查询设置为1024x768,它会同时选取iPad3.css和iPad2.css文件。它似乎忽略了-webkit-min-device-pixel-ratio的设置。iPhone4也是如此(iPad2和iPhone3正常工作)。有什么想法吗? - Rob Lauer

0
Robbo,你的代码使用了:-webkit-min-device-pixel-ratio:0,这是一个无效的语句。非Retina设备的像素比率为1。这可能是为什么iPad 3会同时选择两个样式表的原因。

0

要针对iPad 3进行开发,您可以使用以下代码:

<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" />

像素尺寸相同,但与原始iPad和iPad 2相比,像素比发生了变化。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接