【问题标题】:HTML Meta Viewport only for smartphones仅适用于智能手机的 HTML 元视口
【发布时间】:2014-09-17 18:47:35
【问题描述】:

我正在构建我的第一个响应式页面,但遇到了“元视口”问题。

我正在使用这个:

<meta name="viewport" content="width=device-width,,minimum-scale=1.0,user-scalable=yes" />

在 Desktop 和 iPhone 上,我看到了我想要的结果。但我的 iPad 结果是。我只想将meta name="viewport" 用于智能手机。有没有办法将此标签限制为仅适用于智能手机?

编辑: 我只想要一个智能手机断点。问题是,当我将“Meta Viewport”标签添加到头部时,我遇到了问题。我希望这个元标记只在 max-width==480px 时出现。

编辑 2 -> 我的解决方案:

“screen.width”在添加“Meta Viewport: device-width”后返回与 window.innerWidth 相同的值。它现在可以在台式机、ipad 和 iPhone5 上运行。

<script type="text/javascript">
if( screen.width < 480 ) {
    document.write( '<meta name="viewport" content="width=device-width,minimum-scale=1,user-scalable=no" />' );
}
</script>
<link rel="stylesheet" media="screen and (min-device-width: 280px) and (max-device-width: 480px)" href="files/css/smartphones.css" />

【问题讨论】:

  • &lt;meta name="viewport" ...&gt; 只会影响移动设备
  • 问题出在我的ipad上。平板电脑应该忽略标签
  • 您说的不是很详细,但您确定不能通过调整@media 查询来解决您的问题吗?

标签: html css media-queries meta-tags


【解决方案1】:

您不能让 iOS(iPhone 或 iPad)忽略视口标签。您可以做的是为 iPad 嗅探浏览器并使用 javascript 动态删除视口标签。或者,仅当用户代理是手机而不是平板电脑时才添加视口标签。

类似这样的:

if (navigator.platform === 'iPad') {
    var viewport = document.getElementsByName("viewport")[0]
    viewport.parentNode.removeChild(viewport)
}

【讨论】:

  • 是的,但问题不只是 ipad。您的示例中的主要问题是检测 android 平板电脑以排除它们。
  • 没错。浏览器嗅探的问题在于收集庞大的“所有平板电脑”列表进行测试非常困难且难以维护。现在有比手机小的平板电脑,也有比平板电脑大的手机。唯一知道您要排除哪些设备的人就是您自己。我建议不要测试平板电脑,而是让你的断点覆盖所有场景。如果你必须浏览器嗅探,有很多开源插件可以帮助你。
猜你喜欢
  • 2013-08-10
  • 2013-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多