【问题标题】:What can cause HTML block elements to overlap?什么会导致 HTML 块元素重叠?
【发布时间】:2013-11-27 23:01:59
【问题描述】:

我基于 Hot Towel 模板启动了一个 MVC4 SPA Web 应用程序。我开始清理我不想要的页眉和页脚内容。我删除的其中一件事是从文件 app.css 中将margin-topsection.main 设置为80px。我真的不希望标题占用这么多空间。但我对结果感到困惑。甚至在我删除之前,根据我的 Chrome 浏览器窗口的宽度,我在标题中看到了一些奇怪的行为。现在我已经删除了它,我看到了类似的奇怪的“包装”行为,它允许我的标题与我的内容重叠。

当标题宽度为 979 像素时,我的屏幕如下所示:

由于我只是重新调整浏览器窗口的大小,在 980 像素处,我跨越了一个阈值,导致内容在标题下向上滑动,如下所示:

什么可能导致这种重叠?我在哪里可以尝试使content section 严格低于header?我没有看到任何float 样式应用于所涉及的元素。

真正奇怪的是,尽管header 的大小变为0,但它包含的nav 元素在适当的大小下仍然清晰可见。一个容器怎么会小于它的内容呢?

我在可能相关的 app.css 中发现了这个:

@media only screen and (max-width: 979px) {
    .page-splash-message {
        font-size: 150%;
    }

    .navbar-fixed-bottom {
        position: fixed;
    }

    footer span {
        padding: 10px 50px;
        font-size: 14px;
    }
}

【问题讨论】:

  • 查看您的 CSS,搜索媒体查询,在那里进行调查。关键字 threshold 在“跨越阈值”...
  • @Xander 感谢您的提示。我正在添加一些我发现似乎是负责任的 CSS(暂时)。也许您可以帮助描述/解释它正在做什么可能导致所描述的行为。一旦我理解它,希望解决方案会很清楚。
  • 如果我不得不猜测(因为您没有提供要查看的 navbar-fixed-top 代码),navbar-fixed-top(假设正在使用该死的 Bootstrop)设置 @987654333 @要显示的元素:固定。这就是为什么margin-top首先存在的原因,以伪造主要内容的位置在浮动的导航栏下方。最有可能在 980px 下删除了固定位置,或者您仅从 >979px 媒体查询样式中删除了 margin-top,这就是为什么在 980px 以下,它看起来很好,但在上面,内容会滑动到它应该在的位置。
  • 因为position: fixed
  • 我尝试将其更改为相对并完全删除该块,但没有效果。然后我意识到在bootstrap-responsive.css 中引用979px@media 样式(我今天之前从未听说过)还有一大堆。这似乎不是设计灵活布局的干净方法。你会推荐什么?我可以用更明智的方式覆盖我的app.css 中的引导样式吗?

标签: jquery html css layout hottowel


【解决方案1】:

我通过更改我的 nav.html 文件解决了这个问题:

<nav class="navbar navbar-fixed-top">
(etc...)
</nav>

到:

<nav class="navbar navbar-static-top">
(etc...)
</nav>

【讨论】:

    猜你喜欢
    • 2014-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-31
    相关资源
    最近更新 更多