2012-08-22 20 views
3

如果我有3個事業部盒(任意數量真的)下令在下面的莊園:位置格箱

<div> 
    <div id="one"></div> 
    <div id="two"></div> 
    <div id="three"></div> 
</div> 

我怎樣才能讓id爲one股利後的顯示與ID爲three div而不改變html的結構?

這就是HTML應顯示爲:

________________________ 
| ____________________ | 
| | id=two   | | 
| |     | | 
| |__________________| | 
| ____________________ | 
| | id=three   | | 
| |     | | 
| |__________________| | 
| ____________________ | 
| | id=one   | | 
| |     | | 
| |__________________| | 
|______________________| 
+0

一種矛盾。你想div' two'仍然可見嗎?如果不是這樣的話,那麼很容易就可以寫出這個'#two {display:none}' –

+0

這會出現什麼樣的用例呢? – Lowkase

+0

@Lokase這個解決方案:http://stackoverflow.com/questions/12082481/identifying-main-submit-button-for-a-form – topherg

回答

4

這可能取決於這些div後面的內容。如果什麼都沒有,你可以使用position: absolute; top: 100%;第一div來實現這一目標:

<div id="container"> 
    <div id="one"></div> 
    <div id="two"></div> 
    <div id="three"></div> 
</div>​​​ 
​#container { position: relative; border: 1px solid red; } 
#one { position: absolute; top: 100%; } 
#one, #two, #three { width: 300px; height: 200px; border: 1px solid #ccc; } 

http://jsfiddle.net/xjnrE/

但是,如果#container格之後有什麼事,這將是#one下(至少部分取決於高度;參見demo)。請注意,如果元素是「在流中」(即,它未定位且未浮動),則將根據標記(以及因此DOM)上的外觀順序來渲染元素。這意味着你必須訴諸JavaScript來更改DOM元素的實際位置:

var container = document.getElementById('container'); 
var one = document.getElementById('one'); 
container.appendChild(one); 

http://jsfiddle.net/xjnrE/3/

+0

謝謝,它的工作就像一個魅力,容器需要嵌套在另一個容器,有一個「墊底」,使它看起來適合在 – topherg

1

如果你控制的div的尺寸,並確保他們的內容不會破壞你的佈局,你可以將它們與CSS定位。有點尷尬,但有點像:

#one, #two, #three { 
    position: absolute; 
    width: 200px; 
    height: 200px; 
} 
#one { 
    top: 400px; 
} 
#two { 
    top: 0px; 
} 
#three { 
    top: 200px; 
} 

這些職位然後可以用JavaScript來改變,如果你需要的話。

+0

寬度是可控的,但我無法保持對高度的任何控制 – topherg

+0

您可以使用JavaScript獲取元素的高度並動態設置CSS頂級屬性。 –

+0

將是理想的,但可惜不是我在用什麼 – topherg

0

下搶到第一DIV和移動它是在父容器中的最後一項。

但是,您需要確保您可以以某種方式定位容器DIV。因此,如果您無法編輯HTML,請根據其他具有唯一ID或類的父元素來定位該元素。

標記:

<div id="container"> 
    <div id="one"></div> 
    <div id="two"></div> 
    <div id="three"></div> 
</div> 

的JavaScript:

$('#container #one').appendTo('#container'); 
+0

裏面,這個問題的主要觀點是,當一個表單中存在多個提交按鈕並且輸入被按下時,在按下輸入按鈕時,'#one'內的提交仍然是「被點擊」的按鈕,並且更多提交按鈕存在以後? – topherg

+0

我很確定,如果您按下ENTER鍵,它將提交表單,而不管表單標籤中提交按鈕的數量。遊標需要位於表單內(無論是在字段中還是點擊了標籤)。 – Matthew

+0

它會選擇表單中的第一個提交按鈕,如果前面有「onclick」屬性設置(特別是在wordpress中選擇了圖片選擇),那麼將會調用該按鈕而不是提交表單 – topherg