与苹果的新设备相对应的CSS媒体查询是什么?我需要设置body
的background-color
改变X的安全区域的背景颜色。
Answers:
@media only screen
and (device-width : 375px)
and (device-height : 812px)
and (-webkit-device-pixel-ratio : 3) { }
@media only screen
and (device-width : 375px)
and (device-height : 667px)
and (-webkit-device-pixel-ratio : 2) { }
@media only screen
and (device-width : 414px)
and (device-height : 736px)
and (-webkit-device-pixel-ratio : 3) { }
iPhone 6 + / 6s + / 7 + / 8 +具有相同的尺寸,而iPhone 7/8也具有相同的尺寸。
寻找特定方向?
肖像
添加以下规则:
and (orientation : portrait)
景观
添加以下规则:
and (orientation : landscape)
参考文献:
Mozilla/5.0 (iPhone; CPU iPhone OS 12_0_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1
。
以下是一些针对iphone的媒体查询。这是参考链接https://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions
/* iphone 3 */
@media only screen and (min-device-width: 320px) and (max-device-height: 480px) and (-webkit-device-pixel-ratio: 1) { }
/* iphone 4 */
@media only screen and (min-device-width: 320px) and (max-device-height: 480px) and (-webkit-device-pixel-ratio: 2) { }
/* iphone 5 */
@media only screen and (min-device-width: 320px) and (max-device-height: 568px) and (-webkit-device-pixel-ratio: 2) { }
/* iphone 6, 6s, 7, 8 */
@media only screen and (min-device-width: 375px) and (max-device-height: 667px) and (-webkit-device-pixel-ratio: 2) { }
/* iphone 6+, 6s+, 7+, 8+ */
@media only screen and (min-device-width: 414px) and (max-device-height: 736px) and (-webkit-device-pixel-ratio: 3) { }
/* iphone X , XS, 11 Pro */
@media only screen and (min-device-width: 375px) and (max-device-height: 812px) and (-webkit-device-pixel-ratio: 3) { }
/* iphone XR, 11 */
@media only screen and (min-device-width : 414px) and (max-device-height : 896px) and (-webkit-device-pixel-ratio : 2) { }
/* iphone XS Max, 11 Pro Max */
@media only screen and (min-device-width : 414px) and (max-device-height : 896px) and (-webkit-device-pixel-ratio : 3) { }
我注意到,这里的答案是使用:device-width
,device-height
,min-device-width
,min-device-height
,max-device-width
,max-device-height
。
由于它们已被弃用,请不要使用它们。请参阅MDN以获取参考。而是使用常规的min-width
,max-width
依此类推。为了进一步保证,您可以将最小值和最大值设置为相同的px值。例如:
iPhone X
@media only screen
and (width : 375px)
and (height : 635px)
and (orientation : portrait)
and (-webkit-device-pixel-ratio : 3) { }
您可能还会注意到,我使用的是635px的高度。自己尝试,窗口高度实际上是635px。运行适用于iPhone X的iOS模拟器,并在Safari Web检查器中执行window.innerHeight
。以下是有关此主题的一些有用链接:
如果您的页面meta[@name="viewport"]
在其DOM中缺少元素,则可以使用以下内容来检测移动设备:
@media only screen and (width: 980px), (hover: none) { … }
如果要避免像所有移动浏览器一样将视口设置为980px的台式机使用假阳性,则device-width
还可以在组合中添加一个测试:
@media only screen and (max-device-width: 800px) and (width: 980px), (hover: none) { … }
根据https://developer.mozilla.org/zh-CN/docs/Web/CSS/Media_Queries/Using_media_queries中的列表,新hover
属性似乎是检测您是否拥有移动设备的最后一种新方法那确实不合适hover
; 它仅在2018年随Firefox 64(2018)引入,尽管自2016年以来受Android Chrome 50(2016)甚至自2014年以来受Chrome 38(2014)的支持: