侧边栏背景没有完全到底部

sidebar background is not going full to the bottom

我做了一个侧边栏,当我需要向下滚动时(我只是在 html 上放了一些“< br >”来测试滚动)侧边栏在某个时候结束,我希望能够查看背景直到页面底部

我该怎么做? 这是一个快速的 gif 也可以看到发生了什么:https://i.gyazo.com/f08b7fbf0592a89bc08da7e2625a86f1.mp4

这是CSS

.sidebar {
    position: absolute;
    background: #232428;
    min-height: calc(100vh - 59px);
    width: 220px;
}

.sidebar ul {
    list-style-type: none;
}

.sidebar li {
    font-size: 16.5px;
    padding-left: 20px;
    padding-bottom: 15px;
}

span {
    font-size: 15px;
    padding: 2px 6px;
    float: right;
    margin-right: 4px;
}

.sidebar .title_elements {
    padding-top: 15px;
    padding-bottom: 10px;
    font-family: 'Rubik';
}

.sidebar li a {
    padding-top: 10px;
    color: #B8B7B7;
    text-decoration: none;
    font-weight: 550;
}

.sidebar .header_buttons button {
    float: left;
    font-size: 12px;
    padding: 5px 10px;
    margin-right: 5px;
    padding-bottom: 5px;
    color: #B7B7B7;
    background-color: #393B41;
    -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
    border: none;
    border-radius: 5px;
}

.sidebar .header_buttons {
    padding-top: 15px;
    padding-bottom: 25px;
    
}

.sidebar li i {
    padding-right: 10px;
    padding-top: 2.5px;
}

和HTML:

<div class="sidebar">
            <ul>
                <li class="header_buttons">
                    <button>Login</button>
                    <button>Registration</button>
                </li>
                <li class="title_elements">MAIN MENU</li>
                <div class="elements">
                    <li><a href="#"><i class="fa fa-cloud"></i>The latest releases</a></li>
                    <li><a href="#"><i class="fa fa-clock-o"></i>The last episodes</a></li>
                    <li><a href="#"><i class="fa fa-star"></i>Top viewed</a></li>
                    <li><a href="#"><i class="fa fa-heart"></i>Top voted</a></li>
                </div>
                <li class="title_elements">GENRES</li>
                <div class="elements">
                    <li><a href="#"><i class="fa fa-caret-square-o-right"></i>Actiune <span class="count">132</span></a></li>
                    <li><a href="#"><i class="fa fa-caret-square-o-right"></i>Comedy <span class="count">52</span></a></li>
                    <li><a href="#"><i class="fa fa-caret-square-o-right"></i>Crime <span class="count">15</span></a></li>
                    <li><a href="#"><i class="fa fa-caret-square-o-right"></i>SF <span class="count">75</span></a></li>
                    <li><a href="#"><i class="fa fa-caret-square-o-right"></i>Documentary <span class="count">2</span></a></li>
                    <li><a href="#"><i class="fa fa-caret-square-o-right"></i>Family <span class="count">30</span></a></li>
                    <li><a href="#"><i class="fa fa-caret-square-o-right"></i>Drama <span class="count">88</span></a></li>
                    <li><a href="#"><i class="fa fa-caret-square-o-right"></i>Fantasy <span class="count">10</span></a></li>
                    <li><a href="#"><i class="fa fa-caret-square-o-right"></i>History <span class="count">251</span></a></li>
                </div>
            </ul>
        </div>

无论出于何种原因,您都将侧边栏高度降低了 59 像素。删除了 59px min-height: calc(100vh - 59px);,现在侧边栏达到了视口的整个高度。

.sidebar {
    position: absolute;
    background: #232428;
    min-height: calc(100vh); /*removed  - 59px*/
    width: 220px;
}

.sidebar ul {
    list-style-type: none;
}

.sidebar li {
    font-size: 16.5px;
    padding-left: 20px;
    padding-bottom: 15px;
}

span {
    font-size: 15px;
    padding: 2px 6px;
    float: right;
    margin-right: 4px;
}

.sidebar .title_elements {
    padding-top: 15px;
    padding-bottom: 10px;
    font-family: 'Rubik';
}

.sidebar li a {
    padding-top: 10px;
    color: #B8B7B7;
    text-decoration: none;
    font-weight: 550;
}

.sidebar .header_buttons button {
    float: left;
    font-size: 12px;
    padding: 5px 10px;
    margin-right: 5px;
    padding-bottom: 5px;
    color: #B7B7B7;
    background-color: #393B41;
    -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
    border: none;
    border-radius: 5px;
}

.sidebar .header_buttons {
    padding-top: 15px;
    padding-bottom: 25px;
    
}

.sidebar li i {
    padding-right: 10px;
    padding-top: 2.5px;
}

高度是无限的,元素不会无限扩展来填充它,这没有多大意义,高度仅由内容定义,如果您希望元素始终与您的内容一样高页面,你必须让他们共享一个父级,在这种情况下它是正文。

正文的高度将扩展以适合其内容,然后我们将其高度分配给侧边栏,因此它始终与文档一样高。

侧面是绝对定位的,因此我们必须相对于主体进行定位才能匹配它的高度

body {
    position:relative;
}

.sidebar {
      /* ... */
      height: 100%;
}

body {
  margin: 0;
  position: relative;
}

.sidebar {
  position: absolute;
  background: #232428;
  min-height: calc(100vh - 59px);
  width: 220px;
  height: 100%; /* NEW */
}

.sidebar ul {
  list-style-type: none;
}

.sidebar li {
  font-size: 16.5px;
  padding-left: 20px;
  padding-bottom: 15px;
}

span {
  font-size: 15px;
  padding: 2px 6px;
  float: right;
  margin-right: 4px;
}

.sidebar .title_elements {
  padding-top: 15px;
  padding-bottom: 10px;
  font-family: 'Rubik';
}

.sidebar li a {
  padding-top: 10px;
  color: #B8B7B7;
  text-decoration: none;
  font-weight: 550;
}

.sidebar .header_buttons button {
  float: left;
  font-size: 12px;
  padding: 5px 10px;
  margin-right: 5px;
  padding-bottom: 5px;
  color: #B7B7B7;
  background-color: #393B41;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border: none;
  border-radius: 5px;
}

.sidebar .header_buttons {
  padding-top: 15px;
  padding-bottom: 25px;
}

.sidebar li i {
  padding-right: 10px;
  padding-top: 2.5px;
}

[long] {
  height: 6000px;
}
<div class="sidebar">
  <ul>
    <li class="header_buttons">
      <button>Login</button>
      <button>Registration</button>
    </li>
    <li class="title_elements">MAIN MENU</li>
    <div class="elements">
      <li><a href="#"><i class="fa fa-cloud"></i>The latest releases</a></li>
      <li><a href="#"><i class="fa fa-clock-o"></i>The last episodes</a></li>
      <li><a href="#"><i class="fa fa-star"></i>Top viewed</a></li>
      <li><a href="#"><i class="fa fa-heart"></i>Top voted</a></li>
    </div>
    <li class="title_elements">GENRES</li>
    <div class="elements">
      <li><a href="#"><i class="fa fa-caret-square-o-right"></i>Actiune <span class="count">132</span></a></li>
      <li><a href="#"><i class="fa fa-caret-square-o-right"></i>Comedy <span class="count">52</span></a></li>
      <li><a href="#"><i class="fa fa-caret-square-o-right"></i>Crime <span class="count">15</span></a></li>
      <li><a href="#"><i class="fa fa-caret-square-o-right"></i>SF <span class="count">75</span></a></li>
      <li><a href="#"><i class="fa fa-caret-square-o-right"></i>Documentary <span class="count">2</span></a></li>
      <li><a href="#"><i class="fa fa-caret-square-o-right"></i>Family <span class="count">30</span></a></li>
      <li><a href="#"><i class="fa fa-caret-square-o-right"></i>Drama <span class="count">88</span></a></li>
      <li><a href="#"><i class="fa fa-caret-square-o-right"></i>Fantasy <span class="count">10</span></a></li>
      <li><a href="#"><i class="fa fa-caret-square-o-right"></i>History <span class="count">251</span></a></li>
    </div>
  </ul>
</div>
<div long></div>