【问题标题】:safari and chrome media query doesn't functionsafari 和 chrome 媒体查询不起作用
【发布时间】:2015-10-09 15:12:46
【问题描述】:

我有一个引导菜单,它会在缩小浏览器时折叠。我还有第二个菜单,它在小型设备上消失并出现在折叠的第一个菜单中。它在 Firefox 中运行良好,但在 safari 和 chrome 中却不行。这是我的代码:

 li.hideshow {
   display: none;
 }
 @media screen and (max-width: 500px),
 screen and (-webkit-min-device-pixel-ratio: 1) {
   img.smallResolution {
     max-width: 220px;
   }
   li.hideshow {
     display: block;
   }
 }
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
  <ul class="nav navbar-nav navbar-right">
    <li><a href="#point1">publisher</a>
    </li>
    <li><a href="#point2">advertiser</a>
    </li>
    <li><a href="#point3">news</a>
    </li>
    <li><a href="#point4">contact</a>
    </li>
    <li class="hideshow"><a href="#">point5</a>
    </li>
    <li class="hideshow"><a href="#">point6</a>
    </li>
    <li class="hideshow"><a href="#">point7</a>
    </li>
  </ul>
</div>

我搜索了很多,但我没有找到答案。我希望有人能看到这里出了什么问题。

谢谢。

【问题讨论】:

    标签: html css twitter-bootstrap safari


    【解决方案1】:

    好的,我将最大宽度更改为 600 像素,现在它可以在 FF、Chrome 和 SAFARI 中使用。我注意到这三个浏览器都有自己的自定义边框,因此您可以最大程度地减小 FF 的浏览器窗口宽度,然后是 Chrome,然后是 Safari。 感谢@DCdaz 和@Germano Plebani 的回答。

    【讨论】:

      【解决方案2】:

      试试这个:

      @media only screen and (max-width: 500px),
             only screen and (-webkit-min-device-pixel-ratio: 1) {
          ...
          ...
      }
      

      或者:

      @media (max-width: 500px), (-webkit-min-device-pixel-ratio: 1) {
          ...
          ...
      }
      

      【讨论】:

      • 两者都试过了:FF 仍然有效,但 safari 和 chrome 也会在全屏(桌面)的第一个菜单中显示第二个菜单。似乎他们只是忽略了显示:无; :(
      • 为什么使用像素比:1?对于非高分辨率显示器?
      • 我尝试了这条线 (-webkit-min-device-pixel-ratio: 1),因为它在某个论坛上作为解决方案提供,但它不起作用。
      • 使用此代码,它在 FF 和 Chrome 中起作用,但在 Safari 中不起作用:'@media 手持设备,屏幕和(最大宽度:500 像素){ img.smallResolution { 最大宽度:220 像素; } li.hideshow { 显示:块; } }'
      • 通常我只使用这个(不同的分辨率):@media(最大宽度:500px)。它无处不在。
      【解决方案3】:

      您不需要为每个尺寸定义定义屏幕。

      这应该可以解决问题:

      li.hideshow {
        display: none;
      }
      @media handheld, screen and (max-width: 500px) and (-webkit-min-device-pixel-ratio: 1) {
        img.smallResolution {
          max-width: 220px;
        }
        li.hideshow {
          display: block;
        }
      }
      <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
        <ul class="nav navbar-nav navbar-right">
          <li><a href="#point1">publisher</a>
          </li>
          <li><a href="#point2">advertiser</a>
          </li>
          <li><a href="#point3">news</a>
          </li>
          <li><a href="#point4">contact</a>
          </li>
          <li class="hideshow"><a href="#">point5</a>
          </li>
          <li class="hideshow"><a href="#">point6</a>
          </li>
          <li class="hideshow"><a href="#">point7</a>
          </li>
        </ul>
      </div>

      【讨论】:

      • 试过了:该代码仅在 chrome 中起作用。 FF 和 Safari 不在折叠菜单中显示 .hideshow 类 :(
      • 我删除了带有 (-webkit-min-device-pixel-ratio: 1) 的行。现在它在 FF 和 Chrome 中起作用,但在 Safari 中不起作用。
      • Safarai 对错误的敏感度远远高于其他人,我会检查您的代码。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-02
      • 2019-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-15
      相关资源
      最近更新 更多