在 Chrome 中使用 rem 单位进行媒体查询?

Posted

技术标签:

【中文标题】在 Chrome 中使用 rem 单位进行媒体查询?【英文标题】:Media queries with rem units in Chrome? 【发布时间】:2012-08-25 10:12:03 【问题描述】:

是否可以在 Chrome 媒体查询中使用 rem 单位?

rem 单元在 Chrome 中完美运行,似乎媒体查询不支持它们。这可能吗?还是这个 CSS 有什么问题?

body  background-color: yellow; 

@media only all and (max-width: 40rem) 
    body  background-color: red; 


@media only all and (min-width: 40rem) and (max-width: 60rem) 
    body background-color: green;


@media only all and (min-width: 60rem) 
    body  background-color: blue; 

在http://jsfiddle.net/jsQ2N/2/show/ 直播,em-http://jsfiddle.net/jsQ2N/3/show/ 的唯一版本。

【问题讨论】:

看起来这个问题可以使用em 单位来解决。在媒体查询级别,1em 应该等于 1rem(或者建议 github.com/scottjehl/Respond/issues/18#issuecomment-2205078>)。 Chrome 28.0.1500.95 确实支持媒体查询中的 rem 单位,但显然 Safari 5.1 不... 【参考方案1】:

The spec says this 关于相对单位,例如remem

媒体查询中的相对单位基于初始值,这意味着单位从不基于声明的结果。例如,在 html 中,“em”单位是相对于“font-size”的初始值的。

font-size的初始值为medium,通常等于浏览器用户首选项中的默认字体大小设置。)

由于媒体查询 3 除了上面对相对单位的引用之外,没有为任何特定单位定义特殊规则,rem 应该em 一样,处理@987654328 的初始值@。如果它在 Chrome 中不起作用,则很可能是一个错误。

【讨论】:

同样的逻辑,它也无法获得em的相对font-size @CourtDemone:你是对的。我不确定我在写这篇文章时在想什么。固定。【参考方案2】:

事实证明这是 Webkit 问题 #78295(截至 2012 年 8 月未解决):Support for CSS rem unit in Media Queries(通过 http://fvsch.com/code/bugs/rem-mediaquery/)。

【讨论】:

好吧,记者说这是一个错误,也因为它可以在其他引擎中运行。 Chrome 开发者还没有发言。 经过几个小时的困惑之后,似乎在@media 规则中使用 rem 会破坏 Safari 中的样式。 em 和 px 工作正常。很奇怪。【参考方案3】:

在下面发布答案后,这个问题困扰了我。我在 Chrome 中对我正在开发的网站进行了更多测试。关于 rem 是 Chrome 中的错误的帖子是正确的,它们不起作用,所以我只为媒体查询更改为像素。

*为了回答您的问题,rems 正在帮助我使用媒体查询来调整内容区域的高度。 Chrome 对浏览器宽度的解释方式似乎与 Firefox 不同,但这不是基于 rem 的问题。

请记住,当我使用 rems 和 ems 时,它是在设置 font-size: 1em; 之后。或字体大小:16px;对于 html 或正文。我倾向于坚持 font-size: 1em;在 html 标签上。这将创建一个默认值,该默认值适用于用户为默认字体大小设置的任何内容,在他们使用的任何设备上。 Rem 相对于 1em 的根值。该根值由用户的默认字体大小给出,因此所有内容都应根据用户的字体大小偏好进行缩放,并且与设备/像素密度无关。

这意味着无论用户使用的是“普通”的 72 或 96 像素/英寸设备,还是 Retina(或其他高像素密度屏幕),设备之间的一切都应该“相对”相同。

【讨论】:

以上是关于在 Chrome 中使用 rem 单位进行媒体查询?的主要内容,如果未能解决你的问题,请参考以下文章

移动页面100%自适应,媒体查询 - REM单位字体设置

用户体验与响应式字体二三事|rem单位与flexible.jsrpx单位与css媒体查询

用户体验与响应式字体二三事|rem单位与flexible.jsrpx单位与css媒体查询

用户体验与响应式字体二三事|rem单位与flexible.jsrpx单位与css媒体查询

01.媒体查询

0082 rem适配方案:less+rem+媒体查询flexible.js+rem