2017-04-17 127 views
0

我想要div1仅在窗口宽度小于800像素时出现,并且我希望div2仅在窗口宽度大于800像素时出现。我的解决方案是使用下面的CSS工作。但是,有没有办法只用一个@media命令来做到这一点?要写两个条件似乎很笨拙,一个是max-width,另一个是min-width结合最小宽度和最大宽度

@media screen and (max-width: 800px) { 
 
    #div1 { 
 
    display: block; 
 
    } 
 
    #div2 { 
 
    display: none; 
 
    } 
 
} 
 

 
@media screen and (min-width: 800px) { 
 
    #div1 { 
 
    display: none; 
 
    } 
 
    #div2 { 
 
    display: block; 
 
    } 
 
}
<div id="div1"> 
 
    DIV1 
 
</div> 
 

 
<div id="div2"> 
 
    DIV2 
 
</div>

回答

2

采取一套一出的媒体查询。

#div1 { 
 
    display: none; 
 
} 
 
#div2 { 
 
    display: block; 
 
} 
 
@media screen and (max-width: 800px) { 
 
    #div1 { 
 
    display: block; 
 
    } 
 
    #div2 { 
 
    display: none; 
 
    } 
 
}
<div id="div1"> 
 
    DIV1 
 
</div> 
 
<div id="div2"> 
 
    DIV2 
 
</div>

或者

#div1 { 
 
    display: block; 
 
} 
 
#div2 { 
 
    display: none; 
 
} 
 
@media screen and (min-width: 800px) { 
 
    #div1 { 
 
    display: none; 
 
    } 
 
    #div2 { 
 
    display: block; 
 
    } 
 
}
<div id="div1"> 
 
    DIV1 
 
</div> 
 
<div id="div2"> 
 
    DIV2 
 
</div>

1

有媒体相结合的方式查询尝试:

@media only screen and (max-width: 600px) and (min-width: 400px) { 

上面的查询将仅触发600-400px宽的屏幕。这可以用于定位具有已知宽度的特定设备。

或者,如果你只希望定位是800像素或较少使用的屏幕尺寸:

@media screen and (max-width: 800px) { 
0
replace @media screen and (max-width: 800px) { #div1 { 
display: block; 
} 
#div2 { 
display: none; 
} } 

with #div1 { 
display: block; 
} 
#div2 { 
display: none; 
} 
+1

我写为SO评论家,因为你的答案已经被标记为“低质量”。主要的缺点似乎是没有描述性文字,解释了代码如何以及为什么回答问题。请记住,您的代码可能会被其他未来寻求解决方案的程序员阅读多次,并添加一些帮助他人理解的文本。 –

相关问题