我正在寻找一个可靠的媒体查询规则,即:
If desktop width < 720px AND devices in portrait mode {}
(也就是说,随着桌面宽度的减小,媒体查询在 720 像素处开始。在手机上,这应该只在纵向模式下发生 - 横向不应该应用媒体查询)
问题是:如何将设备与桌面分开定位。
存在问题的原因是:@media handheld
不支持
附加max-width
影响一切,因此不能与max-device-width AND portrait
似乎我只能定位:
- 所有设备都低于/在设定宽度之间
- 只有设备(使用 JavaScript 垫片来修复媒体查询)低于/在设置宽度和方向之间。
不能单独对待设备和桌面。
是否有现有的 JavaScript 解决方案可以满足我的需求?
注意我在 LESS 中编码我的 CSS,媒体查询嵌套在其中。
背景
我正在处理的网站是响应式的并使用网格系统。在 720px 宽度(当前测试宽度)下,较小设备/分辨率的列使用会发生变化。然而,经过测试,该站点(720px 宽度的完整站点)在横向上可读性很好,即使在我的小屏幕 HTC Desire 上也是如此。当我删除网站的某些部分以便更好地使用媒体查询时,我想为什么不让该网站通常可以横向访问。
Bellow 720px 在桌面上没有修改元素列跨度看到一个相当破碎的网站。然而,由于移动设备的较小性质,它看起来并非如此。然而,随着列跨度的修改,当涉及到手机的横向时,特定元素(例如标题)完全不成比例(由于浏览器的高度大大降低)。
简而言之,仅根据浏览器宽度更改设计并不能平等地在所有设备上进行,正如我在其他网站上设法实现的那样。
我正在使用以下元标记:
<meta name="viewport" content="width=device-width,
initial-scale=1,
maximum-scale=1,
user-scalable=no" />
尝试了什么
方向与桌面无关。它根据用户窗口设置、分辨率等而变化。
我尝试了以下方法来定位手机/两者:
@media handheld and (orientation:portrait) { }
似乎没有手机可以利用该handheld
属性,至少 100% 没有 - 所以它毫无价值。
@media screen and (max-device-width:720px) and (orientation:portrait) { }
会很好用,但是 android 2.2 和 2.3(可能还有其他操作系统,更不用说其他操作系统了?)有max-device-width
无法正常工作的问题。
@media screen and (max-width:720px) and (orientation:portrait) { }
适用于高分辨率显示器(因为随着窗口宽度的减小,高度迅速变为 > 宽度)和手机,但不适用于较小的显示器,因为窗口不会在 720 像素宽度时为纵向(站点不断压缩超过我想要的限制)。
@media screen and (max-width:720px), screen and (orientation:portrait) { }
会先做任何事。没用。
@media screen and (max-width:720px), screen and (max-width:500px) and (orientation:portrait) { }
和
@media screen and (max-width:720px) { }
@media screen and (max-width:500px) and (orientation:portrait) { }
一切都只是使用较大的max-width
.
我也有一个min/max-height
没有成功的小提琴。