iPhone 不遵守 CSS 网格行

iPhone not honoring CSS Grid Rows

.remote-local-video {
  display: grid;
  grid-gap: 0.25rem;
  grid-template-columns: 50% 50%;
  grid-template-rows: 80vh;
  grid-template-areas: "remoteVideo localVideo";

  .ch-video {
    object-fit: contain;
  }

  @media (max-width: 769px) {
    grid-template-columns: 100%;
    grid-template-rows: 40vh 40vh;
    grid-template-areas: "remoteVideo" "localVideo";
  }
}

我们有这个 CSS。它似乎在 Macbook Pro 的 Android Chrome、Chrome/Firefox 开发工具中运行良好。在 iPhone 12 Max Pro、iPhone 11 Pro 和 IPhone XR 中 - 显示 remoteVideo 或显示 localVideo。两者没有一起显示。我在 Chrome 和 Safari 浏览器中都试过了。

我发现 iPhone 上的 Safari 在拥有完美代码方面比任何其他平台都更加讲究。可能是您的 class .remote-local-video 的右括号位于此 CSS 的底部而不是 .ch-video class 上方?另外(不确定您是否只是使用与我习惯的不同的语法 - 但我通常将媒体查询分开并在其中重新声明 class 名称)。我很快就把它放到我的测试环境中,发现它在 iPhone 6:

上可以在 Safari 中运行
.remote-local-video {
  display: grid;
  grid-gap: 0.25rem;
  grid-template-columns: 50% 50%;
  grid-template-rows: 80vh;
  grid-template-areas: "remoteVideo localVideo";
}

  .ch-video {
    object-fit: contain;
  }
  

  @media only screen and (max-width: 769px) {
    .remote-local-video {
    grid-template-columns: 100%;
    grid-template-rows: 40vh 40vh;
    grid-template-areas: "remoteVideo" "localVideo";
    }
  }

注意:我还使用了以下 HTML(请原谅我的内联边框可见性):

<div class="remote-local-video">
  <div style="border: 1px solid black">1</div>
  <div style="border: 1px solid black">2</div>
</div>

(我曾经在一个 JavaScript 选择器中发现一个丢失的右括号,该选择器在 Web 应用程序的其他任何地方都可以工作,但是当部门切换到使用 iPhones!)

.remote-local-video {
  display: grid;
  grid-gap: 0.25rem;
  grid-template-columns: 50% 50%;
  grid-template-rows: calc(100vh - 80px);
  grid-template-areas: "remoteVideo localVideo";

  .ch-video {
    object-fit: contain;
  }

  @media only screen and (max-width: 950px) and  (orientation: portrait) {
    div#meetingLocalVideo {
      height: calc(50vh - 40px);
    }

    div#meetingRemoteVideos {
      height: calc(50vh - 40px);
    }

    grid-template-columns: 100%;
    grid-template-rows: calc(50vh - 40px) calc(50vh - 40px);
    grid-template-areas: "remoteVideo" "localVideo";
  }

  @media only screen and (max-width: 950px) and  (orientation: landscape) {

    div#meetingLocalVideo {
      height: calc(100vh - 80px);
    }

    div#meetingRemoteVideos {
      height: calc(100vh - 80px);
    }
    grid-template-rows: calc(100vh - 80px);
  }
}

IOS 期望我们设置 div 的显式高度。以上 CSS 工作正常。