TK1*_*123 26 css retina-display media-queries responsive-design
默认情况下,我想给我的body元素一个绿色边框.在支持视网膜显示的设备上,我想首先检查尺寸.在ipad上我想给我的身体一个红色边框,在iphone上我想给它一个蓝色边框.但是像这样嵌套媒体查询不起作用:
body { border: 1px solid green; }
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
@media (max-width: 768px) and (min-width: 320px) {
body { border: 1px solid red; }
}
@media (max-width: 320px) {
body { border: 1px solid blue; }
}
}
Run Code Online (Sandbox Code Playgroud)
cir*_*rus 27
不需要.您需要使用and
运算符并将其写为两个查询.但是,您可以在SCSS中执行此操作,它将编译为CSS,但它将通过展开它们并使用and
运算符来组合它们.
这是一个常见的问题,一旦我第一次写LESS或SCSS,我就不想再回去写这篇长篇大论了.
长手CSS:
@media (-webkit-min-device-pixel-ratio: 2) and (max-width: 768px) and (min-width: 320px),
(min-resolution: 192dpi) and (max-width: 768px) and (min-width: 320px) {
body {
border: 1px solid red;
}
}
@media (-webkit-min-device-pixel-ratio: 2) and (max-width: 320px),
(min-resolution: 192dpi) and (max-width: 320px) {
body {
border: 1px solid blue;
}
}
Run Code Online (Sandbox Code Playgroud)
嵌套查询可能有效,但支持因浏览器而异.
cyq*_*mon 14
实际上,公认的答案已经过时很长时间了。即使在发布时,我什至不确定它在技术上是否正确。Firefox 自 2012 年起支持嵌套,Chrome 自 2013 年起支持嵌套(来源)。
现在您应该期待所有主要浏览器的支持,当然 IE 除外。
您可以使用以下 HTML 和 CSS 对其进行测试。只需在浏览器中打开开发面板并改变视口宽度即可。
#abc {
background: green;
}
/* width < 801px */
@media (max-width: 800px) {
#abc#abc {
background: red;
}
/* 500px < width < 801px */
@media (min-width: 500px) {
#abc#abc#abc {
background: yellow;
}
}
}
Run Code Online (Sandbox Code Playgroud)
<div id="abc">Example text</div>
Run Code Online (Sandbox Code Playgroud)
或者,查看此 codepen。
归档时间: |
|
查看次数: |
17277 次 |
最近记录: |