【问题标题】:Css @media tag acting strangeCss @media 标签表现得很奇怪
【发布时间】:2015-05-02 17:09:09
【问题描述】:

我正在尝试一些带有@media 标签的设计,以调整浏览器窗口的大小。

普通窗口:

调整大小的窗口:

(第三层(右边的)消失了,元素变小了)

问题是当我将其调整回原始大小时,我得到:

代码:

@media screen and (max-width: 998px){
    ...
    .person_company{
        float: none !important;
    }
    ...
}

.person_company是这些图片:

我没有发布整个@media 代码,因为如果我删除.person_company 样式,则不会发生此问题。所以我假设它是导致问题的原因。

另外,请注意,在调整大小之前,chrome 检查元素 在该元素上显示float: right,调整大小时显示float: none,放大后显示float: right。所以我猜@media 是正确的。那么是什么导致了这个问题呢?

【问题讨论】:

  • 尝试使用 (min) 作为断点,例如 (@media (min-width: 998px){ ... )
  • 您是否尝试向下滚动页面以检查丢失的框是否存在?当您删除浮动时,它可能最终位于浮动元素下方。
  • @SalmanA 没有丢失的盒子。请阅读第二张图片下的说明(我希望第三个框消失)。

标签: html css


【解决方案1】:

Chrome 中有一个错误会在您调整窗口大小时导致位置问题。当它发生时,尝试在错误位置刷新页面 (F5)。然后应该可以正常显示了。

调整大小错误。 :)

也许您可以在此处提供有关调整大小前后窗口大小的更多详细信息。

【讨论】:

  • 嗯...有趣。这实际上只发生在 chrome 中。 (是的,刷新可以修复它...)您可以在我的代码中看到断点位于 998px
【解决方案2】:

当您有float!important 规则,有时甚至是display 时,就会出现此错误。这是因为!important 将保持活动状态,即使屏幕已重新调整大小。现在几乎没有什么可做的,我通常会尝试找到另一种定位元素的方法。这不像用户会坐下来上下调整窗口大小等,但如果你真的被这个错误所困扰。寻找另一种定位方式:)

【讨论】:

  • 但正如我所说,chrome 的 inspect element 在我调整大小恢复正常后在该元素上显示float: right。这意味着 !important 没有保持活动状态