2012-02-03 90 views
0

我有一個100%高度div內垂直對齊2 div的麻煩。我google搜索,但未能解決。垂直對齊頭痛

僞代碼:

<div container, fixed height> 
    <img, dynamic height/> 
    <div inner, 100% height> 
    <div><img/></div> 
    <div><img/></div> 
</div> 
</div> 

在內的div的兩個div,我想他們是在內部div的垂直居中,但我不能找到一種方法。它不可能知道內部div的高度,它只是設置爲100%,因爲它上面的圖像的隨機高度。內部div內的div也會有動態的高度。

2小時擺弄沒有結果,所以即時通訊到這裏。

的頁面,在這裏你可以看到它在行動:http://pyntmeg.no/?iframe

+0

在什麼情況下顯示這些元素?我只是好奇,因爲可能有另一種方法來做到這一點,而不是試圖讓它們在中心對齊,這對CSS非常困難。 – 2012-02-03 19:56:33

+0

還有什麼其他的方法呢?我不需要這樣的代碼,不。這整個事情是爲了在iframe中作爲廣告顯示的。 – 2012-02-03 20:01:31

+0

這就是我想了解的。它是否必須在中心垂直對齊?這就是我想知道的。可能還有其他選項用於顯示我們沒有想到的代碼。廣告的平均高度/寬度是多少?廣告的平均高度/寬度是多少? – 2012-02-03 20:05:36

回答

0

嘗試:

.item { 
    position: relative; 
    top: 10%; 
} 

您可能需要調整頂部:10%;

+0

我試過了,似乎是最接近的一個,但它不是正確的。似乎在爲一些圖像而不是其他人工作。 – 2012-02-03 19:44:25

+0

這可能是因爲圖像高度不同。這不會達到你正在尋找的效果。 – 2012-02-03 19:53:45

1

你可以給父DIV.container的位置:相對屬性,因爲它有一個固定的高度。

內的div就可以有一個位置是:絕對的,你的高度設置爲100%或可能低一點。你可以使用top屬性來移動它。

+0

內部div內的div也將具有動態高度:/ – 2012-02-03 19:50:25

+0

這不應該是一個問題,因爲您的父div具有固定的高度。你甚至可以添加一個滾動的溢出屬性,如果有必要 – Ibu 2012-02-03 19:57:49

+0

我現在改變了我的代碼在網站上,但divs沒有被垂直居中,也許我做錯了。 – 2012-02-03 20:12:34

0

只要父母/祖父母的div是具有其寬度與它的工作就可以申請「浮動:左」的孫子的div風格。

0

vertical-align是爲表元素,而不是常規的div等爲了得到vertical-align中工作,該元件需要設置爲display:table-cell和它的父母需要被設置爲display:table-row

小心儘管如此,它確實會改變元素與其兄弟元素進行交互的方式,並且它肯定會改變頁面的佈局方式。

這個最好的使用是這樣的:

<div class="table-row"> 
    <div class="td">lorem ipsum</div> 
    <div class="td">dolor sit amat</div> 
</div> 

的CSS:

.table-row {display: table-row} 
.td {display: table-cell; vertical-align: middle;} 

注意

這不會要素的工作,是浮動的左/右,它會改變邊框寬度如何影響元素的整體寬度。

我只會用表格數據使用,就像我會使用一個表只能建議。