页面底部的水平滚动导航栏

3
我试图在页面底部制作一个带有水平滚动条的导航栏,但当我添加 position:fixed; 属性时,导航栏变得无法滚动。

div.scrollmenu {
  background-color: #333;
  overflow: auto;
  white-space: nowrap;
}

div.scrollmenu a {
  display: inline-block;
  color: white;
  text-align: center;
  padding: 14px;
  text-decoration: none;
}

div.scrollmenu a:hover {
  background-color: #777;
}
<div class="scrollmenu">
  <a href="#home">Home</a>
  <a href="#news">News</a>
  <a href="#contact">Contact</a>
  <a href="#about">About</a>
  <a href="#support">Support</a>
  <a href="#blog">Blog</a>
  <a href="#tools">Tools</a>  
  <a href="#base">Base</a>
  <a href="#custom">Custom</a>
  <a href="#more">More</a>
  <a href="#logo">Logo</a>
  <a href="#friends">Friends</a>
  <a href="#partners">Partners</a>
  <a href="#people">People</a>
  <a href="#work">Work</a>
</div>

<h2>Horizontal Scrollable Menu</h2>

这是代码演示页面: https://jsfiddle.net/J1aaa/rco4kz70/3/


1
你能具体说明你想要什么吗?菜单位置是固定的吗? - Mesut Bla
1
我希望菜单位于页面底部,并且可以水平滚动。 - Jiaa
2个回答

4

你需要做的只是给元素设置宽度("width")和overflow-x属性为滚动("scroll")的形状。

div.scrollmenu width: 100%; and overflow-x: auto; 

div.scrollmenu {
    width: 100%;
    background-color: #333;
    overflow-x: auto;
    white-space: nowrap;
    position: fixed;
    bottom: 0;
    display: block;
}

div.scrollmenu a {
  display: inline-block;
  color: white;
  text-align: center;
  padding: 14px;
  text-decoration: none;
}

div.scrollmenu a:hover {
  background-color: #777;
}
<div class="scrollmenu">
  <a href="#home">Home</a>
  <a href="#news">News</a>
  <a href="#contact">Contact</a>
  <a href="#about">About</a>
  <a href="#support">Support</a>
  <a href="#blog">Blog</a>
  <a href="#tools">Tools</a>  
  <a href="#base">Base</a>
  <a href="#custom">Custom</a>
  <a href="#more">More</a>
  <a href="#logo">Logo</a>
  <a href="#friends">Friends</a>
  <a href="#partners">Partners</a>
  <a href="#people">People</a>
  <a href="#work">Work</a>
</div>

<h2>Horizontal Scrollable Menu</h2>


谢谢,它可以工作了,但是你需要加上 left: 0;right: 0; 才能使它完美地在底部。 - Jiaa
我刚刚尝试解决了你的问题。当然,左右两边必须为0。 - Kaan Demir

2
你可以使用一个包装div来包裹你的元素,这就是它被固定在底部并横跨整个视口的方式。这样,固定的不是溢出的元素,而是包装的div,现有的结构将按预期水平溢出。

.scroll-menu-wrapper {
  position: fixed;
  bottom: 0;
  left: 0; 
  right: 0;
}

.scrollmenu {
  background-color: #333;
  overflow: auto;
  white-space: nowrap;
}

div.scrollmenu a {
  display: inline-block;
  color: white;
  text-align: center;
  padding: 14px;
  text-decoration: none;
}

div.scrollmenu a:hover {
  background-color: #777;
}
<div class="scroll-menu-wrapper">
  <div class="scrollmenu">
    <a href="#home">Home</a>
    <a href="#news">News</a>
    <a href="#contact">Contact</a>
    <a href="#about">About</a>
    <a href="#support">Support</a>
    <a href="#blog">Blog</a>
    <a href="#tools">Tools</a>  
    <a href="#base">Base</a>
    <a href="#custom">Custom</a>
    <a href="#more">More</a>
    <a href="#logo">Logo</a>
    <a href="#friends">Friends</a>
    <a href="#partners">Partners</a>
    <a href="#people">People</a>
    <a href="#work">Work</a>
  </div>
</div>

<h2>Horizontal Scrollable Menu</h2>


谢谢你尝试帮助我,它完美地工作了。 - Jiaa
不客气 - 很高兴能帮到你 - 祝你编码愉快 :) - gavgrif

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接