reactjs metatag/iPhone没有响应媒体查询

fdbelqdn  于 2022-12-29  发布在  React
关注(0)|答案(2)|浏览(155)

我的NextJS网站上有多个(普通的)CSS媒体查询。媒体查询在我的桌面浏览器上运行良好,但当我在手机上打开网站时,媒体查询不起作用。我检查了caniuse.com,我使用的所有CSS属性都应该在iOS版Safari上运行。作为参考,我的iPhone上安装了最新版本的Safari,我在很多网站上看到NextJS不会像React那样自动添加以下 meta标记,必须手动添加:

<meta name="viewport" content="initial-scale=1, width=device-width, maximum-scale=1"></meta>

我把它放在_app.tsx<Head></Head>标签里,但是我的手机浏览器仍然没有响应媒体的查询。
下面是一个媒体查询示例:

@media (max-width: 1200px) or (max-height: 700px) {
  body {
    background-color: var(--lightBlue);
  }
}
4ktjp1zp

4ktjp1zp1#

我在多个查询上使用了or,iOS上的Safari不支持/响应。用and切换或创建多个查询可以工作。

bbmckpt7

bbmckpt72#

详细解释我的评论。
不需要两个单独的查询。您还可以使用逗号分隔一个查询中的两个(或多个)不同规则。

@media (max-width: 1200px), screen and (max-height: 700px) {
  body {
    background-color: var(--lightBlue);
  }
}

MDN开始
当用户的设备与各种媒体类型、功能或状态中的任何一种相匹配时,您可以使用逗号分隔的列表来应用样式。

相关问题