简体   繁体   English

在Bootstrap中相对定位100%的高度div

[英]Make a relative positioned 100% height div in Bootstrap

I'm trying to make a sidebar on the left hand side of the page with the content to the right of it. 我正在尝试在页面的左侧制作一个侧边栏,其内容位于其右侧。 the problem I'm running into is that when I try to make the div 100% height, I have to set it to position: absolute; 我遇到的问题是,当我尝试使div的高度为100%时,我必须将其设置为position:absolute; which causes the content to overlap the sidebar. 这会使内容与边栏重叠。

Here is my HTML 这是我的HTML

<div class="row">
  <div class="sidebar col-sm-3">
    <ul>
      <li class="active">
        <h3><a href="">Link</a></h3>
      </li>
      <li class="">
        <h3><a href="">Link</a></h3>
      </li>
      <li class="">
        <h3><a href="">Link</a></h3>
      </li>
      <li class="active">
        <h3><a href="">Link</a></h3>
      </li>
    </ul>
  </div>
  <!-- sidebar -->
  <div class="sidebar-content col-sm-9">
    <ul>
      <li class="active">
        <h2 class="underline">Link</h2>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Rerum nostrum assumenda sequi praesentium aperiam. Accusamus omnis velit quos sint quas corporis inventore, facilis laborum pariatur explicabo maxime voluptas at aliquid!</p>
      </li>
      <li class="">
        <h2 class="underline">Link</h2>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Rerum nostrum assumenda sequi praesentium aperiam. Accusamus omnis velit quos sint quas corporis inventore, facilis laborum pariatur explicabo maxime voluptas at aliquid!</p>
      </li>
      <li class="">
        <h2 class="underline">Link</h2>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Rerum nostrum assumenda sequi praesentium aperiam. Accusamus omnis velit quos sint quas corporis inventore, facilis laborum pariatur explicabo maxime voluptas at aliquid!</p>
      </li>
      <li class="">
        <h2 class="underline">Link</h2>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Rerum nostrum assumenda sequi praesentium aperiam. Accusamus omnis velit quos sint quas corporis inventore, facilis laborum pariatur explicabo maxime voluptas at aliquid!</p>
      </li>
    </ul>
  </div>
  <!-- sidebar-content -->
</div>
<!-- row -->

And my CSS 还有我的CSS

.sidebar {
background: #eee;
height: 100%;
padding-top: 100px !important;
}

.sidebar-content ul li {
display: none;
}

.sidebar-content ul li.active {
display: block;
}

.sidebar-content {
position: relative;
right: 0;
padding: 100px;
}

Can anybody tell me how to make the div relative and 100% height or a better way to go about creating a sidebar? 谁能告诉我如何使div相对且高度为100%,或者是创建侧边栏的更好方法?

Fiddle: https://jsfiddle.net/3Lapzoyf/3/ 小提琴: https : //jsfiddle.net/3Lapzoyf/3/

Solution: 解:

Add a height of 100vh (which is a length unit representing 1% of the viewport height). 添加一个100vhheight (这是代表视口高度的1%的长度单位)。 This will result in a sidebar that has a height of 100% of the viewport height. 这将导致边栏的height为视口高度的100% Also make sure you have your row(s) inside a .container or .container-fluid when you are using Twitter Bootstrap (if you didn't do that already). 另外,使用Twitter Bootstrap时,请确保将行放在.container.container-fluid (如果尚未这样做的话)。

HTML: HTML:

<div class="container-fluid">
    <div class="row">
      <div class="sidebar col-sm-3">
        <ul>
          <li class="active">
            <h3><a href="">Link</a></h3>
          </li>
          <li class="">
            <h3><a href="">Link</a></h3>
          </li>
          <li class="">
            <h3><a href="">Link</a></h3>
          </li>
          <li class="active">
            <h3><a href="">Link</a></h3>
          </li>
        </ul>
      </div><!-- sidebar -->
      <div class="sidebar-content col-sm-9">
        <ul>
          <li class="active">
            <h2 class="underline">Link</h2>
            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Rerum nostrum assumenda sequi praesentium aperiam. Accusamus omnis velit quos sint quas corporis inventore, facilis laborum pariatur explicabo maxime voluptas at aliquid!</p>
          </li>
          <li class="">
            <h2 class="underline">Link</h2>
            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Rerum nostrum assumenda sequi praesentium aperiam. Accusamus omnis velit quos sint quas corporis inventore, facilis laborum pariatur explicabo maxime voluptas at aliquid!</p>
          </li>
          <li class="">
            <h2 class="underline">Link</h2>
            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Rerum nostrum assumenda sequi praesentium aperiam. Accusamus omnis velit quos sint quas corporis inventore, facilis laborum pariatur explicabo maxime voluptas at aliquid!</p>
          </li>
          <li class="">
            <h2 class="underline">Link</h2>
            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Rerum nostrum assumenda sequi praesentium aperiam. Accusamus omnis velit quos sint quas corporis inventore, facilis laborum pariatur explicabo maxime voluptas at aliquid!</p>
          </li>
        </ul>
      </div><!-- sidebar-content -->
  </div><!-- row -->
</div>

CSS: CSS:

.sidebar {
  background: #eee;
  height: 100vh;
  padding-top: 100px;  
}

.sidebar-content ul li {
  display: none;
}

.sidebar-content ul li.active {
  display: block;
}

.sidebar-content {
  padding: 100px;
  position: relative;
  right: 0;
}

Fiddle: https://jsfiddle.net/3Lapzoyf/4/ 小提琴: https : //jsfiddle.net/3Lapzoyf/4/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM