【发布时间】:2021-03-04 02:06:20
【问题描述】:
我正在建立一个在线商店。
当用户点击一个产品时,一个弹出的 div 会包含基本的项目信息和一些评论。此弹出窗口没有固定高度,而是使用position: fixed 和上/下/右/左边界设置
我在这篇文章的底部附加了一个模型。着色和透明度只是为了帮助说明。
无论我尝试过什么,除了设置div.scrollable 的高度之外,它总是会溢出其父级。 CSS可以单独解决这个问题,如何解决?或者我必须使用 javascript 来计算高度。 我希望.scrollable 元素填充.page 的剩余高度,但不要超出边界/溢出。
我已经尝试过 flexbox,但没有看到结果有什么不同,所以这里没有包含任何内容。
* {
box-sizing: border-box;
}
#content {
background-color: lightgray;
width: 100%;
max-width: 700px;
padding: 1em;
left: 0;
right: 0;
margin: 0 auto;
}
#novella {
position:fixed;
top: 1em;
bottom: 1em;
left: 0;
right: 0;
max-width: 400px;
margin: 0 auto;
border: 2px solid black;
}
.productInfo {background-color: white;}
.scrollable {
background-color: rgba(225,225,225,.5);
overflow-y: scroll;
}
.grid {
list-style-type: none;
display: grid;
grid-template-columns: repeat(auto-fit, 25%);
grid-gap: 1rem;
justify-content: space-between;
align-content: flex-start;
}
<div id="content">
<ul class="grid">
<li>Fubar Product</li>
<li>Foo Product</li>
<li>Bar Product</li>
<li>Fu Product</li>
<li>CSS Knowledge</li>
<li>Fubar Product</li>
<li>Foo Product</li>
<li>Bar Product</li>
<li>Fu Product</li>
<li>CSS Knowledge</li>
<li>Fubar Product</li>
<li>Foo Product</li>
<li>Bar Product</li>
<li>Fu Product</li>
<li>CSS Knowledge</li>
</ul>
<div id="novella">
<div class="page">
<div class="productInfo">
Fubar product.<br>
$99.99<br>
It's the greatest, beyond all others
</div>
<div class="scrollable">
<ul>
<li>It was great</li>
<li>I liked it</li>
<li>Not what I wanted</li>
<li>Sized perfectly</li>
<li>Not great</li>
<li>It was great</li>
<li>I liked it</li>
<li>Not what I wanted</li>
<li>Sized perfectly</li>
<li>Not great</li>
<li>It was great</li>
<li>I liked it</li>
<li>Not what I wanted</li>
<li>Sized perfectly</li>
<li>Not great</li>
<li>It was great</li>
<li>I liked it</li>
<li>Not what I wanted</li>
<li>Sized perfectly</li>
<li>Not great</li>
<li>It was great</li>
<li>I liked it</li>
<li>Not what I wanted</li>
<li>Sized perfectly</li>
<li>Not great</li>
</ul>
</div>
</div>
</div>
</div>
【问题讨论】:
-
不确定我是否理解你想要的。告诉我是不是类似于this。
-
@ArthurPereira 是的,停止溢出,将评论包含在可滚动的 DIV 中。
标签: css css-position overflow