如何通过CSS只针对横向移动设备而不影响桌面?

问题描述 投票:0回答:1

有没有一个简单的方法可以让你的移动设备只针对横向 流动 在不影响桌面设备的情况下,不为每个设备输入屏幕尺寸?如果没有,有没有一个最佳分辨率来针对大多数用户?现在手机屏幕的分辨率可以和大多数桌面屏幕的分辨率相等或更大,我不明白为什么很多人对640x480以下的分辨率使用规则。

比如说,要针对 肖像 设备(99%是移动设备),我们可以把他的规则写成。

/*Global and desktop rules*/

@media only screen and (orientation: portrait) {
/*Mobile overwrites*/
}

然而,同样的查询 orientation: landscape 也会影响到桌面用户。我的临时变通方法是使用 vw, vhvmin但我想知道是否有更好的方法。

会不会有 mobile CSS媒体简化了Web开发人员的工作?

css mobile media-queries landscape portrait
1个回答
2
投票

你可以混合CSS媒体查询为 方向 以检测横向模式和 悬停 + 指针 来检测触摸设备。

@media (orientation: landscape) and (hover: none) and (pointer: coarse) {
/* your CSS to target only landscape mobile users */
}

关于只用CSS检测触摸设备的参考,这里有一篇很好的文章。媒介.

最好的解决方案是使用JavaScript来检测设备,并添加一个类到。<body><html> 为了添加你的CSS.你可以看一看 当前设备你只需加入脚本,然后更新 <html> 部分,并根据设备的特性添加相应的类。

希望能帮到你。


1
投票

有一个查询 @media pointer,它决定了用户是否有一个指向性设备(如鼠标)。由于移动设备没有指针,所以你可以将它和 not: pointerorientation: landscape,像这样

 @media (not: pointer) and (orientation: landscape) { ... }

0
投票

为什么不直接使用max-width代替orientation呢?


0
投票

试试这个。

    @media (orientation: landscape) {    

}
© www.soinside.com 2019 - 2024. All rights reserved.