2011-03-21 90 views
3

即时通讯工作在3列网页。我想冻结左边的右边栏。我尝试设置位置:首先固定在左列,但其他所有div只是碰撞到左侧。css左右列固定

任何想法?

+1

请给一些代码 – sandeep 2011-03-21 14:27:41

回答

4

position:fixed取元件从元件的正常 “流” 的。我通常通过将中间列的margin-left设置为等于左列的宽度加上所需的排水沟来避开这种情况。例如,如果左栏为250像素,排水槽为25像素,则中间栏的margin-left为275像素。

示例代码(这保持在宽度中间列液):

#wrapper { position: relative; min-width: 800px; max-width: 1000px; margin-left: auto; margin-right: auto; } 
#left-col { position: absolute; top: 0; left: 0; width: 250px; } 
#right-col { position: absolute; top: 0; right: 0; width: 250px; } 
#middle-col { position: relative; margin-left: 275px; min-width: 250px; max-width: 450px; } 

<div id="wrapper"> 
    <div id="left-col"> left </div> 
    <div id="middle-col"> middle </div> 
    <div id="right-col"> right </div> 
</div> 
+0

它的工作原理。它的包装必要? – nuttynibbles 2011-03-21 15:17:10

+0

@nuttynibbles,它没有看到我的示例 – Bazzz 2011-03-21 15:19:03

+0

这不是必需的。我添加它以提供三件事:1.)内容区域居中,2.)内容区域的最大宽度,3)和位置:相对。如果需要,您可以使用'',但通常我会发现在列区域外有一个页眉和页脚,因此将它放在包装器中可以更容易地处理。 – 2011-03-21 17:31:53

2

您需要在中心div上设置边距以保留其他两个边距。

这里是一个的jsfiddle:http://jsfiddle.net/pfxxL/

#left { 
    width: 100px; 
    position: fixed; 
    top: 0; 
    left: 0; 
    background: red; 
} 

#right { 
    width: 100px; 
    position: fixed; 
    top: 0; 
    right: 0; 
    background: blue; 
} 

#center { 
    margin-left: 100px; 
    margin-right: 100px; 
    height: 750px; 
    background: green; 
} 

<div id="left"> 
    left left<br/> 
    left left<br/> 
    left left<br/> 
</div> 
<div id="center"> 
    center 
</div> 
<div id="right"> 
    right right<br/> 
    right right<br/> 
    right right<br/> 
</div> 
+0

TKS乌尔法工作太.. – nuttynibbles 2011-03-21 15:17:57

+0

我想我是第一个回答你的问题,说实话。但是,如果你发现T.斯通的回答更适合你的情况,那么他的回答会更好。 – Bazzz 2011-04-07 19:06:00