2012-10-04 92 views
1

为什么此代码使两个div都出现在面向横向的iPad上?媒体查询不按预期工作

/* CSS */ 

div{ 
    display:none; 
} 
@media screen and (min-width: 48em) { 
    /* IPAD PORTRAIT */ 
    body { 
     /* DARK BLUE */ 
    background-color:#006; 
    } 
    div{ 
    display:none; 
    } 
    #ipad-portrait{ 
    display:block; 
    } 
} 


@media screen and (min-width: 64em) { 
    /* IPAD LANDSCAPE */ 
    body{ 
     /*bright green*/ 
    background-color:#3f0; 
    } 


    /* an attempt to hide all divs before displaying 
    the one that says iPad landscape */ 
    div{ 
    display:none; 
    } 



    #ipad-landscape{ 
    display:block; 
    } 
} 



<!-- HTML --> 
<div id="ipad-landscape"> 
ipad landscape 
</div> 

    <div id="ipad-portrait"> 
ipad portrait 
</div> 

谢谢!

+0

嗯,我不知道,你可以使用'em'作为测量与媒体查询的形式。 'em'是相对于字体大小 - 真棒.. – potench

+1

@potench我从[本网站](http://jordanyoung.com/)解除了它。这是真的很出色 - – 1252748

回答

3

您的最小宽度重叠。宽度至少为64em的设备最小宽度为48em。你可能会想是这样的:

@media screen and (min-width: 48em) and (max-width: 63.999em) { 
/* stuff */ 
} 
+0

但为什么,因为风格是在向下移动表单的层叠中应用,我的@media屏幕和(最小宽度:64em){div {display:none;} ...'不行?谢谢! – 1252748

+1

因为div不足以覆盖第一个媒体查询中的#ipad-portrait。查看更多关于css特异性的信息:http://coding.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/ – cimmanon

+0

很酷。谢谢您的帮助! – 1252748