【问题标题】:Media query does not hide an image媒体查询不隐藏图像
【发布时间】:2014-09-19 15:33:20
【问题描述】:

我想为宽度低于 800 像素的屏幕隐藏我的网站。

<body>
...
<img id="elephC" src="img/eleph.gif" alt="img">
...
<div id='minW'>
qadenzaClub
<br>
<div id='minW_red'>min 800 px<br>screen width required</div>
</div>
...
</body>

css

@media only screen and (max-width:799px){
body * {
 display:none;
}
#minW, #minW div, #minW br{
    display:block;
}
}

在 799px 上调整窗口大小,body 标签内的所有内容都被隐藏,elephC 图像除外! (动画 gif)。

minW 和子 div 正确显示。

我在 W3C 验证服务上测试了标记和 css - 没问题。

【问题讨论】:

  • 请在 jsfiddle.net 中重新创建此代码似乎很好,应该可以工作
  • 是的,这个 JSFiddle 似乎很好玩(没有变化):jsfiddle.net/cfalk/F6SQH
  • 这可能是您的 CSS 中的其他内容覆盖了 display:none 属性。尝试使用 !important 关键字或找出选择了哪个规则(例如,使用 Chrome 的 DevTools)。

标签: html css media-queries media


【解决方案1】:

更新 1. !important 关键字防止其他规则覆盖display 属性。

  @media only screen and (max-width:799px){
            body *{
             display:none !important;
            }
      #minW, #minW div, #minW br{
        display:block !important;
      }
 }

它现在为你自己工作Look :)

【讨论】:

  • 你为什么要使用这个而不是 OP 已经拥有的?请解释一下。
  • 1- 与其隐藏所有元素然后显示他想要的 div 为什么我们不只隐藏我们想要隐藏的元素。 2- !important 关键字防止对可能显示 img 的显示属性进行任何覆盖
  • 是的。这就是我想在你的回答中看到的,伙计。 :)
  • 我刚刚意识到后一种情况可能会失败,因为我们想要显示的元素也被body *选中了。
  • @bonaca 你应该寻找原因的根源,而不是做这个重要的覆盖
猜你喜欢
  • 2012-12-25
  • 2014-08-14
  • 2014-05-10
  • 2012-08-01
  • 2020-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-08
相关资源
最近更新 更多