控制div的宽度

时间:2011-07-17 19:01:17

标签: css html

你好我正在尝试建立一个流畅的设计,不知道为什么,但我无法继续工作。因此,如果调整窗口大小以使用它调整div菜单的大小,而不是将div强制转换为主题中的其他元素。

以下是我目前用于CSS的代码

#stats-panel { 
  position: fixed;
  background-attachment: scroll;
  background-clip: border-box;
  background-color: #ffffff;
  background-image: none;
  background-origin: padding-box;
  background-position: 0% 0%;
  background-repeat: repeat;
  background-size: auto;
  border: 2px solid #ffffff;
  min-width: 680px;
  max-width: 980px;
  width: 100%;
  -moz-border-radius: 8px;
  border-radius: 8px;
  margin-bottom: 0px;
  margin-left: 10px;
  margin-right: 420px;
  margin-top: 0px;
  padding-bottom: 2px;
  padding-left: 10px;
  padding-right: 10px;
  padding-top: 10px;
  top: 58px;
  left: 0px;
  right: auto;
}

当我超越最大宽度时,这个div与其他div碰撞,我该怎么做才能保持两个元素之间的20px边距,但仍然允许在调整窗口大小时调整div(stats-panel)的大小。 / p>

3 个答案:

答案 0 :(得分:1)

不太清楚整个布局对于您的网页是什么,但假设我们正在查看具有主体div和侧边栏div的2列布局,那么这可能是您可以做的:

首先在你的html文档中:

<div id="wrapper">

    <div id="main">
        <h2>This is the main body</h2>
    </div>

    <div id="sidebar">
       <h2>This is the sidebar</h2>
    </div>

</div>

继续CSS:

#wrapper{
    padding:0;
    margin:0 auto;
    min-width:940px;
    max-width:1280px;
}

    #main{
        margin-left:0;
        margin-right:280px;
    }

    #sidebar{
        float:right;
        width:250px;
    }

这里的基本思想是首先为包装器设置范围宽度而不是死值。然后,确定哪个列具有固定宽度,哪个列具有流体宽度。对于流体柱,在这种情况下是#main div,不设置固定宽度;而是设置一个将其推到其位置的边距。这样做将在固定柱和流体柱之间保持固定的“填充”。在我的例子中,无论浏览器如何调整大小,这个“填充”都将保持在30px左右。固定柱将保持在250px,流体柱的“填充”为30px,流体柱将具有“可变”宽度,具体取决于浏览器窗口大小。

希望这会有所帮助;)

答案 1 :(得分:0)

这个网站有许多流畅的CSS布局的好例子:http://www.glish.com/css/index.html

答案 2 :(得分:0)

答案可能在于与其他元素的关系。由于这个div有一个position:fixed,它被从常规流中取出,就像绝对一样。它的位置是相对于浏览器窗口的,与其他元素的任何关系都无关紧要。

您必须在某种程度上模拟此div与其他元素的关系行为,以便它们开始移动。您可以采用几种方法,并且取决于您当前的布局。