我的网站主要是为在Android和iPhone设备上观看而设计的。但是,当然,人们可以通过台式机或笔记本电脑在网上查看它。
该网站目前的宽度为320像素,可容纳大多数手持设备。实际上,我喜欢布局,所以我不介意台式机上的人看到与掌上电脑相同的界面。我喜欢跨设备的界面的一致性。
我理想的做法是为在较大的显示器上观看网站的用户提供附加信息。像这样:
我坚持的关键是如何防止接口B被下载或提供给移动设备。我知道如何创建一个额外的DIV并使用基于浏览器识别的CSS隐藏它。但是,由于各种原因,重要的是接口B不能简单地从某些设备中隐藏,而是甚至不能传输数据。
这可能吗?
理想的解决方案应包括以下注意事项:
默认设置是假设设备是移动设备且仅提供接口 答:只有“浏览器嗅探”才能确定性地回归 (好吧,尽管它可以得到)设备是一定的白色 已知桌面浏览器列表,然后显示界面B.
在服务器端运行的解决方案。同样,没有来自的数据 如果怀疑访问者,应转移接口B. 在手机上。
接口A和B可以用框架,DIV,iFrame分开......我是 对此不可知,但我对CSS更熟悉,所以拥有它们 在两个不同的DIV中,我可能更容易掌握。
答案 0 :(得分:1)
1)检查http://us.php.net/get_browser - >使用'get_browser'的'ismobiledevice'字段 你可能需要一个最新的php_browscap.ini,但你可以得到它here 只需创建一个简单的if语句,然后评估是否要“打印div”。 (告诉我,如果你不明白我的意思)
2)有一个“后备”JS,隐藏第二个div(无论如何应该是空的)
答案 1 :(得分:1)
我根本不会使用浏览器嗅探,而是使用CSS 3媒体查询来查看“接口B”是否适合并仅在显示时将其加载到AJAX中。
这样的事情:
<style type="text/css">
@media only screen and (max-width: 320px) {
#interface-b {
display: none;
}
}
</style>
<script type="text/javascript">
// Using jQuery for convience here
// Let #interface-b be empty originally,
// and load it's content with AJAX only if needed.
jQuery(function() {
if (jQuery("#interface-b").is(":visible")) {
jQuery("#interface-b").load(...);
}
});
</script>
(编辑:添加only
关键字以获得更好的向后兼容性)