2013-03-14 29 views
0

基于此帖子http://www.asp.net/mvc/tutorials/mvc-4/aspnet-mvc-4-mobile-features显示如何识别特定视图。iPad作为非特定视图

的MVC4 indentifies通过iPad上的要求作为一个移动,但我想它识别为桌面,而不是移动,所以我用下面的代码:

DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("") 
{ 
    ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf("iPad", StringComparison.OrdinalIgnoreCase) >= 0) 
}); 

有另一种更好的办法?

感谢

回答

0

处理多种屏幕分辨率在多个设备应该可以通过层叠样式表的最好方法。您实际上可以决定应该在哪种分辨率下运行布局变体。

你也可以用Javascript来达到高潮,这可以让你创建一个真正的动态分辨率相关布局。这样的例子可以发现here

你可以为你的样式表或Viewport做一个Media Query

一个例子是:

@media screen and (max-width: 980px) { 

    #pagewrap { 
     width: 95%; 
    } 

    #content { 
     width: 60%; 
     padding: 3% 4%; 
    } 

    #sidebar { 
     width: 30%; 
    } 
    #sidebar .widget { 
     padding: 8% 7%; 
     margin-bottom: 10px; 
    } 

这将需要较小然后980px任何屏幕和调整页面。

你可以在这里找到关于such as well的几个调整。你提到的那篇文章实际上建议使用Media QueriesViewports

一个重要的提示,几个移动设备增加了分辨率。因此,他们可能会看起来并正确处理正常的桌面站点,但他们通常不会。例如,hover effect在手机上无法正常工作,因为他们只点击一次。它不知道什么时候手在按钮上方。所以经常触摸屏不能正确处理桌面界面。在设计过程中记住这一点。

希望这会有所帮助,或者指向正确的方向。

+0

非常感谢格雷格,我使用样式表来识别屏幕大小,我的布局已经响应,但现在,我需要开发手机版本,我希望iPad不会被识别为移动。 – Giolvani 2013-03-14 16:14:54

+0

我明白了,我说的是你必须确定iPad的分辨率,并将其作为焦点,因此不再被视为“移动”。上面的例子确实解决了你如何去做的问题;一些额外的细节在这里:http://stackoverflow.com/questions/8233788/how-to-avoid-loading-css-file-for-ipad-sized-devices-between-mobile-and-full – Greg 2013-03-14 16:17:30