2012-07-13 47 views
5

在我的html頁面中,我有一個容器div內的兩個div。兩個內部divs有一個'職位:aboslute'。因爲他們必須放在容器div的左下角。Absolute divs each other

當容器div只有一個內部div時,這很好用。但是當我添加第二個div時,則第二個div放在第一個內部div的頂部。這是有道理的。但現在我試圖找到一種方法讓他們在彼此旁邊而不是彼此重疊。

生成內部div。所以我不能手動添加一個ID給他們。他們只有一個班級名稱。

Example

<div id="container"> 
    <div class="icon">ICON1</div> 
    <div class="icon">ICON2</div> 
</div> 
#container { 
    position: relative; 
    width: 200px; 
    height: 200px; 
    border: 1px solid red; 
} 

.icon { 
    position: absolute; 
    bottom: 0; 
    left: 0; 
    border: 1px solid green; 
} 

任何人有任何想法如何解決這個問題?

+0

你可以使它們相對定位,因爲它們維持相對於其父(容器)元素的佈局 – jeschafe 2012-07-13 18:55:21

+0

將每個ICON放置在'li'中而不是'div'元素是什麼?造型清單項目非常靈活,簡單! – Liggy 2012-07-13 19:06:59

+0

只是使用第一個孩子/最後一個孩子,請參閱我的回答 – Huangism 2012-07-13 19:11:47

回答

6

使用包裝元素,而不是每個單獨的圖標上的絕對定位,那麼你就可以漂浮或你有多喜歡該容器內的圖標的位置:

<div id="container"> 
    <div class="icon-wrapper"> 
     <div class="icon">ICON1</div> 
     <div class="icon">ICON2</div> 
    </div> 
</div> 
#container { 
    position: relative; 
    width: 200px; 
    height: 200px; 
    border: 1px solid red; 
} 
.icon { 
    border: 1px solid green; 
    float:left; 
} 
.icon-wrapper { 
    position: absolute; 
    bottom: 0; 
    left: 0; 
} 

演示:http://jsfiddle.net/sYGfq/3/

0

如果只有2個可以使用:第一個孩子或最後一個孩子在CSS中,不需要添加額外的HTML。 CSS的幾行會照顧在這裏

例如http://jsfiddle.net/sYGfq/6/

CSS的最後一個子

.icon:last-child { 
    left: 200px; 
    border: 1px solid green; 
} 
+0

謝謝,但我不認爲最後一個孩子在IE7(不知道IE8)支持。 – w00 2012-07-13 19:15:58

+0

然後使用第一個孩子,其中一個是支持的,請參閱http://jsfiddle.net/sYGfq/8/在IE 7 – Huangism 2012-07-13 19:16:48

+0

@Huangism您是否在IE中檢查過,因爲其中一個掉出容器div。此外,當你有3個或更多的圖標時,'第一個孩子'會做什麼? – Vivendi 2012-07-13 19:23:24

0

在表中把雙方的div成單獨的細胞,從刪除所有邊框和填充該表並絕對將其放在父div的左下角。

<div id="container"> 
<table class="none" id="table1"> 
<tr class="none"> 
<td class="none"> 
<div class="icon">ICON1</div> 
</td> 
<td class="none"> 
<div class="icon">ICON2</div> 
</td> 
</tr> 
</table> 
</div> 

#container { 
    position: relative; 
    width: 200px; 
    height: 200px; 
    border: 1px solid red; 
} 

.icon { 
    border: 1px solid green; 
} 

.none { 
    border: 0; 
    padding: 0; 
} 

#table1 { 
    position: absolute; 
    bottom: 0; 
    left: 0; 
} 

的Presto!