CSS背景图片位于div底部

6

这是我拥有的内容:

<div id="page_container">
    A short text
</div>

#page_container
{
    position: absolute;
    top: 120px;
    left: 280px;
    right: 30px;
    background-color: #D0D0CD;
    border-radius: 5px;
    box-shadow: 1px 1px 12px #555;
    height: 1060px;
    overflow: auto;
    background-image: url(./library/grappe.png);
    background-repeat: no-repeat;
    background-position: bottom right;
}

所以,我的div宽度为1060像素,位于屏幕右侧,并在右下角有一张图片。到目前为止都很好。带短文本效果很不错。
由于overflow:auto的原因,长文本不会使我的div变高,而是会在上面添加滚动条,这正是我想要的。
然而,背景图片仍然粘在div的右下角,而不是基本不显示,并在我滚动带有滚动条的div时首先出现。基本上这张图片停留在同一位置,就像position:fixed一样。不能改变这种行为。

3
制作小提琴(http://jsfiddle.net/) - David
当我滚动时,图像并不保持不变。您希望在滚动时图像做什么? - Keith
2个回答

7
您需要添加一个内部div,该内部div将具有背景,而第一个div将处理滚动。
<div id="page_container">
    <div class="block_container">
        A short text
    </div>
</div>

CSS部分

#page_container
{
    position: absolute;
    top: 120px;
    left: 280px;
    right: 30px;
    border-radius: 5px;
    box-shadow: 1px 1px 12px #555;
    height: 1060px;
    overflow: auto;
}

#page_container .block_container
{
    background: #D0D0CD url('./library/grappe.png') bottom right no-repeat;
}

可能应该在 .block_container 中添加 min-height: 100%,以确保背景图片始终位于底部。 编辑:我今天打字有点问题 - SlightlyCuban
谢谢您的回答。我考虑了一下,并尝试了一下,也用了您提供的确切解决方案再次尝试了一下。但是图片不再显示... - Psychokiller1888

0

我设法使其正常工作,而无需再添加另一个div。

#page_container {
  background: url('IMAGE_URL') no-repeat bottom right, linear-gradient(315deg, #0F3052 0%, #11A0B0 100%);
  background-size: contain;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接