高度媒体查询在带有 Safari 的 iPhone 6 上无法正常工作

Posted

技术标签:

【中文标题】高度媒体查询在带有 Safari 的 iPhone 6 上无法正常工作【英文标题】:Height Media Queries not working properly on iPhone 6 with Safari 【发布时间】:2018-05-31 04:57:21 【问题描述】:

我有以下媒体查询,它们应该在 iPhone 和 android 的 Web 视图中工作:

@media (max-height: 275px) 
  .logo 
    display: none;
  


@media (max-height: 365px) 
    .default-title 
        display: none;
    


@media (max-height: 450px) 
    .logo 
        padding-top: 1rem;
    


@media (max-height: 315px) 
    .logo 
        padding-top: 0;
    

基本上它应该使元素随着工作空间高度的降低而缩小/消失。

它在 Android 设备上运行良好,但在我的 iPhone 6 上完全被忽略了。就好像 Safari 完全不知道键盘是打开的一样。如果是这样,那么我有 3 个问题:

    如何检测键盘打开/关闭 是否可以让这些媒体查询同时适用于 Android 和 iPhone? 这是否与 iPhone 6 的 Retina 显示屏有关?

【问题讨论】:

【参考方案1】:

从最大到最小重新排序您的媒体查询:

@media (max-height: 450px) 
    .logo 
        padding-top: 1rem;
    


@media (max-height: 365px) 
    .default-title 
        display: none;
    


@media (max-height: 315px) 
    .logo 
        padding-top: 0;
    


@media (max-height: 275px) 
    .logo 
        display: none;
    

【讨论】:

没有帮助。似乎键盘是 web 视图上方的覆盖层,所以这些查询永远不会被考虑 @Tsury,是的,它不适用于键盘。据我所知,没有办法从 css 对键盘做出反应。

以上是关于高度媒体查询在带有 Safari 的 iPhone 6 上无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

Safari 100% 高度和宽度异常

带有 Safari 的 iPhone 无法正确解释 @media

仅 iPad 的横向 Safari 媒体查询

在 iPhone Safari HTML 页面上打开带有图像的 Youtube 视频

Safari 打印媒体查询与其他浏览器不匹配/中断

响应式设计 - Media Query无法在iPhone上运行?