Bootstrap 制作全高侧面导航

b09cbbtk  于 2022-12-16  发布在  Bootstrap
关注(0)|答案(5)|浏览(161)

我正在尝试在左侧放置一个导航栏,它看起来像this
为了做到这一点,我把所有的元素(html,body)100%,然后我这样组织它
超文本:

<div class="span2 leftmenu">
  <ul class="nav nav-tabs nav-stacked">
    <li><a href="#">Home</a></li>
    <li><a href="#">Profile</a></li>
    <li><a href="#">Messages</a></li>
    <li><a href="#">Home</a></li>
    <li><a href="#">Profile</a></li>
    <li><a href="#">Messages</a></li>
    <li class="ender"><a></a></li>
  </ul>
</div>

CSS:

.leftmenu {
  margin-left: 0px;
  height: 100%;
}

.nav-tabs.nav-stacked {
  border-bottom: 0;
  height: 100%;
}

.ender {
  height: 100%;
}

.ender a {
  height: 100%;
}

我遇到的问题是导航栏总是超过屏幕底部。我想尝试让它延伸到页面结束的地方。如果我100%这样做,它就会过去。即使我把它设置为大约60%,它也不会走到最后,它仍然会滚动过页面。有没有人做了一个很好的工作侧导航栏设置,工程与顶部导航栏以及或有没有人知道我可以做些什么来修复我有什么?

w1e3prcc

w1e3prcc1#

我认为你应该显示更多的html和css,这样我们才能更清楚地看到问题是什么。然而,高度100%并没有考虑到父元素的边框和填充。试着将这些元素归零,并将导航栏中的任何其他上升元素归零:

body {
    margin: 0; padding: 0; border: 0;
}

当然也有其他的方法,比如把你的主要内容和导航栏封装在一个 Package 器元素中--让 Package 器伸展到最大高度,给予导航栏一个透明的背景,这样 Package 器元素的背景就可以显示出来;或查找 * 伪列 *. alistapart

os8fio9y

os8fio9y2#

你应该删除.ender和.endar a的高度设置。它们会强制你的导航栏高度大于窗口高度。如果你需要.ender作为样式的原因(例如,它包含某种背景),那么我会把它绝对放置在导航栏中,而不是列表中。
因此,删除:

.ender {
height: 100%;
}

.ender a {
height: 100%;
}

我还将删除body标签上自动设置的边距。

代码如下:JSfiddle

34gzjxbg

34gzjxbg3#

您可能会发现这篇文章很有趣:
http://webdesign.about.com/od/csstutorials/f/set-css-height-100-percent.htm
要使div为100%,其父项的高度也需要为100%。
因此,其他的例子

html, body, span2 {
   height:100%;
}

是正确的。

2wnc66cl

2wnc66cl4#

如果没有更多的信息,很难准确地判断出问题是什么,但似乎可以从列出的所有元素(.leftmenu除外)中删除height:100%,将htmlbody添加100%,然后应用重置。
即:

* {
margin: 0;
padding:0;
}

html, body {
height: 100%;
}

.leftmenu {
height: 100%;
}
ctrmrzij

ctrmrzij5#

您要找的是这个吗?

html, body {
  margin:0;
  padding: 0;
  height: 100%;
  overflow: hidden;
}

.leftmenu {
  width: 40%;
  margin-left: 0px;
  height: 100%;
  background: #f9f9f9;
  float: left;
}

.nav-tabs.nav-stacked {
  border-bottom: 0;
  height: 100%;
}

.ender {
  height: 100%;
}

.ender a {
  height: 100%;
}

.right-side {
  float: left;
  height: 100%;
  width: 60%;
}
<div class="span2 leftmenu">
  <ul class="nav nav-tabs nav-stacked">
    <li><a href="#">Home</a></li>
    <li><a href="#">Profile</a></li>
    <li><a href="#">Messages</a></li>
    <li><a href="#">Home</a></li>
    <li><a href="#">Profile</a></li>
    <li><a href="#">Messages</a></li>
    <li class="ender"><a></a></li>
  </ul>
</div>
<div class="right-side">
  right content
</div>

相关问题