html css代码将导航栏位置固定在顶部

时间:2014-10-14 15:07:27

标签: html css

下面是我的菜单栏完整代码。 我需要在用户滚动时将菜单位置固定在顶部...

现在菜单位于标题下方...但是当用户滚动网页时我需要将其固定到顶部位置。

plz建议我在css中改变什么..

我尝试将位置:固定;

但这消失了完整的菜单

    #cssmenu,
#cssmenu ul,
#cssmenu ul li,
#cssmenu ul li a,
#cssmenu #menu-button {
  margin: 0;
  padding: 0;
  border: 0;
  list-style: none;
  line-height: 1;
  display: block;
  position: relative;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  z-index:100;
}

#cssmenu #menu-button {
  display: none;

  
}
#cssmenu {
  font-family: Montserrat, sans-serif;
  background: #004D95;
     
}

@media all and (max-width: 768px), only screen and (-webkit-min-device-pixel-ratio: 2) and (max-width: 1024px), only screen and (min--moz-device-pixel-ratio: 2) and (max-width: 1024px), only screen and (-o-min-device-pixel-ratio: 2/1) and (max-width: 1024px), only screen and (min-device-pixel-ratio: 2) and (max-width: 1024px), only screen and (min-resolution: 192dpi) and (max-width: 1024px), only screen and (min-resolution: 2dppx) and (max-width: 1024px) {
  #cssmenu {
    width: 100%;
	position:fixed;
  }
 #cssmenu #menu-button {
    display: block;
    padding: 17px;
    color: #fff;
    cursor: pointer;
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 700;
  }
  #cssmenu #menu-button:after {
    position: absolute;
    top: 22px;
    right: 17px;
    display: block;
    height: 4px;
    width: 20px;
    border-top: 2px solid #fff;
    border-bottom: 2px solid #fff;
    content: '';
  }
  #cssmenu #menu-button:before {
    position: absolute;
    top: 16px;
    right: 17px;
    display: block;
    height: 2px;
    width: 20px;
    background: #fff;
    content: '';
  }
  #cssmenu #menu-button.menu-opened:after {
    top: 23px;
    border: 0;
    height: 2px;
    width: 15px;
    background: #ffffff;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    -o-transform: rotate(45deg);
    transform: rotate(45deg);
  }
  #cssmenu #menu-button.menu-opened:before {
    top: 23px;
    background: #ffffff;
    width: 15px;
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
    transform: rotate(-45deg);
  }
  #cssmenu .submenu-button {
    position: absolute;
    z-index: 99;
    right: 0;
    top: 0;
    display: block;
    border-left: 1px solid rgba(120, 120, 120, 0.2);
    height: 46px;
    width: 46px;
    cursor: pointer;
  }
  #cssmenu .submenu-button.submenu-opened {
    background: #262626;
  }
  #cssmenu ul ul .submenu-button {
    height: 34px;
    width: 34px;
  }
  #cssmenu .submenu-button:after {
    position: absolute;
    top: 22px;
    right: 19px;
    width: 8px;
    height: 2px;
    display: block;
    background: #fff;
    content: '';
  }
  #cssmenu ul ul .submenu-button:after {
    top: 15px;
    right: 13px;
  }
  #cssmenu .submenu-button.submenu-opened:after {
    background: #ffffff;
  }
  #cssmenu .submenu-button:before {
    position: absolute;
    top: 19px;
    right: 22px;
    display: block;
    width: 2px;
    height: 8px;
    background: #fff;
    content: '';
  }
  #cssmenu ul ul .submenu-button:before {
    top: 12px;
    right: 16px;
  }
  #cssmenu .submenu-button.submenu-opened:before {
    display: none;
  }
}
<div id='cssmenu'>
  <ul>
    <li><a href='#'>Home</a>
    </li>
    <li class='active'><a href='#'>Products</a>
      <ul>
        <li><a href='#'>Product 1</a>
          <ul>
            <li><a href='#'>Sub Product</a>
            </li>
            <li><a href='#'>Sub Product</a>
            </li>
          </ul>
        </li>
        <li><a href='#'>Product 2</a>
          <ul>
            <li><a href='#'>Sub Product</a>
            </li>
            <li><a href='#'>Sub Product</a>
            </li>
          </ul>
        </li>

      </ul>
    </li>
    <li><a href='#'>About</a>
    </li>
    <li><a href='#'>Contact</a>
    </li>

  </ul>
</div>

3 个答案:

答案 0 :(得分:1)

只需在position:fixed上添加#cssmenu并在body标记上填充即可。试试这个:

body {
    background:#eee;
    margin:0;padding:0;
    padding-top:46px;   /*Padding equal to the height of the menu*/
}
#cssmenu {
    position:fixed;
    width:100%;
    top:0;
}

选中此Demo Fiddle

答案 1 :(得分:0)

使用以下内容更改您的#cssmenu部分:

#cssmenu {
  font-family: Montserrat, sans-serif;
  background: #004D95;
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
}

答案 2 :(得分:0)

这是一个演示小提琴,http://jsfiddle.net/985rv6c0/1/。这是你在找什么?代码更清晰,更简单。我没有在示例中设置内部子菜单的样式,但是你可以这样做但是你想要自己我确定。

HTML

<div id="menubar">
<ul id='menu'>
   <li><a href='#'>Home</a></li>
   <li class='active'><a href='#'>Products</a>
      <ul class="sub-menu">
         <li><a href='#'>Product 1</a>
            <ul class="sub-menu2">
               <li><a href='#'>Sub Product</a></li>
               <li><a href='#'>Sub Product</a></li>
            </ul>
         </li>
         <li><a href='#'>Product 2</a>
            <ul class="sub-menu2">
               <li><a href='#'>Sub Product</a></li>
               <li><a href='#'>Sub Product</a></li>
            </ul>
         </li>

  </ul>
   </li>
   <li><a href='#'>About</a></li>
   <li><a href='#'>Contact</a></li>

</ul>
</div>
<div id="content">
    <h2>blah blah ba;lh </h2>
    <h2>blah blah ba;lh </h2>
    <h2>blah blah ba;lh </h2>
    <h2>blah blah ba;lh </h2>
    <h2>blah blah ba;lh </h2>
</div>

... CSS

#content{
position:absolute;
top:0;
left:0;
width:100%;
min-height:800px;
background-color:#cacaca;
}
#menubar{
    position:fixed;
    top:0;
    left:0;
    z-index:100;
}
ul#menu, ul#menu ul.sub-menu {
    padding:0;
    margin: 0;
}
ul#menu li, ul#menu ul.sub-menu li {
    list-style-type: none;
    display: inline-block;
}
/*Link Appearance*/
ul#menu li a, ul#menu li ul.sub-menu li a {
    text-decoration: none;
    color: #fff;
    background: #666;
    padding: 5px;
    display:inline-block;
}
/*Make the parent of sub-menu relative*/
ul#menu li {
    position: relative;
}
/*sub menu*/
ul#menu li ul.sub-menu {
    display:none;
    position: absolute;
    top: 30px;
    left: 0;
    width: 100px;
}
ul#menu li:hover ul.sub-menu {
    display:block;
}

以上代码来自http://code-tricks.com/simple-css-drop-down-menu/

希望这会有所帮助