Zurb Foundation针对超极本和混合笔记本电脑的可见性课程

时间:2013-07-16 19:12:33

标签: css mobile visibility zurb-foundation hybrid

我正在尝试隐藏平板电脑和平板电脑智能手机,但仍希望在混合设备上显示,例如Microsoft Surface Pro。

基础4提供touch detection classes,但我不确定它是否会隐藏或显示在混合设备上。

有没有人有过这方面的经验?我该如何控制它?

/* The touch detection classes */
.show-for-touch       /* Visible for touch enabled devices */
.hide-for-touch       /* Hidden for touch enabled devices */

1 个答案:

答案 0 :(得分:1)

Foundation 4使用Modernizr检测浏览器中对Touch Events API的支持,而不是触摸设备。 我认为你对这个问题最好的“修复”是嗅探用户代理,看它是否与相关的代理匹配 Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0; Touch)取自User-agent string。 为了使其面向未来,可能只需查看用户代理字符串是否以Touch结尾并包含Windows。 如果你检测到这样的用户代理,那么让Modernizr执行替代代码(你决定做什么)。

我看到当前的Foundation 4版本使用自定义的Modernizr构建,即Build: http://modernizr.com/download/#-inlinesvg-svg-svgclippaths-touch-shiv-mq-cssclasses-teststyles-prefixes-ie8compat-load

为了为Modernizr编写自定义测试,您需要Modernizr.addTest,这是基础4中包含的默认构建中缺少的。您需要进行自定义构建,我已经准备好了对于你,它还应该包含当前Foundation Modernizr自定义构建包含Custom Modernizr Build with addtest

的所有其他“功能”

以下是您的自定义用户代理测试的示例Modernizr测试的样子。

Modernizr.addTest('winsurface', function () {
 return !!navigator.userAgent.match(/put your regex here/g);
});

然后,如果你想做一些测试是积极的事情,你会这样做:

if (Modernizr.winsurface) {
...put your js code here
}