2011-06-16 46 views
1

请看我的小提琴:http://jsfiddle.net/qVHg8/1/为什么固定的右边栏不在位置相对分区内?

为什么fixedRightCol定位在外部容器div的右侧:0?现在它正在我不想要的容器div之外。

我可以使用绝对位置,它将fixedRightCol放在正确的位置,但滚动。我想修复fixedRightCol(不滚动)。

所以我怎样才能得到fixedRightCol位置正确,并固定在滚动?

感谢

+0

所以只是为了跟进,你希望div在视口中被固定,所以它滚动,但修复了父div的右边缘? – 2011-06-16 02:00:33

+0

Alastair,这是正确的 – AnApprentice 2011-06-16 02:30:09

+0

也许我需要使用两个div?一个绝对的位置,另一个固定? – AnApprentice 2011-06-16 02:30:22

回答

1

如果要固定在红格内的绿格,你需要使用position: absolute;

http://jsfiddle.net/qVHg8/2/

position: fixed;将元素修复到视口,而不是父项。

编辑:

如果你能够使用JavaScript代码&的jQuery,那么这将与动态利润率工作:

$(function(){ 
    $('.fixedRightCol').css({right: $('.container').offset().left}); 
}); 

,多数民众赞成什么做的是设置right CSS财产作为容器的计算left财产。由于两侧(自动)的边距相同,因此会将红色分隔线移动到正确的位置。

http://jsfiddle.net/qVHg8/4/是一个工作的例子。

+0

谢谢,我想这意味着我需要一个组合,因为这是我想要实现的。这怎么可能? – AnApprentice 2011-06-16 01:50:38

+1

@AnApprentice:你可以用你想达到的目标来编辑你的问题吗?这里的所有答案都会回答你的问题,但如果你想让它做其他事情,那么你需要指定它。 – 2011-06-16 01:52:11

+0

抱歉。问题已更新。这更清楚吗? thx – AnApprentice 2011-06-16 01:58:00

0

我想你的意思使用position:absolute;

+0

我其实希望它被修复。所以我需要绝对的和固定的东西? – AnApprentice 2011-06-16 01:44:10

+0

将某物附加到另一个元素是使用相对于该元素的'position:absolute'。 'position:fixed;'将元素附加到窗口。 – 2011-06-16 01:45:58

1

当你给的东西一个位置固定的,它打破了所有的div它可能会在

编辑: 你可能只是这样做:

.fixedRightCol{ 
    position: fixed; 
    margin-left: 350px; 
    width: 50px; 
    background: green; 
} 

使用保证金左:350像素;对于没有权利的绿色框:0px;或任何东西...

+0

@AnApprentice:我的回答有什么问题?不依赖于打开了JavaScript的用户,很好地工作... – Teak 2011-06-16 03:20:24