【问题标题】:How does -ms-view-state differ from standard CSS Media Queries Expressions?-ms-view-state 与标准 CSS 媒体查询表达式有何不同?
【发布时间】: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


【解决方案1】:

回答你的两个问题

为什么在 Windows 8 中需要供应商前缀表达式?

因为 view-state 是 not a part of the official CSS3 spec 并且供应商前缀正好在那里,因此供应商可以独立尝试规范之外的新事物,而不会破坏其他人。

-ms-view-state 表达式与宽度、高度和方向等 W3C 标准表达式有何不同?

它们的含义似乎更具语义性,对实际屏幕分辨率或尺寸的限制较少。

虽然是的,您对@media screen and (min-width: 1366px) and (min-height: 768px) and (orientation: landscape) 的 css 媒体查询确实将您之前发布的三行代码减少到了一行,但它并没有真正描述 -ms-view-states 看起来他们试图实现的目标。

他们似乎试图向开发人员/设计人员提供有关其应用程序当前使用方式的上下文,明确说明该应用程序正在全屏或 snapped 运行(我认为这是微软已经证明的并排模式同时在 Metro 中运行多个应用程序)。

更新 微软发布了一篇博客文章,讨论了他们围绕屏幕分辨率等的设计决策。与本次对话相关的内容,可通过here 获取

【讨论】:

  • 我想说什么,但不能像我自己那样雄辩地表达出来。 +1
  • 我很熟悉供应商前缀的原因,谢谢。 :) 不过,我不知道“视图状态”是为了标准化而提出的。你有引用吗?否则,这是有道理的。您的假设是,这里的目标是为开发人员创建语义简写。我可以看到其中的逻辑。
  • 老实说,我不知道微软是否正式提交了对规范的提议修订,快速搜索公共邮件列表会出现this discussion关于 CSS 工作组与出于各种原因,webapps 工作组在全屏 API 上。哪种与此有关。
  • 更新 微软发布了一篇博文here,讲述了他们在将内容适应多种屏幕分辨率背后的想法,并解释了他们的思维过程。对我来说,这归结为他们不想像屏幕的相对区域那样考虑像素(菜单 X 是(10% 屏幕宽度而不是 120 像素),以便应用程序适当地缩放到屏幕尺寸,这会凝胶使用无像素媒体声明。
猜你喜欢
  • 1970-01-01
  • 2022-01-25
  • 2012-12-18
  • 1970-01-01
  • 2019-03-17
  • 1970-01-01
  • 1970-01-01
  • 2018-11-11
  • 2013-08-10
相关资源
最近更新 更多