2013-09-25 59 views
2

我们最近开发了一个网站,基本上有2种模式,移动和平板电脑+台式机。这个css文件首先是根据移动规则进行布置的,然后在640px以上的任何尺寸都有一个断点,因此我们可以在桌面版上显示桌面版本到7英寸平板电脑上时的情况。一些智能手机拿起桌面媒体查询?

尽管如此,所有的iPhone手机,我的Galaxy S4,甚至是windows手机,当然还有iPad和桌面,一些手机拿起桌面的风格,基本上显示了桌面版本,即银河系s2和银河系s3等

正如我所说,我的CSS代码是建立移动优先,所以所有宽度小于640px(几乎所有)的手机不应该拿起桌面样式,媒体查询如下:

@media all and (min-width: 641px) { .... } 

所以我不明白为什么..任何想法?

编辑:我忘了添加,我们添加了一个条件来检查设备的大小是否大于640,在这种情况下,它将视口大小设置为网站的整个宽度,以便在平板电脑上缩小,否则它只是将其设置为设备宽度。

<meta id="testViewport" name="viewport" content="width=device-width, maximum-scale=1"> 
<script> 
if (screen.width > 640) { 
    var mvp = document.getElementById('testViewport'); 
    mvp.setAttribute('content','width=1000'); 
} 
</script> 

回答

0

感谢您的输入,我发现这个问题。

一些android版本有一个bug,当页面加载时,视口不能正确报告,我得到了为galaxy 1,2和3(!!!)报告的800px视口大小。在实际检查视口宽度之前,通过添加200ms的超时来解决问题,似乎这个小的延迟足以让设备报告正确的大小。 它创建了一个小窗口(200毫秒),桌面版本的缩放比例是可见的,但至少可以解决问题。任何人登陆这里有同样的问题

解决方案:

<meta id="testViewport" name="viewport" content="width=device-width, maximum-scale=1"> 
<script> 
    setTimeout(function(){ 
     if (document.documentElement.clientWidth > 640) { 
      var mvp = document.getElementById('testViewport'); 
      mvp.setAttribute('content','width=1000'); 
     } 
    }, 200); 
</script> 
0

从我搜索的Galaxy S3媒体查询:

@media only screen and (max-device-width: 720px) and (orientation:portrait) { 
    .your-css{} 
} 

@media only screen and (max-device-width: 1280px) and (orientation:landscape) { 
    .your-css{} 
} 

看起来像多数民众赞成它实际上看起来的....你可以尝试通过改变视口缩放来:

<meta name="viewport" content="width=device-width"> 

另外,你可以添加jquery来改变大小.... JQuery:

// Check for device screen size 
if($.mobile.media("screen and (max-device-width: 640px)")) { 
    // Change viewport for smaller devices 
$('meta[name=viewport]').attr('content','width=device-width, initial-scale=1'); 
} 

另外:

你可以在你的S3打开这个,所以你可以为你的银河传媒查询得到精度:

http://pieroxy.net/blog/pages/css-media-queries/test-features.html

+0

您好,感谢您的答复。然而,这不是问题,因为移动设备报告的移动视口大小,其中S3实际上是360x640。 – geodeath