我有两个 div,我将其称为 A & B。所需的行为是:
- 如果屏幕宽度小于 400px,则只有 A 应该是可见的。
- 如果横向屏幕,宽度大于 400px,但纵向小于 400px,则只有 B 应该是可见的。
- 否则(纵向和横向屏幕宽度均大于 400 像素),A 和 B 都应该可见。
第二项是被证明是有问题的。
我目前的方法适用于 iOS 设备,无论当前屏幕方向如何,它总是将min-device-width
&max-device-width
作为纵向值device-width
报告,但不适用于 android 和其他值随方向变化的其他设备:
/* item 3 */
.a, .b {
display: block;
}
/* item 2 */
@media only screen and (min-width: 400px) and (max-device-width: 400px) and (orientation: landscape) {
.a { display: none; }
}
/* item 1 */
@media only screen and (max-width: 400px) {
.b { display: none }
}
是否可以纯粹在媒体查询中实现此行为,以便它适用于所有设备?
如果可能的话,我热衷于避免 JavaScript、UA 嗅探以及使用已弃用的媒体类型(例如手持设备)。