iPhone 5 CSS媒体查询

Mav*_*ick 130 css iphone media-queries responsive-design iphone-5

iPhone 5有一个更长的屏幕,它没有捕捉我的网站的移动视图.什么是iPhone 5的新响应式设计查询,我可以与现有的iPhone查询结合使用吗?

我目前的媒体查询是这样的:

@media only screen and (max-device-width: 480px) {}
Run Code Online (Sandbox Code Playgroud)

2C-*_*C-B 278

另一个有用的媒体功能是device-aspect-ratio.

请注意,iPhone 5的宽高比不是16:9.实际上是40:71.

iPhone <5:
@media screen and (device-aspect-ratio: 2/3) {}

iphone 5:
@media screen and (device-aspect-ratio: 40/71) {}

iPhone 6:
@media screen and (device-aspect-ratio: 375/667) {}

iPhone 6 Plus:
@media screen and (device-aspect-ratio: 16/9) {}

iPad的:
@media screen and (device-aspect-ratio: 3/4) {}

参考:
媒体查询@ W3C
iPhone模型比较
宽高比计算器

  • 我喜欢这种方法但是在添加-webkit-min-device-pixel-ratio之前无法让它在PhoneGap应用webview中工作,正如Stephen Sprawl所解释的那样http://zsprawl.com/iOS/2012/09/css-media -queries换了-iPhone-5.@media screen和(device-aspect-ratio:40/71)和(-webkit-min-device-pixel-ratio:2){// iphone5 for teh phonegaps} (2认同)

Eri*_*ric 63

有这个,我赞同这个博客:

@media only screen and (min-device-width: 560px) and (max-device-width: 1136px) and (-webkit-min-device-pixel-ratio: 2) {
    /* iPhone 5 only */
}
Run Code Online (Sandbox Code Playgroud)

请记住,它会对iPhone 5做出反应,而不是对所述设备上安装的特定iOS版本做出反应.

要与现有版本合并,您应该能够用逗号分隔它们:

@media only screen and (max-device-width: 480px), only screen and (min-device-width: 560px) and (max-device-width: 1136px) and (-webkit-min-device-pixel-ratio: 2) {
    /* iPhone only */
}
Run Code Online (Sandbox Code Playgroud)

注意:我没有测试过上面的代码,但之前我已经测试了逗号分隔的@media查询,并且它们工作得很好.

请注意,以上可能会遇到其他一些具有相似比率的设备,例如Galaxy Nexus.这是另一种方法,它只针对一维640px(560px,由于一些奇怪的显示像素异常)和一个960px(iPhone <5)和1136px(iPhone 5)之间的设备.

@media
    only screen and (max-device-width: 1136px) and (min-device-width: 960px) and (max-device-height: 640px) and (min-device-height: 560px),
    only screen and (max-device-height: 1136px) and (min-device-height: 960px) and (max-device-width: 640px) and (min-device-width: 560px) {
    /* iPhone only */
}
Run Code Online (Sandbox Code Playgroud)

  • 小心,因为这将影响其他手机 - 而不仅仅是iphone.一个例子是三星Galaxy Nexus. (6认同)

Dan*_*Dan 33

上面列出的所有这些答案,使用max-device-widthmax-device-height用于媒体查询,都会遇到非常强烈的错误:它们还针对许多其他流行的移动设备(可能不需要,从未测试过,或将来会打入市场).

此查询适用于屏幕较小的任何设备,可能您的设计将被破坏.

结合类似设备特定的媒体查询(对于HTC,三星,iPod,Nexus ......),这种做法将发布定时炸弹.对于debigging,这个想法可以使你的CSS成为一个不受控制的spagetti.您永远无法测试所有可能的设备.

请注意,唯一一个始终以iPhone 5目标的媒体查询是:

/* iPhone 5 Retina regardless of IOS version */
@media (device-height : 568px) 
   and (device-width : 320px) 
   and (-webkit-min-device-pixel-ratio: 2)
/* and (orientation : todo: you can add orientation or delete this comment)*/ {
                 /*IPhone 5 only CSS here*/
}
Run Code Online (Sandbox Code Playgroud)

请注意,此处检查精确的宽度和高度,而不是最大宽度.


现在,解决方案是什么?如果您想编写一个在所有可能的设备上看起来不错的网页,最佳做法是使用降级

/*退化模式我们只检查屏幕宽度,这将改变从纵向转为横向*/

/*css for desktops here*/

@media (max-device-width: 1024px) {
  /*IPad portrait AND netbooks, AND anything with smaller screen*/
  /*make the design flexible if possible */
  /*Structure your code thinking about all devices that go below*/
}
@media (max-device-width: 640px) {
 /*Iphone portrait and smaller*/
}
@media (max-device-width: 540px) {
 /*Smaller and smaller...*/
}
@media (max-device-width: 320px) {
 /*IPhone portrait and smaller. You can probably stop on 320px*/
}
Run Code Online (Sandbox Code Playgroud)

如果超过30%的网站访问者来自移动设备,请将此方案颠倒过来,提供移动优先方法.min-device-width在那种情况下使用.这将加快移动浏览器的网页呈现速度.

  • 我会先进行渐进增强和移动.这是从移动开始,并使用min-device-width进行构建. (9认同)
  • 另请注意,仅与iPhone 5匹配的高度/宽度/像素比解决方案也将与出现具有相同特征的下一部手机相匹配.您的答案的总体主题是正确的:根据*特定设备*进行思考是错误的方法. (2认同)

小智 7

对我来说,完成这项工作的查询是:

only screen and (device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)
Run Code Online (Sandbox Code Playgroud)


Sud*_*eer 7

iPhone 5的纵向和横向

@media only screen 
and (min-device-width : 320px) 
and (max-device-width : 568px) {

/* styles*/
}
Run Code Online (Sandbox Code Playgroud)

iPhone 5在风景中

@media only screen 
and (min-device-width : 320px) 
and (max-device-width : 568px) 
and (orientation : landscape) { 
/* styles*/

}
Run Code Online (Sandbox Code Playgroud)

iPhone 5的肖像

@media only screen 
and (min-device-width : 320px) 
and (max-device-width : 568px) 
and (orientation : portrait) { 
 /* styles*/

}
Run Code Online (Sandbox Code Playgroud)


ppc*_*ano 5

我没有针对phonegapp应用程序的响应.

如下面的链接点,下面的解决方案有效.

@media screen and (device-height: 568px) and (orientation: portrait) and (-webkit-min-device-pixel-ratio: 2) {
    // css here
}
Run Code Online (Sandbox Code Playgroud)


小智 5

只是一个非常快速的添加,因为我一直在测试一些选项,并错过了这一过程.确保您的页面包含:

<meta name="viewport" content="initial-scale=1.0">
Run Code Online (Sandbox Code Playgroud)