【问题标题】:CSS Media Queries - Viewport Width being ignored by iPhoneCSS 媒体查询 - iPhone 忽略的视口宽度
【发布时间】:2016-01-03 08:32:14
【问题描述】:

我有这个元标记:

<meta name="viewport" content="width=device-width, initial-scale=1.0">

我有这个 CSS:

@media (max-width: 1100px) and (max-device-width: 1100px) {
    .wrapper {
        width: 200px;
    }
    .page {
        width: 100%;
    }

我也尝试过以下css规则:

@media (max-width: 1100px) and (max-device-width: 1100px) {

@media only screen and (max-width : 767px) { .wrapper { width: 100%; } }

@media only screen and (min-width: 1024px) and (max-width: 1280px)

@media only screen and (min-width: 993px) and (max-width: 1024px)

这些 CSS 规则都不起作用。

这一切在 iPhone 上都被完全忽略了。

但它在调整为 iphone 大小的浏览器中运行良好。

自己看看吧:

http://www.moonshineandfuggles.com/

我已将最大宽度扩展到荒谬的值以尝试包含 iPhone。

我不希望 .wrapper 为 200px,我希望它为 100% 并考虑到设备的宽度。

似乎 iPhone 认为它应该使这个页面大约 700 像素宽。

我怎样才能让 iPhone 意识到我已经使这个网站具有响应性,以便它调整到正确的大小?

【问题讨论】:

  • @media (max-width: 1100px) and (max-device-width: 1100px) {
  • 检查这个 - stephen.io/mediaqueries
  • css选择器需要使用'and'
  • 也试过了——没什么区别
  • (max-width: 1100px) and (max-device-width: 1100px)...

标签: html css iphone media-queries


【解决方案1】:

以下是您可能会发现对媒体查询有用的一些信息 -

What is the difference between "screen" and "only screen" in media queries?

我的第一个建议是,您将 CSS 流程设计为从支持的最小分辨率向外工作,例如将 CSS 文件设计为支持移动设备,然后使用媒体查询来处理将 CSS 文件中的属性更改为支持更大分辨率的窗口/设备。

以下链接比我以往任何时候都更清楚地解释了这样做的好处 - http://unmatchedstyle.com/news/working-with-media-queries-and-min-width.php

使用这种设计方法可以更轻松地处理特殊性问题,当您尝试使用媒体查询覆盖已定义的属性时可能会出现这种情况。我从Media Query Styles Not Overriding Original Styles 获得的一种避免此类冲突的便捷方法 - 请注意 Adrift 对 body 的使用。

如果您不打算实际更改属性,则不需要使用媒体查询来覆盖它 - 例如。您无需在媒体查询中指定包装器的宽度,因为它已在 CSS 文件的主体中定义。

至于您在宽度方面的问题,如果您遇到 100% 的问题,请尝试将 body(或者,如果不这样做,包装器)的宽度设置为 100vw。

希望以上内容不要太混乱。

如果您有任何问题,请随时回复。

【讨论】:

  • 感谢您的回答 - 您能否帮我确认一下此网站 (moonshineandfuggles.com) 在 iphone 上是否与在 iphone 上缩小的浏览器上看起来一样 - 尤其是可以您在 iphone 或缩小的浏览器上向左或向右滚动。非常感谢
  • 很抱歉延迟回答 - 我这里的接待真的很糟糕。不幸的是,浏览器/设备模拟器和实际设备之间似乎存在差异。我的 android 手机连续显示三个项目,而不是浏览器建议的连续显示 1 个项目。我现在正在研究这个。据我所知,这是关于设备宽度、视口宽度等的常见问题。由于接收不佳,我可能需要一段时间才能找到解决方案,而且我目前没有可以试验的网站。如果我发现了什么,我会再次在这里发布。
  • 非常感谢您对此进行调查!但是,是的,您已经描述了我在网站上遇到的确切问题 - 正如您所说的浏览器每行放置 1 个项目,但它在手机上每行 3 个项目应该像浏览器一样是 1。如果您确实发现了问题所在,我将不胜感激,因为这对我来说非常令人沮丧 - 非常感谢您代表我忍受糟糕的接待,我知道这有多令人沮丧!