首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当遇到浮动内容时,粘滞导航中断?

当遇到浮动内容时,粘滞导航中断?
EN

Stack Overflow用户
提问于 2019-04-21 14:28:21
回答 1查看 204关注 0票数 1

出于教学目的,我使用最基本的CSS。我有一个设置为position: sticky的导航栏,它工作得很好,直到它与页面下面的一组浮动列交互。

gif of site scrolling and breaking nav

我不确定是因为浮动,还是因为布局的简单性计算得不好。现在,2列布局由以下内容组成:

代码语言:javascript
复制
#main-menu {
  width: 100%;
  height: auto;
  text-align: right;
  position: sticky;
  position: -webkit-sticky;
  top: 0px;
  z-index: 2;
}
.column {
    width: 50%;
    float: left;
}

使用内联块显示可以工作,不会影响粘滞菜单,但正如预期的那样,我不能将它们设置为50%的宽度。一个修复将是很好的,但也可以解释为什么我会遇到这种情况。

谢谢!

代码语言:javascript
复制
#main-menu {
  width: 100%;
  height: auto;
  background-color: #222222;
  line-height: 2em;
  text-align: right;
  position: sticky;
  position: -webkit-sticky; /* Safari */
  top: 0px;
  z-index: 2;
}
.site-name {
  float: left;
  margin: auto 1em;
  padding: 0.5em 1em;
}
#main-menu a {
  color: #FFFFFF;
  text-decoration: none;
}
#main-menu .site-name a:hover {
  color: #00BBBB;
}
.menu-item {
  min-width: 2em;
  text-align: center;
  display: inline-block;
  padding: 0.5em 1em;
}
.menu-item:hover {
  background-color: #00BBBB;
}

#main {
  padding: 2em 4em;
  clear: both;
}
.column-lg {
  width: 50%;
  float: left;
  
}
代码语言:javascript
复制
<h1>Site Above Fold Content</h1>

<nav id="main-menu">
  <div class="site-name">
    <a href="#">Title</a>
  </div>
  <div class="menu-item">
    <a href="#">L1</a>
  </div>
  <div class="menu-item">
    <a href="#">L2</a>
  </div>
</nav>

<h2>Under Fold Content (Before Floated Columns)</h2>
<p>Gentrify woke irony +1 tote bag lo-fi drinking vinegar. Bushwick YOLO retro pinterest cloud bread skateboard. Small batch retro twee scenester roof party humblebrag celiac 8-bit direct trade franzen flannel cray. Kogi knausgaard godard selfies umami deep v, woke whatever 8-bit prism cred.</p>

<br><br>

<h3>BYE-BYE NAV!!</h3>

<div class="column-lg">
  <h2>Lorem Ipusm</h2>
  <div class="row">
    <h3>1 Title Impsum Amet</h3>
      <p>Lorem ipsum dolor amet bitters ethical microdosing, narwhal jean shorts venmo umami YOLO 90's trust fund activated charcoal lomo pok pok hammock. Man bun marfa blog narwhal letterpress food truck. Umami forage disrupt, snackwave DIY mlkshk aesthetic kogi bitters vice.</p>
  </div>
  
  <div class="row">
    <h3>2 Title Impsum Amet</h3>
    <p>2 Vegan williamsburg jianbing, gluten-free tote bag try-hard mixtape yuccie +1 everyday carry shabby chic umami vexillologist pop-up edison bulb. Whatever everyday carry listicle, coloring book hell of microdosing gastropub banh mi yuccie tumblr art party. Aesthetic hammock kitsch microdosing, viral biodiesel tumblr cliche beard readymade seitan. Copper mug chambray street art raclette shaman fam neutra.</p>
  </div>
</div>

<div class="column-lg">
  <h2>Lorem Ipusm</h2>
   <div class="row">
    <p>Gentrify woke irony +1 tote bag lo-fi drinking vinegar. Bushwick YOLO retro pinterest cloud bread skateboard. Small batch retro twee scenester roof party humblebrag celiac 8-bit direct trade franzen flannel cray. Kogi knausgaard godard selfies umami deep v, woke whatever 8-bit prism cred. Intelligentsia heirloom keytar, hot chicken synth tote bag vaporware williamsburg pok pok kickstarter 3 wolf moon selvage hoodie trust fund cronut. Occupy bicycle rights drinking vinegar small batch, vaporware taxidermy flannel live-edge marfa.</p>
  </div>
</div>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-21 15:49:23

浮动的元素不再处于DOM的正常流中,从而降低了主体的整体高度。使用检查器,您可以看到以下内容(蓝色表示身体的高度):

因此,当您遇到浮动时,相对于body的position: sticky将显示为滚动。

一个“修复”就是清除你的浮动。我将以下clearfix应用于正文:

代码语言:javascript
复制
body:after {
    content: "."; 
    display: block; 
    height: 0; 
    clear: both; 
    visibility: hidden;
}

以下是带有演示的snippet

代码语言:javascript
复制
body:after {
    content: "."; 
    display: block; 
    height: 0; 
    clear: both; 
    visibility: hidden;
}
#main-menu {
  width: 100%;
  height: auto;
  background-color: #222222;
  line-height: 2em;
  text-align: right;
  position: sticky;
  position: -webkit-sticky; /* Safari */
  top: 0px;
  z-index: 2;
}
.site-name {
  float: left;
  margin: auto 1em;
  padding: 0.5em 1em;
}
#main-menu a {
  color: #FFFFFF;
  text-decoration: none;
}
#main-menu .site-name a:hover {
  color: #00BBBB;
}
.menu-item {
  min-width: 2em;
  text-align: center;
  display: inline-block;
  padding: 0.5em 1em;
}
.menu-item:hover {
  background-color: #00BBBB;
}

#main {
  padding: 2em 4em;
  clear: both;
}
.column-lg {
  width: 50%;
  float: left;
}
代码语言:javascript
复制
<h1>Site Above Fold Content</h1>

<nav id="main-menu">
  <div class="site-name">
    <a href="#">Title</a>
  </div>
  <div class="menu-item">
    <a href="#">L1</a>
  </div>
  <div class="menu-item">
    <a href="#">L2</a>
  </div>
</nav>

<h2>Under Fold Content (Before Floated Columns)</h2>
<p>Gentrify woke irony +1 tote bag lo-fi drinking vinegar. Bushwick YOLO retro pinterest cloud bread skateboard. Small batch retro twee scenester roof party humblebrag celiac 8-bit direct trade franzen flannel cray. Kogi knausgaard godard selfies umami deep v, woke whatever 8-bit prism cred.</p>

<br><br>

<h3>BYE-BYE NAV!!</h3>

<div class="column-lg">
  <h2>Lorem Ipusm</h2>
  <div class="row">
    <h3>1 Title Impsum Amet</h3>
      <p>Lorem ipsum dolor amet bitters ethical microdosing, narwhal jean shorts venmo umami YOLO 90's trust fund activated charcoal lomo pok pok hammock. Man bun marfa blog narwhal letterpress food truck. Umami forage disrupt, snackwave DIY mlkshk aesthetic kogi bitters vice.</p>
  </div>
  
  <div class="row">
    <h3>2 Title Impsum Amet</h3>
    <p>2 Vegan williamsburg jianbing, gluten-free tote bag try-hard mixtape yuccie +1 everyday carry shabby chic umami vexillologist pop-up edison bulb. Whatever everyday carry listicle, coloring book hell of microdosing gastropub banh mi yuccie tumblr art party. Aesthetic hammock kitsch microdosing, viral biodiesel tumblr cliche beard readymade seitan. Copper mug chambray street art raclette shaman fam neutra.</p>
  </div>
</div>

<div class="column-lg">
  <h2>Lorem Ipusm</h2>
   <div class="row">
    <p>Gentrify woke irony +1 tote bag lo-fi drinking vinegar. Bushwick YOLO retro pinterest cloud bread skateboard. Small batch retro twee scenester roof party humblebrag celiac 8-bit direct trade franzen flannel cray. Kogi knausgaard godard selfies umami deep v, woke whatever 8-bit prism cred. Intelligentsia heirloom keytar, hot chicken synth tote bag vaporware williamsburg pok pok kickstarter 3 wolf moon selvage hoodie trust fund cronut. Occupy bicycle rights drinking vinegar small batch, vaporware taxidermy flannel live-edge marfa.</p>
  </div>
</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55780455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档