css 具有可滚动内容器的固定外容器

olhwl3o2  于 2023-02-26  发布在  其他
关注(0)|答案(2)|浏览(210)

预期结局:允许内容填充div时滚动内部容器。外部容器不应滚动,只能滚动内部容器。
我有一个带有下拉菜单的框,用户可以在其中进行选择,然后根据单击的选择看到框内"键入"的答案。内部容器中的答案由于文本量而溢出。我们希望允许内部内容容器可滚动,同时保持带有下拉菜单和所选问题的外部容器保持固定,不滚动。
下面是代码的简化版本:

export function typingDemo() {
return (
<div className="demo__wrapper">
    <Title />
    <DropdownMenu />
    <div className="demo__content--container">
        <Content />
    </div>
</div>
);
}

相关CSS

.demo__wrapper {
    position: relative;
    overflow: hidden;
    height: 50vh;
}

.demo__content--container {
    overflow-y: auto; //also tried 'scroll' here
    min-height: 75%;
}

我最初的想法是将demo__wrapper容器的overflow-y设置为hidden,将demo__content--容器的overflow-y设置为'auto'或'scroll',这符合外部容器不可滚动的要求,但内部div中的内容不可访问。
基本上,我希望demo__wrapper在滚动时不移动,同时允许demo__content--container在溢出时滚动。内部容器应该总是相同的大小(通过设置内部容器的高度来实现这一点)。

68de4m5k

68de4m5k1#

要具有固定的外部容器和可滚动的内部容器:
1.将外部容器的position属性设置为relative。
1.将内部容器的position属性设置为absolute。
1.通过将内部容器的top、bottom、left和right属性设置为0,使内部容器填充外部容器的整个空间。
1.将内部容器的overflow-y属性设置为auto以启用滚动。

.demo__wrapper {
  position: relative;
  overflow: hidden;
  height: 50vh;
}

.demo__content--container {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow-y: auto;
}

你可以试试这个

xmd2e60i

xmd2e60i2#

将内部div的min-height更改为height或设置max-height
问题是你在内部div上设置了一个min-height,但没有设置heightmax-height。这使得内部div根据其内容增长,甚至超过外部div的固定高度。溢出被隐藏。内部div的overflow: scroll;overflow: auto;永远不会起作用。

相关问题