为什么我的媒体查询 "stepping" 相互影响?

Why are my media queries "stepping" on each other?

我很难为不同的 iPads 屏幕使用媒体查询。 这些是我正在使用的:

iPad Pro 仅纵向模式 @media only screen and (min-width: 1024px) and (max-width: 1366px) and (orientation : portrait)

iPad 10 仅纵向模式 @media only screen and (min-width: 810px) and (max-width: 1080px) and (orientation : portrait)

iPad Air 2 仅纵向模式 @media only screen and (min-width: 768px) and (max-width: 1024px) and (orientation : portrait)

这是我的问题。假设我为 iPad Pro 设置了蓝色背景,为 iPad 10 设置了红色背景。iPad Pro 的背景也将是红色。

如何具体定位每个 iPad?

我认为您在 orientation 删除 orientation 时遇到了困难,但一切正常。

检查该片段。

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
  }

  html, body {
    height: 100%;
  }

  body {
    background-color: yellow;
  }

  @media only screen and (min-width: 1024px) and (max-width: 1366px) {
    body {
      background-color: blue;
    }
  }

  @media only screen and (min-width: 810px) and (max-width: 1080px) {
    body {
      background-color: red;
    }
  }

  @media only screen and (min-width: 768px) and (max-width: 1024px) {
    body {
      background-color: pink;
    }
  }

这是因为当屏幕介于 (min-width: 810px)(max-width: 1024px) 之间时 @media 很难应用,因为您的值与 iPad 10 和 [=34 重叠=] 空气 2。因此,当您使用 ipad10 .
时,它会尝试找出应用哪个 相反,您可以在 height/width 中使用软代码并根据增加宽度或减少宽度使用,例如:

  • @media only screen and (min-width: 1080px) and (max-width: 1366px)
  • @media only screen and (min-width: 1024px) and (max-width: 1080px)
  • @media only screen and (min-width: min-width: 810px) and (max-width: 1024px)
  • @media only screen and (min-width: min-width: 768px) and (max-width: 810px)
  • @media only screen and (max-width: 768px)

如前所述,您的媒体查询不知道您使用的是哪个设备,它们只知道宽度和方向。据此,所有三个都在 1024px 处触发。

@media only screen and (min-width: 1024px) and (max-width: 1366px) and (orientation : portrait)

从 1024 像素开始并包括 1024 像素

@media only screen and (min-width: 810px) and (max-width: 1080px) and (orientation : portrait)

包括 1024px

@media only screen and (min-width: 768px) and (max-width: 1024px) and (orientation : portrait)

结束并包含 1024px

第二个和第三个也在 810-1024px 之间触发,第一和第二个在 1024-1080px 之间触发。我会推荐 daad. The approach of erman999 的方法仍然并行触发。