【问题标题】:How to target iPad and iPhone, but exclude Android如何定位 iPad 和 iPhone,但不包括 Android
【发布时间】:2012-04-16 13:49:24
【问题描述】:

我一直在寻找这个答案,但似乎找不到。我只有 iPhone 和 iPad - 我没有 Android - 所以我不知道我的 CSS 是否会触及 Droid?

这是我的 HTML 和 CSS 中的内容:

HTML

<meta name="viewport" content="width=device-width,initial-scale=1, maximum-scale=1.0">

CSS

@media only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation: landscape) {
... CSS for iPad landscape
}

@media only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation: portrait) { 
... CSS for iPad portrait
}

@media only screen and (max-device-width: 480px) { 
... CSS for iPhone portrait and landscape
}

问题:

  1. Droid 是否有特定的元标记?
  2. 上面的 CSS 是否针对 Droid?如果是这样,有没有办法可以修改它以便 Droid 忽略它?
  3. 是否有适用于 Droid 的在线模拟器以便我进行故障排除?

您可以在此处查看示例页面:http://www2.receivablesxchange.com/alternative-to-factoring-4

【问题讨论】:

  • 另外,如果其他地方已经回答了这个问题,请指点我。我已经完成了至少 1/2 小时的研究,但时间不多了。我不太确定如何制定搜索查询以获得正确答案?

标签: android iphone css ipad meta-tags


【解决方案1】:

媒体查询用于显示区域和类型。它不看用户代理或类似的东西。你可以用 JQuery + CSS 做这样的事情:

var _device = {};

if (navigator.userAgent.match(/iPad/i)) {
    _device.name = 'ipad';
    _device.type = 'mobile';
} else if (navigator.userAgent.match(/android/i)) {
    _device.name = 'android';
    _device.type = 'mobile';
} else {
    _device.type = 'desktop';
}

$('body').addClass(_device.name).addClass(_device.type);

现在,在您的 CSS 中,您只需添加符合您需求的 body 类:

@media only screen and (max-device-width: 1024px) { 
    .ipad #myDiv {
        // css for #myDiv only seen on the iPad
    }

    .android #myDiv {
        // css for #myDiv only seen on the Android
    }

    .mobile #myDiv {
        // css for #myDiv available to iPad AND android but NOT desktop
    }
}

【讨论】:

  • 但是这个媒体查询不是专门针对ipad的吗? @media only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation: Landscape) { ... 适用于 iPad 横向的 CSS }
  • 如果答案是 JS 和 CSS 的组合,那也很好。但据我了解,将方向与最小/最大设备宽度相结合是针对特定设备的一种方式?
  • 这不是未来的证明,如果安卓设备具有相同的屏幕宽度怎么办?
  • @VaughnD.Taylor 媒体查询将针对具有该显示器的任何设备 - 在理论上和实践中,您可以将桌面浏览器调整为确切的纵横比并观看您的 css 有条件地弹出该媒体查询.
  • 这就是我一直在测试的方式,但是,为了让它在桌面上工作,查询必须是“min-width”而不是“min-device-width”。为了测试,我只需删除设备并在浏览器中查看它。我很好奇是否有任何特定的参数可以传递来使查询成为特定于 Android 的?例如,我可以通过同时使用“-webkit-min-device-pixel-ratio”和“min-device-pixel-ratio”来定位 iPhone 4。无论如何,谢谢你的帮助。我可能在这里找到了我需要的答案:css-tricks.com/snippets/css/media-queries-for-standard-devices
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 2015-09-10
  • 1970-01-01
  • 2013-08-17
  • 2012-01-04
  • 1970-01-01
相关资源
最近更新 更多