只有当屏幕最大宽度大于900px时,才是加载侧边栏的最佳方法?

时间:2011-04-20 作者:shawn

最近我一直在玩弄媒体查询,我喜欢这个概念。根据用户屏幕的最大宽度,显示图像或更改div浮动非常容易。

我试图找到一种方法,仅当用户屏幕大小足够大时,才在模板上显示自定义侧栏。i、 e.最大宽度>900px。

到目前为止,我找到的每个解决方案都只是使用css通过媒体查询隐藏/显示div。

示例:

@media screen and (max-width: 880px) {
#secondary-nav  {
    display: none;
}
这种方法的“问题”在于,我仍在将数据发送到由于隐藏而看不到它的设备。为移动用户创建不必要的膨胀。

我所寻找的是加载侧栏的最佳方法,前提是它符合我的“规则”。此外,如果查看器更改浏览器窗口的大小,例如在win7中捕捉到侧面时,它需要重新调整自身。

我确实找到了一个使用javascript检查屏幕宽度的概念,并将其保存到cookie中:http://www.yiibu.com/resources/scripts/default.js

我猜在这一点上,有一种方法可以检查cookie的“宽度”数据,然后提供侧边栏或不提供侧边栏。

唯一的问题是,如果没有启用Cookie,会发生什么?

另外,当屏幕大小改变时会发生什么情况,这是否意味着cookie会被反复设置/取消设置?

无论如何,我对这一点非常开放,因为这是我的处女地。

这里的主要想法是提供适合设备的wp模板,而无需向用户设备发送数据,这些数据对于较小的屏幕是隐藏的。毕竟,移动数据有点贵,所以我想尽我所能帮助我的用户摆脱困境。

3 个回复
最合适的回答,由SO网友:fuxia 整理而成

在我的网站上,对于480px以上的窗口,我会按照AJAX加载最近的评论:

if ( 480 < jQuery(window).width() )
{
    jQuery(document).ready(
        function()
        {
            jQuery.get(\'http://toscho.de/?rc\', 
                function(data)
                {
                    jQuery(data).insertBefore(\'#inner\');
                }
            );
        }
    );
    jQuery(\'#posts\').after(\'<div class=clear>&#160;</div>\');
}
这段代码很旧,不是很优雅。但它可能会给你一个正确方向的提示…

SO网友:Wyck

据我所知,这是无法绕过的,这是媒体查询和CSS的问题之一。我经常看到整个网站只使用visibility:hidden;display:none;. 你最好的选择是只为移动和桌面创建一个单独的页面,或者使用非常流畅的元素(不是动态的)。我相信你可以用JavaScript和Cookie来破解一些东西,但最终的结果很可能是非常有问题的,很难做到合规。

这是一个可靠的读数:http://www.alistapart.com/articles/responsive-web-design/

SO网友:Milo

我认为做到这一点最简单的方法是在服务器级别查看useragent,并在此基础上提供全方位或移动主题。在这些主题中,您可以根据实际视口宽度进一步显示/隐藏元素,并且更加经济。

结束