1

我正在使用 Meteor 为移动设备构建一个具有与桌面浏览器不同的 CSS 和脚本(jquery mobile)的站点。我希望能够有条件地将这些包含在基于用户代理的 head 元素中。我确信这都可以动态注入到 DOM 中,但是对于这种事情有 Meteor 最佳实践吗?

4

2 回答 2

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来检测然后加载所需的脚本

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

于 2013-07-17T16:23:26.800 回答
0

请参阅此问题:Excluding bootstrap from specific routes in Meteor。可以使用类似的方法来实现您所需要的。

另外,请注意 CSS@media命令,它通常用于区分移动样式。

@media only screen and (max-width:500px) {
    ...
}
于 2013-07-18T07:19:57.127 回答