这是一件困扰了我一段时间的事情,我一直没有真正理解为什么会发生这种情况:

当我测试我正在处理的网站的响应性时,有时我会点击"切换设备工具栏"并 Select 特定的设备大小,有时我会简单地拖动浏览器窗口来放大或缩小它.

但是,这两种方法的用户界面并不总是一致的,即使视区的宽度和高度值看起来是相同的.

下面是我所描述的一个例子.

When I manually resize the window (by dragging), the page looks like this: enter image description here

And when I toggle the device toolbar, the page looks like this: enter image description here

正如你在图片中看到的,尺寸是一样的,但右边的导航栏不会像在第二张图片中那样出现在第一张图片中(事实上,当使用设备工具栏时,导航栏永远不会消失).

有没有人知道为什么会这样?这对我来说不是一个大问题,但我相信这可能是我在页面上运行一些Cypress e2e测试失败的原因.

在实践中,似乎"切换设备工具栏"是UI实际外观的准确表示,但当我运行Cypress测试时,快照看起来像第一张图像-当我通过拖动调整窗口大小时.结果,一些按钮最终在页面上不可见,但当我在任何设备(Laop、平板电脑、移动设备等)上实际打开页面时,它们都是可见的.

有人碰巧对此有什么见解吗? 我也很好奇为什么会发生这样的事情.

这里有一个指向实际网站的链接:https://ddmal.music.mcgill.ca/Neon/editor.html?manifest=CF-005

谢谢!

推荐答案

导航面板由一个css媒体查询控制.

@media screen and (max-width: 768px) {
  .is-hidden-mobile {
    display: none!important;
  }
}

这个问题Chrome Device Mode Emulation Media Queries Not Working讨论了这个问题,但它有点老了,所以值得直接测试.

这是您的网页的简化版本

<html lang="en">
  <head>
    <meta charset="UTF-8">

    <!-- Comment out the following to see old behavior -->
    <meta name="viewport" content="width=device-width">

    <style>
      #editor-body-container {
        overflow: hidden;
        display: flex;
        flex-direction: row;
        align-items: flex-start;
        justify-content: space-between;
        flex-wrap: nowrap;
      }
      #right-column {
        height: 100%;
        width: 30%;
      }
      @media screen and (max-width: 768px) {
        .is-hidden-mobile {
          display: none!important;
        }
    </style>
  </head>

  <body>
    <div id="editor-body-container">
      <div id="left-column"><h1>Left column</h1></div>
      <div class="is-hidden-mobile" id="right-column"><h1>Right column</h1></div>
    </div>
  </body>
</html>

如果您添加/删除上述答案中给出的<meta name="viewport" content="width=device-width">,则问题已更正(您可能必须切换设备模式)

Css相关问答推荐

如何在悬停时缓慢更改渐变 colored颜色 ?

CSS媒体查询不显示所需的输出

如何通过重复的网格区域来简化网格布局?

媒体查询在生产中没有响应:React 18 应用程序

为什么我的 React slick 轮播响应能力不起作用?

使用 React 和 Flexbox 文本溢出框外

如何在变量中插入 SCSS 变量?

和号 (&) 作为 SASS @mixin 中的变量

使用border-radius时填充元素之间的空间

纯 CSS/JS 的 SVG 连续向内方形螺旋动画

对齐视图中的复选框(RN)

边界半径不起作用

如何始终在浏览器中显示垂直滚动条?

如何在需要时通过 HTTPS 包含 CSS 和 JS 文件?

CSS:固定到底部并居中

CSSzoom 高度以匹配宽度 - 可能与外形尺寸

在 Twitter Bootstrap 中创建圆角的正确方法

矩形图像的 CSS 圆形裁剪

CSS 块格式化上下文是如何工作的?

从 textarea 中删除所有样式(边框、发光)