2013-07-17 31 views
1

我使用流星构建具有为移动设备不同的CSS和脚本(jQuery Mobile的)比它的桌面浏览器的网站使用不同的样式/脚本的正确途径。我希望能够有条件地将这些包含在基于用户代理的head元素中。我敢肯定,这都可以动态地注入到DOM,但有没有这种事情流星最佳做法?什么是流星依赖于浏览器

回答

2

我建议添加浏览器特定的类body元素像这样(client/lib/environment.js):

if(navigator.userAgent.indexOf("Trident/4")>-1) 
    $("body").addClass("ie8"); 

我少用,然后只是有一个ie8.less文件像这样:

.ie8{ 
//override normal styles here - may have to use !important 
} 

这并不符合您只加载适用于每个客户端的内容的目标,但它确实适合浏览器特定样式的帐单


如果你的文件存储在外部,并且您使用陨石,也许你可以使用这个https://atmosphere.meteor.com/package/external-file-loader来检测,然后加载所需的脚本

但是,如果你保存在您的流星的应用程序文件,他们已经可能已经被合并,并发送到浏览器

+0

有趣的方法。我也不是那么专业......可以这样做与自举一起工作吗?我正在使用自定义版本的引导程序与流星程序包。 – snort

+0

绝对与引导工作,那就是如何我使用它 - 这只是设置一个普通的老客户端的风格,让您可以覆盖任何你想要的 –

0

看到这个问题:Excluding bootstrap from specific routes in Meteor。可以使用类似的方法来实现你所需要的。

此外,要知道CSS @media命令,它通常被用于区分手机的风格。

@media only screen and (max-width:500px) { 
    ... 
}