google-chrome - "@media screen and (-webkit-min-device-pixel-ratio:0)"的语义是什么?

标签 google-chrome webkit css media-queries

根据 http://www.webmonkey.com/2010/02/browser-specific_css_hacks/,我碰巧对基于 WebKit 的浏览器使用了以下 CSS hack .

@media screen and (-webkit-min-device-pixel-ratio:0) {
    #my-id { height: 100%; }
}

它有效。但是,后来我发现它在生产环境中不起作用。我发现这是由于 CSS 优化器修剪了 之后的空间。 Chrome 无法识别以下 CSS。

@media screen and(-webkit-min-device-pixel-ratio:0) {
    #my-id { height: 100%; }
}

那么,@media 屏幕和 (-webkit-min-device-pixel-ratio:0) 到底是什么意思?

我知道@media screen,但我以前没有在CSS文件中使用过

为什么后面的空格是必须的?

最佳答案

正如您所说,媒体查询本身用于过滤 WebKit,因为它使用 -webkit- 属性。

你说不能识别,chrome只是严格了点

@media screen and(-webkit-min-device-pixel-ratio:0)

因为那实际上是无效的 CSS。 关键字后的空格很重要。 CSS3 media query spec 中明确说明了这一点:

EXAMPLE 20

The following is an malformed media query because having no space between ‘and’ and the expression is not allowed. (That is reserved for the functional notation syntax.)

@media all and(color) { … }

函数符号指的是诸如 url()rgb()rgba() 之类的东西。如您所见,在这些示例中,函数名称和左括号之间没有空格。

and 不是函数,只是一个关键字,表示媒体查询必须匹配你指定的媒体,and表示布局引擎必须满足你的表达式放在它后面。 -webkit-min-device-pixel-ratio:0 周围的括号只是将其表示为一个表达式。

附录: 是的,这确实意味着您的 CSS 优化器有错误;)

关于google-chrome - "@media screen and (-webkit-min-device-pixel-ratio:0)"的语义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4104004/

相关文章:

html - Chrome float 问题

ios - webview.load(URLRequest View 保持为空

android - Android 版 Chrome 和桌面版 Chrome 之间有什么区别?

php - 下拉选择菜单在 ajax 响应后丢失 css 样式

css - Y 平面怎么看起来更远了?

google-chrome - 如何从扩展程序中获取 Chrome 应用程序的 ID

php - 为什么它在 chrome(仅在 Windows 上)和 firefox 中看起来不同我的样式规则?

javascript - 未捕获的 TypeError : Failed to execute 'open' on 'Window' : Missing required member(s): conversionDestination, 印象数据

webkit - 在Webkit下失去焦点之后,强制contenteditable div停止接受输入

javascript - 在 ExtJS 中为一个元素添加多个样式元素