【问题标题】:Why isn't position: sticky affecting my navbar?为什么 position:sticky 不影响我的导航栏?
【发布时间】:2020-01-28 17:17:04
【问题描述】:

父元素没有溢出属性。父元素具有设定的高度。无论我尝试什么,导航栏都不会发粘。它也不适用于 JavaScript。我肯定错过了什么。下面是代码。有人请告诉我我做错了什么:

/* Body */
body{
	margin: 0;
	position: relative;
	height: 100%;
}
/* Header */
.header{
	font-family: sans-serif;
	font-weight: 900;
	background-color: #04042b;
	color: #de215a;
	text-align: center;
	font-size: 200%;
	width: 100%;
}
.header h1{
    margin: 0;
	line-height: 1;
	padding-top: 4%;
	padding-bottom: 4%;
}
/* Navigation Bar */
.navbar{
	background-color: #000005;
	position: sticky;
	top: 0;
	overflow: hidden;
}
.navbar a{
	float: left;
    color: #FFFFE0;
    text-align: center;
    text-decoration: none;
	font-size: 130%;
	padding: 2%;
}
.navbar a:hover{
	background-color:#E6E6FA ;
    color: black;
}
.navbar a.active{
	background-color: #4682B4;
    color: white;
}
article img{
	height: 100%
}
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
	<meta http-equiv="refresh" content="30">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Stuff</title>
	<link rel="stylesheet" type="text/css" href="Mainsheet.css">
	<script src="Mainscript.js"type="application/javascript" ></script>
  </head>
  <body>
    <header>
	  <div class="header">
	    <h1>Stuff</h1>
	  </div>
	</header>
	<nav>
	  <div class="navbar">
	    <a class="active" href="">Home</a>
	    <a href="">Projects</a>
	    <a href="">News</a>  
		<a href="">About</a>
	    <a href="">Forum</a>
        <a href="">Contact</a>
	    <a href="">Funding&FAQ </a>
	  </div>
	</nav>
	<article>
	  <h3>Sticky Navigation Example</h3>
        <p>The navbar will stick to the top when you reach its scroll 
        position.</p>
        <p>Some text to enable scrolling.. Lorem ipsum dolor sit amet, illum 
        definitiones no quo, maluisset concludaturque et eum, altera fabulas 
        ut quo. Atqui causae gloriatur ius te, id agam omnis evertitur eum. 
        Affert laboramus repudiandae nec et. Inciderint efficiantur his ad. 
        Eum no molestiae voluptatibus.</p>
        <p>Some text to enable scrolling.. Lorem ipsum dolor sit amet, illum 
        definitiones no quo, maluisset concludaturque et eum, altera fabulas 
        ut quo. Atqui causae gloriatur ius te, id agam omnis evertitur eum. 
        Affert laboramus repudiandae nec et. Inciderint efficiantur his ad. 
        Eum no molestiae voluptatibus.</p>
        <p>Some text to enable scrolling.. Lorem ipsum dolor sit amet, illum 
        definitiones no quo, maluisset concludaturque et eum, altera fabulas 
        ut quo. Atqui causae gloriatur ius te, id agam omnis evertitur eum. 
        Affert laboramus repudiandae nec et. Inciderint efficiantur his ad. 
        Eum no molestiae voluptatibus.</p>
        <p>Some text to enable scrolling.. Lorem ipsum dolor sit amet, illum 
        definitiones no quo, maluisset concludaturque et eum, altera fabulas 
        ut quo. Atqui causae gloriatur ius te, id agam omnis evertitur eum. 
        Affert laboramus repudiandae nec et. Inciderint efficiantur his ad. 
        Eum no molestiae voluptatibus.</p>
        <p>Some text to enable scrolling.. Lorem ipsum dolor sit amet, illum 
        definitiones no quo, maluisset concludaturque et eum, altera 
        fabulas ut quo. Atqui causae gloriatur ius te, id agam omnis 
        evertitur eum. Affert laboramus repudiandae nec et. Inciderint 
        efficiantur his ad. Eum no molestiae voluptatibus.</p>
        <p>Some text to enable scrolling.. Lorem ipsum dolor sit amet, illum 
        definitiones no quo, maluisset concludaturque et eum, altera fabulas 
        ut quo. Atqui causae gloriatur ius te, id agam omnis evertitur eum. 
        Affert laboramus repudiandae nec et. Inciderint efficiantur his ad. 
        Eum no molestiae voluptatibus.</p>
        <p>Some text to enable scrolling.. Lorem ipsum dolor sit amet, illum 
        definitiones no quo, maluisset concludaturque et eum, altera fabulas 
        ut quo. Atqui causae gloriatur ius te, id agam omnis evertitur eum. 
        Affert laboramus repudiandae nec et. Inciderint efficiantur his ad. 
        Eum no molestiae voluptatibus.</p>
	</article>
  </body>
</html>

【问题讨论】:

    标签: javascript html css css-position sticky


    【解决方案1】:

    尝试将 .navbar 的样式移动到父级 nav 根级元素(这样它就粘在父级 body 上)。

    nav {
        background-color: #000005;
        position: sticky;
        top: 0;
        overflow: hidden;
    }
    

    /* Body */
    body{
    	margin: 0;
    	position: relative;
    	height: 100%;
    }
    /* Header */
    .header{
    	font-family: sans-serif;
    	font-weight: 900;
    	background-color: #04042b;
    	color: #de215a;
    	text-align: center;
    	font-size: 200%;
    	width: 100%;
    }
    .header h1{
        margin: 0;
    	line-height: 1;
    	padding-top: 4%;
    	padding-bottom: 4%;
    }
    /* Navigation Bar */
    nav{
    	background-color: #000005;
    	position: sticky;
    	top: 0;
    	overflow: hidden;
    }
    .navbar a{
    	float: left;
        color: #FFFFE0;
        text-align: center;
        text-decoration: none;
    	font-size: 130%;
    	padding: 2%;
    }
    .navbar a:hover{
    	background-color:#E6E6FA ;
        color: black;
    }
    .navbar a.active{
    	background-color: #4682B4;
        color: white;
    }
    article img{
    	height: 100%
    }
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="UTF-8">
    	<meta http-equiv="refresh" content="30">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>Stuff</title>
    	<link rel="stylesheet" type="text/css" href="Mainsheet.css">
    	<script src="Mainscript.js"type="application/javascript" ></script>
      </head>
      <body>
        <header>
    	  <div class="header">
    	    <h1>Stuff</h1>
    	  </div>
    	</header>
    	<nav>
    	  <div class="navbar">
    	    <a class="active" href="">Home</a>
    	    <a href="">Projects</a>
    	    <a href="">News</a>  
    		<a href="">About</a>
    	    <a href="">Forum</a>
            <a href="">Contact</a>
    	    <a href="">Funding&FAQ </a>
    	  </div>
    	</nav>
    	<article>
    	  <h3>Sticky Navigation Example</h3>
            <p>The navbar will stick to the top when you reach its scroll 
            position.</p>
            <p>Some text to enable scrolling.. Lorem ipsum dolor sit amet, illum 
            definitiones no quo, maluisset concludaturque et eum, altera fabulas 
            ut quo. Atqui causae gloriatur ius te, id agam omnis evertitur eum. 
            Affert laboramus repudiandae nec et. Inciderint efficiantur his ad. 
            Eum no molestiae voluptatibus.</p>
            <p>Some text to enable scrolling.. Lorem ipsum dolor sit amet, illum 
            definitiones no quo, maluisset concludaturque et eum, altera fabulas 
            ut quo. Atqui causae gloriatur ius te, id agam omnis evertitur eum. 
            Affert laboramus repudiandae nec et. Inciderint efficiantur his ad. 
            Eum no molestiae voluptatibus.</p>
            <p>Some text to enable scrolling.. Lorem ipsum dolor sit amet, illum 
            definitiones no quo, maluisset concludaturque et eum, altera fabulas 
            ut quo. Atqui causae gloriatur ius te, id agam omnis evertitur eum. 
            Affert laboramus repudiandae nec et. Inciderint efficiantur his ad. 
            Eum no molestiae voluptatibus.</p>
            <p>Some text to enable scrolling.. Lorem ipsum dolor sit amet, illum 
            definitiones no quo, maluisset concludaturque et eum, altera fabulas 
            ut quo. Atqui causae gloriatur ius te, id agam omnis evertitur eum. 
            Affert laboramus repudiandae nec et. Inciderint efficiantur his ad. 
            Eum no molestiae voluptatibus.</p>
            <p>Some text to enable scrolling.. Lorem ipsum dolor sit amet, illum 
            definitiones no quo, maluisset concludaturque et eum, altera 
            fabulas ut quo. Atqui causae gloriatur ius te, id agam omnis 
            evertitur eum. Affert laboramus repudiandae nec et. Inciderint 
            efficiantur his ad. Eum no molestiae voluptatibus.</p>
            <p>Some text to enable scrolling.. Lorem ipsum dolor sit amet, illum 
            definitiones no quo, maluisset concludaturque et eum, altera fabulas 
            ut quo. Atqui causae gloriatur ius te, id agam omnis evertitur eum. 
            Affert laboramus repudiandae nec et. Inciderint efficiantur his ad. 
            Eum no molestiae voluptatibus.</p>
            <p>Some text to enable scrolling.. Lorem ipsum dolor sit amet, illum 
            definitiones no quo, maluisset concludaturque et eum, altera fabulas 
            ut quo. Atqui causae gloriatur ius te, id agam omnis evertitur eum. 
            Affert laboramus repudiandae nec et. Inciderint efficiantur his ad. 
            Eum no molestiae voluptatibus.</p>
    	</article>
      </body>
    </html>

    【讨论】:

    • 也感谢您的回答。我是网络开发的初学者。你为我节省了很多时间(我已经花了一些时间)。
    【解决方案2】:

    位置sticky 取决于父容器。将nav 移动到您的navbar 中。

    <body>
      <header>
        <div class="header">
          <h1>Stuff</h1>
        </div>
      </header>
      <div class="navbar">
        <nav>
          <a class="active" href="">Home</a>
          <a href="">Projects</a>
        </nav>
      </div>
    ...
    

    【讨论】:

    • 最后。非常感谢。我没有看到它是无法想象的愚蠢。我一直在为粘性导航栏运行不同的版本,但无济于事。你又为我节省了几个小时的无用努力。
    【解决方案3】:

    如果我理解得很好,当您滚动时,您需要标题并保持在顶部。 您应该添加到.header 位置固定和.navbar 位置:固定; 顶部:160 像素;。最后到article,你应该添加来自.header.navbar的高度摘要。在你的情况下是 232px。

    /* Header */
    .header{
        font-family: sans-serif;
        font-weight: 900;
        background-color: #04042b;
        color: #de215a;
        text-align: center;
        font-size: 200%;
        width: 100%;
      position:fixed;
      top:0;
    }
    
    /* Navigation Bar */
    .navbar{
        background-color: #000005;
        position: fixed;
        top: 160px;
        overflow: hidden;
       width:100%;
    }
    article {
      padding-top:232px;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      • 1970-01-01
      • 1970-01-01
      • 2015-09-27
      • 1970-01-01
      相关资源
      最近更新 更多