2012-08-07 29 views
1

我必須在一個生成表(排序...)的軟件上工作,它必須提供對元素位置的完全控制。是否可以使用`position:relative`來模擬`position:absolute`元素的位置?

到目前爲止,我們有結構是這樣的:

<div id="container" style="display: table-row"> 
    <div id="a" style="position: absolute"></div> 
    <div id="b" style="position: absolute"></div> 
    <div id="c" style="position: absolute"></div> 
</div> 

而且使用lefttop風格的指令一些JavaScript代碼放置#a#b#c元素中#container

這樣,元素甚至可以「倒置」,即:#b可能是左邊的第一個元素,最後一個是#a,具體取決於其他規則。

但是,這樣做會失敗,因爲它們不在流程中,因此#container的高度爲零。很公平。

看來impossible to solve this problem這樣,所以我想用position: relative的子元素,但這樣做的,在lefttop風格的指令,現在指的是初始元素的位置和沒有更多的可用...

你有沒有必須處理類似的情況?我能做些什麼來達到理想的行爲?

非常感謝。

PS:對於那些誰不知道爲什麼我們不使用<table>元素來代表一個表,讓我們只說我不知道​​很好,但有超過這一決定沒有權力......

回答

1

兩件事情浮現在腦海中 - 既哈克,也許不是超級可擴展性:

1)添加position: absolute不是在CSS但在JS - 但在此之前,固定容器到之前的絕對偏離尺寸,所以高度也不會丟失

var container = $('#container'); 
container.height(container.height()).children().css('position', 'absolute'); 

2)去機智h position: relative,但相對於其原始位置減去它們的偏移量設置其新位置。

var el = $('#some_el'); 
el.css({top: 0 - el.position().top}); 
相關問題