2012-04-21 47 views
0

說我有一個固定寬度的容器中彼此相鄰的2個div。水平彼此相鄰即是。然後說一個div被刪除,我怎麼能得到另一個div來填補旁邊的空間,其他div是哪裏?因爲它應該擴大其寬度。我可以將兩個div彼此相鄰,並且當一個div被移除時另一個div擴展以填充空間?

+0

怎樣刪除DIV?如果您使用的是JavaScript,則可以在用戶啓動移除事件時以編程方式設置其他div的寬度。 – 2012-04-21 14:32:57

+0

它只是不會顯示取決於不同的情況,但問題是2周的div不知道狀態的其他 – user1154863 2012-04-21 16:29:50

回答

1

Here's一個辦法做到這一點沒有JavaScript。

+0

嘿CircleB這幾乎是我需要的,除了左邊的div不會展開右邊,如果正確的div不可見。有任何想法嗎? – user1154863 2012-04-21 17:49:30

+0

建立在拉斯Nyström的答案,我做到了這一點:http://jsfiddle.net/cVdBA/ – 2012-04-21 18:31:22

0

您可以使用jQuery來操縱CSS屬性和可見性。在this example我改變寬度。

1

我不認爲這將在IE中工作...我已經在Chrome,Firefox和Safari中測試過,但這可能適用於您。

Here是它的小提琴。

CSS:

#container { 
    width: 400px; 
} 
#left { 
    width: 200px; 
    height: 200px; 
    background: #ddd; 
    float: left; 
} 
#right { 
    width:100%; 
    float: right; 
    height: 200px; 
    position: relative; 
    background: #CCC; 
} 
#left + #right { 
    width: 200px; 
} 

的Javascript:

function removeElement(divNum) { 
    var d = document.getElementById('container'); 
    var olddiv = document.getElementById(divNum); 
    d.removeChild(olddiv); 
} 

HTML:

<div id="container"> 
    <div id="left"></div> 
    <div id="right"></div> 
    <input onclick="removeElement('left')" type="button" value="X"/> 
</div> 
+0

嗯,我希望會有一些CSS技巧來得到這個沒有JS完成。我可以使用表我知道,但寧願div – user1154863 2012-04-21 15:33:42

0

您可以使用display: table;來做到這一點,但它在IE 7及以下版本中不起作用。下面的代碼:

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <title>Test div</title> 
    <style type="text/css"> 
     #container { 
      width: 400px; 
      display: table; 
     } 

     #row-container { 
      display: table-row; 
     } 

     #left, #right { 
      display: table-cell; 
      height: 200px; 
     } 

     #left { 
      background-color: red; 
     } 

     #right { 
      background-color: blue; 
     } 
    </style> 
</head> 
<body> 
<div id="container"> 
    <div id="row-container"> 
     <div id="left"></div> 
     <div id="right"></div> 
    </div> 
</div> 
</body> 
</html>