2014-08-28 46 views
1

我在構建一些嵌套div時遇到了問題。嵌套div上的HTML和CSS

我有以下結構:

<div id="master"> 
    <div id="number"> 
     <p>123</p> 
    </div> 
    <div id="content"> 
     <h1>Title</h1> 
     <p>Some content here.</p> 
    </div> 
</div> 

你可以看看視覺這裏舉例:enter image description here

  • 第一個div,這是 「大師」,有剛保持東西 有組織。
  • 被稱爲「內容」的div將填充一些來自數據庫的 信息,因此它不能具有任何固定的高度。 但是,可以指定最小高度。
  • 稱爲「數字」 股利必須以遵循「內容」 div的高度和 顯示對準它(文本對齊和 垂直對齊)中心的數量靈活。

我上傳的圖片可以幫助您瞭解我需要的內容。我一直在嘗試很多CSS代碼,但都沒有工作。

編輯1:

這是我必須做它的工作最接近(但數量沒有得到垂直對齊到div的中間)。

#master { 
    display: flex; 
    background-color: #ffffff; 
} 

#number { 
    float: left; 
    width: 100px; 
    vertical-align: middle; /* DOESN'T WORK */ 
    text-align: center; 
} 

#content { 
    float: left; 
    width: 450px; 
} 
+0

那麼什麼是你的問題? – anthonygore 2014-08-28 00:08:34

+0

你應該使用Javascript – cameronjonesweb 2014-08-28 00:09:00

+0

你想要的是讓主div從content div繼承它的高度,並且爲div編號來簡單地使用master的高度。但是,這與CSS中屬性繼承的正常工作方式恰恰相反。我已經閱讀了CSS標準搜索的一種方式來做到這一點,不幸的是,我不認爲這可以做到(很容易),至少不添加一些JavaScript。 – jpaugh 2014-08-28 00:09:09

回答

1

您可以嘗試CSS表:

#master { 
    display: table-row; 
} 
#number, #content { 
    display: table-cell; 
} 

然後,

#number { 
    background: red; 
    width: 100px; 
    vertical-align: middle; 
    text-align: center; 
} 
#content { 
    background: blue; 
    width: 450px; 
    min-height: 100px; 
} 

Demo

+0

根據瀏覽器的不同,您可能需要添加一個相應的{display:table}包裝來獲取表格行和表格單元格。 – 2014-08-28 00:26:11

+0

可以獲得類似的解決方案,但絕對將內容定位在頂端:50%;然後去邊緣頂部的元素的高度的一半。但你需要知道高度... – 2014-08-28 00:27:44

+0

@RichRemer OP考慮使用柔性盒,所以我不認爲需要'display:table'的舊瀏覽器對他很重要。 – Oriol 2014-08-28 00:28:26