【问题标题】:Does iPhone 6 still report the same width in portrait and landscape?iPhone 6 的纵向和横向宽度是否仍然相同?
【发布时间】:2014-12-19 04:41:55
【问题描述】:

我似乎找不到这个问题的答案,而且我无法使用 iPhone 6 或 6 Plus。

所有以前的 iOS 设备总是将其宽度报告为纵向模式下的设备宽度,即使它们知道自己处于横向模式。我想知道我们是否需要为具有新屏幕尺寸的新设备创建更专业的媒体查询,或者它们是否最终在横向模式下报告了正确的宽度。

谢谢!

  • 我应该补充一点,当我们检查widthdevice-width 时,我主要询问的是CSS 媒体查询。例如,较旧的 iOS 设备在纵向和横向模式下都会将 device-width 报告为 768 像素。

【问题讨论】:

  • 你试过用 Chrome 开发者工具模拟 iPhone 6/6 Plus 吗?
  • 我现在不太信任他们的设备模式(我在这里有另一篇关于我遇到的错误的帖子)但我会试一试。
  • 只是为了跟进,我确实有一台第三代 iPad,当我在 quirksmode.org/m/tests/widthtest.html 打开屏幕尺寸测试时,我确实得到了相同的 980px 宽度报告,纵向和横向。在设备模式下模拟它并转到同一页面,我得到不同的值(在完美的世界中应该是正确的)。但正如我所怀疑的,它并没有完全模拟我在设备上实际获得的内容。

标签: ios ios8 media-queries screen-size iphone-6


【解决方案1】:

对于 iOS,确定设备视口宽度的最佳做法是使用 CSS orientation 媒体查询。 768px 仅适用于较旧的 iPad。以下是您应该为每个设备实例使用的查询列表:


iPhone 6:

@media only screen 
and (min-device-width : 375px) 
and (max-device-width : 667px) { /* STYLES GO HERE */}

iPhone 6 Plus:

@media only screen 
and (min-device-width : 540px) 
and (max-device-width : 960px) { /* STYLES GO HERE */}

如果您希望将 CSS 应用于特定于纵向或横向的上下文,那么您还需要针对该特定情况添加一个 orientation 查询。

【讨论】:

  • 您好 Xenyal,我有一个脚本,它首先获取查看页面的任何设备的方向,然后运行基于 min-max-width 的媒体查询。问题是,iOS 设备在宽度上撒谎(纵向或横向都是一样的)。我的脚本正在尝试为设备加载最合适的背景图像,所以我已经对对我们撒谎的旧 iOS 设备进行了专门查询,但我想知道 iPhone 6 是否延续了这一传统 - 报告纵向和横向模式下的宽度相同 - 或者如果我的通用、包罗万象的查询可以工作。
  • @LubosB 脚本与 Javascript 一样吗?关于 iPhone 6/6Plus,它们的宽度确实不会根据它们的方向而改变。因此,理想的解决方案是为您的案例提供包含orientationwidth 的查询。
  • 感谢您的确认。是的,JS,所以也许我会写一个类似if (orientation == landscape && width < height) 的函数...加载横向图像(而不是有 4 个不同的查询来覆盖所有 iOS 设备)。
  • 通过在 .css 文件中说明所有 CSS 案例来解决不同的 CSS 案例通常被认为是更好的做法。将 Javascript 限制在导致 DOM 元素类更改的行为案例中。因此,基于 CSS 媒体查询,您将拥有不同的 background-image
猜你喜欢
  • 1970-01-01
  • 2014-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多