如何强制 div 始终可滚动?

Posted

技术标签:

【中文标题】如何强制 div 始终可滚动?【英文标题】:How to force a div to always be scrollable? 【发布时间】:2018-06-03 06:38:37 【问题描述】:

我正在使用Angular 4Bootstrap 4 (alpha 6)。我正在使用ngx-infinte-scroll,这样当用户滚动到 div 的顶部或底部时,我可以从服务器获取数据。问题是用户只有在有足够的项目时才能滚动。我想做到这一点,以便他们可以随时滚动。我怎样才能让它始终显示垂直滚动条?需要滚动的内容在item-scroller类中

<div class="col-md-9 chat-column">
  <div class="card h-100">
    <div class="card-block item-body">
      <h4 class="card-title center">Test</h4>
      <hr/>
      <div class="item-scroll"
           infinite-scroll
           [infiniteScrollDistance]="0.99"
           [infiniteScrollUpDistance]="0.075"
           [infiniteScrollThrottle]="10"
           [scrollWindow]="false"
           (scrolled)="onScrolledDown()"
           (scrolledUp)="onScrolledUp()"
      >
        <div *ngFor="let i of is">
          i
        <div class="answer left">
          <div class="avatar">
            <img [src]="i.imageURL" >
          </div>
          <div class="name">i.name</div>
          <div class="text">
            i.text
          </div>
          <div class="when">i.when</div>
        </div>
      </div>
    </div>
  </div>
</div>
</div>

css

.item-scroll 
  /*overflow: scroll;*/
  overflow-y: scroll;
  flex:none;


.item-body 
  font-family: "Raleway", sans-serif;

我尝试过的事情

1)

.item-scroll 
  height: 101%
  overflow-y: scroll;
  flex:none;


.item-body 
  font-family: "Raleway", sans-serif;

2)

.item-scroll 
  height: 101%;
  overflow-y: scroll;
  flex:none;


.item-body 
  height: 100%;
  font-family: "Raleway", sans-serif;

3)

.item-scroll 
  height: 100%;
  margin-bottom: 0 0 0 1px;
  overflow-y: scroll;
  flex:none;


.item-body 
  font-family: "Raleway", sans-serif;

【问题讨论】:

你有没有尝试在溢出中设置!important 【参考方案1】:

尝试以正确的顺序设置样式并使用100vh 而不是百分比值。这是一个例子:

.item-body 
    height: 100vh;
    padding: 0;


.item-scroll 
    display: block;
    height: 100%;
    width: 100%;

在我的项目中,我使用angular2-virtual-scroll 并具有类似的代码构造。

【讨论】:

以上是关于如何强制 div 始终可滚动?的主要内容,如果未能解决你的问题,请参考以下文章

滚动到底部(和强制回流性能问题)

如何强制显示垂直滚动条? [复制]

Android:强制 WebView 到某个高度(或触发 div 的滚动)

在 HTML 中的页面刷新时强制页面滚动位置到顶部

CSS:强制列始终具有全高[重复]

如何强制 div 位于视口的顶部/底部,同时不将其从文档流中取出?