【问题标题】:Fixed div background固定 div 背景
【发布时间】:2012-10-15 15:26:45
【问题描述】:

我想创建一个布局,我想在左侧显示图像并在右侧显示内容。当内容滚动时,图像应该保持不变。

我正在使用的 CSS:

    <style type="text/css">

        #page-container
        {
            margin:auto;            
            width:900px;              
            background-color:Black;
        }

        #header
        {
           height:150px;
           width:650px;
        }

        #main-image
        {
            float:left;
            width:250px;
            height:500px;
            background-image:url('../images/main-image.png');
            position:fixed;
        }


        #content
        {
             margin-left:250px;
             padding:10px;
             height:250px;
             width:630px;
             background-color:Teal;

        }
    </style>

HTML:

<div id="page-container">
    <div id="header"><img src="someimagelink" alt="" /></div>
    <div id="main-image"></div>
    <div id="content"></div>    
</div>

在这个网站上花费了很多时间,我了解到 background-attachment:fixed 将图像定位在整个视口中,而不是应用于它的元素。

我的问题是如何创建这种布局?

我不想将该图像作为背景图像,因为如果调整了窗口大小,它可能会被隐藏。如果窗口大小小于 900 像素(我的页面宽度),我希望显示滚动条,以便随时查看图像。

此代码会发生这种情况,但是我希望图像从我的元素开始。

我该怎么做??

在此先感谢 :)

已编辑:

我接受了建议,并在#main-image 中添加了一个 position:fixed 属性。使用如上所示的 HTML 和 CSS。 现在,我还想修复标题,使其不会移动。基本上,只有我的内容部分应该滚动。 但是,如果我在标题中添加一个 position:fixed,我的 #main-image 和 #content 现在位于我的标题之上。 如果我向#main-image 添加一个margin-top:150px(因为我的标题高度是150px),它可以正常工作并适当地向下移动。 但是,如果我在#content 中添加一个margin-top:150px,我的标题会向下移动150px,并且仍然位于我的#content 之上。 有人可以解释为什么会这样吗? 提前致谢:)

【问题讨论】:

  • 您可能希望将您的编辑重新发布为一个新问题。

标签: html css background attachment fixed


【解决方案1】:

看看这个链接:

http://www.barelyfitz.com/screencast/html-training/css/positioning/

您可以学习如何使用它来定位 Div。

这将解决您的问题: #main-image {position:fixed;}


编辑: 我不确定是什么导致了您的问题,但这里是解决方案: #content{ position:relative; top:150px; }

我的猜测: 我认为这是因为在使用 position:fixed 时,这 2 个 div 是相对于浏览器窗口定位的,而另一个是相对于文档本身的。

在此链接中,您将看到有关定位的更多信息,并且您可以测试其中一些与 position 属性相关的功能:

http://www.w3schools.com/cssref/pr_class_position.asp

关于一个 div 位于另一个之上的事实,您应该搜索“z-index”属性。 Firefox 具有 3D 模式,因此您可以更清楚地看到这一点:

http://www.addictivetips.com/internet-tips/browse-internet-in-3d-using-mozilla-firefox-11-tip/

【讨论】:

  • 非常感谢,完全按照我的意愿工作。也会通过上面的链接:)
  • 新问题,我也想修复标题。编辑了最初的问题。
【解决方案2】:

htmlbody 上设置min-width

【讨论】:

    【解决方案3】:

    您是否尝试过将#page-container 设置为relative 并将您的#main-image 容器设置为absolute 并使用top、bottom 等设置位置。然后您还应该能够将您的#content 容器浮动到右侧。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-25
      • 1970-01-01
      • 2011-05-13
      • 1970-01-01
      • 1970-01-01
      • 2014-07-04
      • 1970-01-01
      相关资源
      最近更新 更多