【问题标题】:Media query not applying to large mobile devices (tablets)媒体查询不适用于大型移动设备(平板电脑)
【发布时间】:2016-04-21 09:54:25
【问题描述】:

我有一些媒体查询对我来说不能正常工作,基本上下面的 css 应该在桌面上显示一些元素,在移动设备上显示一些元素。

例如,在手机/平板电脑上隐藏一些“悬停”元素,但让它们在桌面设备上可见。

@media (max-width: 1024px){
    .desktop_only {
       display: none !important;
    }
}
@media (min-width: 1025px){
    .mobile_only {
       display: none !important;
    }
}

在 CSS4 中,我们将能够使用“指针”功能更轻松地做到这一点:https://drafts.csswg.org/mediaqueries/#pointer 但我不能使用它,因为那是未来,尚未实现。

我尝试使用:

<script>
    document.documentElement.className += 
    (("ontouchstart" in document.documentElement) ? ' touch' : ' no-touch');
</script>

我也尝试过使用 Modernizer,它应该也添加了触摸/非触摸

与:

@media (max-width: 1024px){
    .touch .desktop_only {
       display: none !important;
    }
}
@media (min-width: 1025px){
    .no-touch .mobile_only {
       display: none !important;
    }
}

但它不起作用,它没有正确隐藏元素。我也试过没有@media (xxxx: 102x) 部分,但这也不起作用。我也尝试过切换触摸和非触摸,以防万一我弄错了。

我无法使用 css:-moz-system-metric(touch-enabled),因为许多浏览器不支持它

不确定如何使用http://detectmobilebrowsers.com/ 做我想做的事

有人知道我做错了什么吗?

【问题讨论】:

  • 尝试@media only screen and (max-width:1025px) 以及在&lt;head&gt; 某处包含&lt;meta name="viewport" width=device-width"&gt;
  • 你试过验证你的 CSS 吗?有时,前面元素中某处缺少括号会弄乱它下面的任何代码。
  • @Brian css 都是有效的,我已经在页面的多个区域尝试过 css,它仍然无法正常工作。

标签: css responsive-design responsive


【解决方案1】:

基本上你的媒体是错误的,看看最小宽度和最大宽度,这样做

.mobile-only {
  display: block;
}

@media (min-width: 1024px){
  .desktop-only {
    display: block;
  }
  .mobile-only {
    display: none;
  }
  .desktop-only:hover {
    color:#000;
  }
}

不要使用下划线

编辑 - 这是我的

/* ===============
 DISPLAY SETTINGS
 =============== */

@media all and (max-width: 43.688em) { /* 489px */

    .mobile-is-hidden { display: none; }

}

@media all and (min-width: 43.688em) and (max-width: 61.188em) { /* 699px to 979px */

    .pad-is-hidden { display: none; }

}

@media all and (min-width: 61.250em) { /* 980px */

    .desk-is-hidden { display: none; }

}

【讨论】:

  • 嗨,还是不行。例如,它不会将其应用于 Nexus 10 环境。
  • @Ryflex 这只是一个例子,你必须找出实际的屏幕尺寸,即使手机有视网膜,它也会在上面播放。例如,mobile-is-hidden 仅适用于宽度不超过 489px 的屏幕尺寸,如果您希望它隐藏在横向上,这也会导致平板电脑出现问题,因为它们在很多时候使用相同的宽度。 (大多数人不会在手机上使用横向浏览网站,因为这样做很烦人)
猜你喜欢
  • 2017-01-05
  • 2021-04-28
  • 2012-07-24
  • 2014-10-11
  • 2011-09-16
  • 2016-08-30
  • 2014-09-20
相关资源
最近更新 更多