【发布时间】:2012-03-29 22:02:46
【问题描述】:
这部分是问题,部分是希望得到确认。我对这个问题的答案持怀疑态度,我会加两分钱,但我希望得到独立的确认,因为 Win8 论坛没有很好地记录我能找到的这个特定功能。
在 Windows 8 中,当使用 HTML/JS/CSS 构建 Metro 风格应用程序时,模板都在 default.css 中包含一系列 CSS 媒体查询。它们是:
@media screen and (-ms-view-state: fullscreen-landscape) {}@media screen and (-ms-view-state: filled) {}@media screen and (-ms-view-state: snapped) {}@media screen and (-ms-view-state: fullscreen-portrait) {}
我对媒体查询非常熟悉,所以我的问题是:为什么在 Windows 8 中需要供应商前缀表达式,以及 -ms-view-state 表达式与 W3C 标准表达式(如宽度、高度)有何不同和方向?
这是我的看法,请在下方添加您的看法,并确认、否认或纠正我:我怀疑这些规则与标准规则相似,但更具适应性,也就是说,而不是定义与给定宽度和高度匹配的规则集,这些表达式以与分辨率无关的方式包含状态。因此,我可以在横向模式下为我的应用程序使用单个规则-ms-view-state: fullscreen-landscape,并且当应用程序以 1366x768、1920x1080 或 2560x1440 运行时,它将起作用。否则,我将不得不定义这些规则三遍:
@media screen and (width: 1366px) and (height: 768px) {}@media screen and (width: 1920px) and (height: 1080px) {}@media screen and (width: 2560px) and (height: 1440px) {}
假设我的断言是正确的,对我来说唯一的差距是为什么我不能只使用“min-”和方向定义一个规则来达到相同的结果:
@media screen and (min-width: 1366px) and (min-height: 768px) and (orientation: landscape)
单一规则,标准表达式。不需要供应商前缀版本。我错过了什么?
【问题讨论】:
-
"对我来说唯一的差距是为什么我不能只使用 'min-' 和方向来定义一个规则来获得相同的结果" 因为设备屏幕分辨率各不相同 所以 i> 在很多方面,您无法使用像素值编写一个包罗万象的媒体查询,以适应 Metro 支持的任何分辨率?
-
可能,但据我了解,即使屏幕尺寸可能不同,分辨率也相当一致。我认为这两个最小值与方向规则相结合足以涵盖整个范围。
标签: css windows-8 media-queries microsoft-metro