重叠粘性标题的问题(重叠其下方的主要内容)

Posted

技术标签:

【中文标题】重叠粘性标题的问题(重叠其下方的主要内容)【英文标题】:Problems with overlapping sticky header (overlaps main content below it) 【发布时间】:2014-10-03 18:28:23 【问题描述】:

过去几天我学习了各种教程,当我的页面垂直滚动时,我遇到了(粘性)标题与下面的内容重叠的问题。

它在这个test site的所有页面上。


html >

<header>
  <div id="nav">
    <ul>
      <li><a href="index.html" title="Home">Home</a></li>
      <li><a href="collection.html" title="Collection">Collection</a></li>
      <li><a href="shop.html" title="Shop">Shop</a></li>
      <li><a href="faq-policies.html" title="Frequently asked questions and policies">FAQ/Policies</a></li>
      <li><a href="contact.php" title="Contact">Contact</a></li>
    </ul>
    </li>
    </ul>
    <br class="clearboth"/>
  </div>
</header>
<br>
<div class="table">

CSS >

header 
    margin-left: auto;
    margin-right: auto;
    text-align: center;
    position: fixed;
    z-index: 10;


.table 
    margin-left: 75px;
    text-decoration: none;
    margin-top:300px;

【问题讨论】:

只需将padding-top 添加到.table div 中,即可将其向下推到足够远的位置。 添加一个简短的警告可能是礼貌的,说明您正在链接到一个包含穿着内衣的人的照片的页面。虽然没有冒犯性,但我宁愿在工作时不打开它。 我找不到模特的联系电话。 此外,根本不要链接到实时站点,这在问题解决后将不再相关。而是在小提琴中举一个问题的例子 如果您不希望它与您的内容重叠,则不应将 fixed 用于您的标题。只需使用内容滚动而不是整个页面来使您的 table-div 滚动,这样您的标题将始终位于您的内容之上(将名称命名为 div .table 顺便说一句,将其命名为 .content 或其他名称是一个可怕的想法)跨度> 【参考方案1】:

实际上,您的代码几乎已经完成了。你只需要给标题一个背景颜色,因为默认情况下它是透明的,并且还提供 100% 的宽度。然后滚动内容将消失在它后面。

最好通过将正文边距和填充设置为零来整理它。所以把它添加到你的 CSS 中:

body
    margin: 0;
    padding: 0;


header 
    background: white;
    width: 100%;

这将实现您最初想要的。然而,现在出现了大多数人忽略的有趣的一点。我不太清楚你为什么给表格 div 留出 300px 的边距,因为这比你需要的要大得多。但是根本不要以像素为单位!因为使用固定测量意味着,当一个部分视力正常的用户使用纯文本缩放(很大程度上取决于他们的浏览器)看到页面时,标题将与内容重叠,隐藏它,所以你所有的努力都付诸东流了!使用 em 单位。

您的示例中的菜单有 5 行,加上上面有一个空白行,下面还有两到三行,所以标题总共允许 9em(您根据最终标题的实际高度选择值),并这样做:

.table 
    margin-top: 9em;   /* instead of 300px */

现在,无论用户使用何种文本缩放,您的内容的上边距都会相应增长,并且内容将始终在标题下方开始。

【讨论】:

谢谢家伙,我需要尽快完成您的解决方案!非常感谢所有花时间发表评论的人 - 周末愉快!【参考方案2】:

将下面的 css 添加到您的***标题类中:

z-index: 99;

作为:

<header style="z-index:99">
  <div id="nav">
    <ul>
      <li><a href="index.html" title="Home">Home</a></li>
      <li><a href="collection.html" title="Collection">Collection</a></li>
      <li><a href="shop.html" title="Shop">Shop</a></li>
      <li><a href="faq-policies.html" title="Frequently asked questions and policies">FAQ/Policies</a></li>
      <li><a href="contact.php" title="Contact">Contact</a></li>
    </ul>
    </li>
    </ul>
    <br class="clearboth"/>
  </div>
</header>

【讨论】:

以上是关于重叠粘性标题的问题(重叠其下方的主要内容)的主要内容,如果未能解决你的问题,请参考以下文章

页脚与内容重叠

如何在导航下方的响应式布局中显示 Div/ul/List 但与我的内容重叠?

UITableView 部分标题 1px 光泽/阴影重叠

我的导航栏没有与我的英雄部分重叠

引导程序中的静态水平导航栏与内容区域重叠

Xcode6:导航栏与文本字段重叠