随着以下HTML
和CSS
.container {
position: relative;
border: solid 1px red;
height: 256px;
width: 256px;
overflow: auto;
}
.full-height {
position: absolute;
top: 0;
left: 0;
right: 128px;
bottom: 0;
background: blue;
}
<div class="container">
<div class="full-height">
</div>
</div>
内部部件div
可根据需要占据容器的整个头部。如果现在将其他一些内容添加到容器中,例如:
.container {
position: relative;
border: solid 1px red;
height: 256px;
width: 256px;
overflow: auto;
}
.full-height {
position: absolute;
top: 0;
left: 0;
right: 128px;
bottom: 0;
background: blue;
}
<div class="container">
<div class="full-height">
</div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aspernatur mollitia maxime facere quae cumque perferendis cum atque quia repellendus rerum eaque quod quibusdam incidunt blanditiis possimus temporibus reiciendis deserunt sequi eveniet necessitatibus
maiores quas assumenda voluptate qui odio laboriosam totam repudiandae? Doloremque dignissimos voluptatibus eveniet rem quasi minus ex cumque esse culpa cupiditate cum architecto! Facilis deleniti unde suscipit minima obcaecati vero ea soluta odio cupiditate
placeat vitae nesciunt quis alias dolorum nemo sint facere. Deleniti itaque incidunt eligendi qui nemo corporis ducimus beatae consequatur est iusto dolorum consequuntur vero debitis saepe voluptatem impedit sint ea numquam quia voluptate quidem.
</div>
然后,容器根据需要滚动,但是绝对定位的元素不再锚定到容器的底部,而是停在容器的初始可见底部。我的问题是;有没有办法使绝对定位的元素成为其容器的完整滚动高度而无需使用JS
?
我能问一下你为什么有top:0吗?还有吗?
—
Patsy Issa 2013年
没什么特别的原因,我有过分说明的习惯
—
克里斯·米克
如果将
—
布鲁尔
top: 0;
其删除,将无法正常工作。
没有JS来计算
—
RaphaelDDL
innerHeight
,那将很难。不幸的position:fixed
是不能在容器内部工作,因为它不在流程中,所以这种“解决方法”也无法工作:(