提问者:小点点

Webkit滚动条-隐藏父元素的滚动条Y,但在子元素上保持可见


我有一个带有max-heightoverflow-y:scroll的外部元素。我不想让滚动条在。parent-元素上可见,因此我使用::-webkit-scrollbar。但是,在.parent-element中,我也有一个具有max-height和overflow-y:scroll的子元素,我希望使滚动条可见,当尝试在子元素的::-webkit-scrollbar上应用display:block时,它将被父元素忽略并覆盖,结果滚动条在两个元素上都不可见。

在webkit上有没有一种方法可以使滚动条在子项上可见,而在父项上隐藏?

下面是html和CSS的示例。

HTML

<div class="parent-element">
    <div class="div-one">
    </div>
    <div class="div-two">
    </div>
    <div class="div-three">
      <ul class="scrollable-list">
          <li>List Item 1</li>
          <li>List Item 2</li>
          <li>List Item 3</li>
          ...(500 more)
      </ul>
    </div>
</div>

CSS

.parent-element{
    width: 100%;
    max-height: 700px;
    overflow-y: scroll;
}
.parent-element ::-webkit-scrollbar {
   display: none;
}
.div-three .scrollable-list{
    max-height: 300px;
    overflow-y: scroll;
}
.parent-element .div-three ::-webkit-scrollbar {
    display: block;
}

共2个答案

匿名用户

尝试在父级上使用overflow-y:no-scroll;,并删除display:none

匿名用户

不要给父母最大身高。

null

.parent-element{
    width: 100%;
    height: 130px;
    overflow-y: hidden;
}
.div-three{
    height: 100%;
    overflow-y: scroll;
}
<div class="parent-element">
    <div class="div-one">
    </div>
    <div class="div-two">
    </div>
    <div class="div-three">
      <ul class="scrollable-list">
          <li>List Item 1</li>
          <li>List Item 2</li>
          <li>List Item 3</li>
          <li>List Item 4</li>
          <li>List Item 5</li>
          <li>List Item 6</li>
          ...(500 more)
      </ul>
    </div>
</div>