使一个 div 使用滚动条而不是变得更大

9 浏览
0 Comments

使一个 div 使用滚动条而不是变得更大

我有一个带有容器的导航栏。这个容器将来会包含许多div。它应该像树形视图一样工作。我希望导航栏从顶部到底部填满整个左侧。但是当内容变得更大时,它应该停止增长,出现滚动条。

使用height: 100%不起作用,因为目前我的导航栏是空的,所以滚动条很小。

这里我附上了两张图片,展示了我所需要的。我希望条形“navContent”填充直到达到底部的条形。

CurrentState

enter image description here

这里您可以看到一个完整的概述的工作示例,我希望黄色的条形增长到达底部。

* {
  margin: 0;
}
.bar {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: auto;
}
#navBar {
  height: 100%;
}
#btnBar {
  height: 40px;
}
#navContent {
background-color: yellow;
}
#wrapper {
  margin: 0;
}
#navBar {
  float: left;
  width: 30%;
  overflow: hidden;
}
#mainContainer {
  float: left;
  width: 70%;
  overflow: hidden;
}
#header {
  height: 50px;
  background-color: red;
}
#headerContent {
  height: 100%;
  width: 80%;
}
#headerTitle {
  margin: auto;
}
.headerBtn {
  margin: 0px 10px 0px 10px;
}
#footer {
  position: fixed;
  bottom: 0;
  height: 50px;
  width: 100%;
  background-color: red;
}
#footerContent {
  height: 100%;
}
.footerBtn {
  margin: 0px 20px 0px 20px;
}
#mainContainer {
  height: 100%;
  background-color: inherit;
}

      

Title navContent Content

0
0 Comments

问题:如何使一个div使用滚动条而不是变大?

原因:当一个div内部的元素超过了div的高度时,div会自动增大以适应内容的大小。但是如果想要固定div的高度,而在内容超出时使用滚动条来显示剩余内容,就需要解决这个问题。

解决方法:可以通过设置固定的height或者max-height来限制div的高度。在这两种情况下,如果元素的大小超过了定义的高度,滚动条会自动出现。如果希望滚动条始终可见(即使内容不是那么高),可以添加overflow-y: scroll属性。

以下是实现该效果的代码示例:

div {
  max-height: 200px; /*或者设置固定的height*/
  overflow-y: auto; /*或者设置overflow-y: scroll*/
}

通过设置max-height属性或者固定的height属性,可以限制div的高度。当内容超出定义的高度时,滚动条会自动出现,使得用户可以滚动查看剩余的内容。

0
0 Comments

问题的原因是,当内容超出父元素的高度时,父元素会自动增长以适应内容的大小,而不会显示滚动条。

要解决这个问题,可以使用CSS的overflow属性。将父元素的overflow-y属性设置为auto,这样当内容超出父元素的高度时,会显示垂直滚动条。而不会让父元素自动增长。

以下是解决问题的代码示例:


.navbar-content {
  height: 80%;
  width: 50%;
  background: #d9d9d9;
  overflow-y: auto;
}

通过将.navbar-content的overflow-y属性设置为auto,可以确保当内容超出父元素的高度时,会显示垂直滚动条。这样,无论内容有多长,父元素的高度都不会增长,而是通过滚动条来查看全部内容。

如果你想查看完整的示例代码,可以访问这里:https://codepen.io/anon/pen/JJRrjG

0
0 Comments

问题的原因:当一个div中的内容超过div的高度时,div会自动增长以适应内容的尺寸,而不会出现滚动条。

解决方法:使用CSS属性overflow-y: scroll;可以使div出现垂直滚动条,而不是自动增长。

0