你想做什麼?在你所附的圖片上,你說所有的高度都是未知的,但在jsfiddle中,你宣稱.btn
的高度爲190px。
那麼,你想要有多大的父母是?爲了讓自己更容易,您應該聲明具有15%,50%和35%高度的元素的父元素的高度。在這種情況下,.btn
可以是百分比或固定值。作爲一個百分比,
height:100%
請注意,如果您設置的.btn
至100%的高度,它將繼承其高度從其父,即使它通常是由高度定義的高度它的孩子。當你以百分比的形式聲明它的高度時,它看起來是父母的,併成爲其百分比。 (即一個高度爲50%的div將是其父母的一半高,其他都保持不變)。
如果你想要的高度是瀏覽器窗口的100%,你可以做
html, body, ul, .tall, .btn {
height:100%;
}
獲得高度的瀏覽器需要你申報你的身高爲100%所有的方式是一樣高最多html
。或者你可以設置一個固定的高度。btn,它們是很好,現在更容易
.btn {height:1000px}
,設置子元素的高度,
btn-modal-header {
height:15%;
}
.btn-modal-glyph {
height: 50%;
}
.btn-modal-description {
height: 35%;
}
這將導致他們成爲其父的高度給定%。
至於垂直居中他們,你需要聲明一個父與
display:table
及其子
display:table-cell
它不必是直接的孩子,但它更容易這條路。所以,你可以做這樣的事情:
.btn > * {
display:table;
width:100%;
}
.btn > * > * {
display:table-cell;
vertical-align:middle;
}
其設置與15%, 50%, and 35%
高度,以display:table
和他們的孩子的孩子顯示爲table-cell
秒。然後,您只需將其垂直對齊設置爲middle
即可。
的jsfiddle:如果http://jsfiddle.net/x3zq96d5/6/
通知您垂直調整瀏覽器,高度現正在從窗口的大小繼承,一路下來給孩子。
這做了我所需要的 - 添加空白div有點難看,但我認爲這裏的價值是值得的。之後必須根據填充/保證金對內容進行一些調整,但似乎是在我的路上。謝謝! –
是的,在理想的世界裏,額外的div不會在那裏。問題是像[flexbox model](http://caniuse.com/flexbox)這樣較新的CSS功能,只有在較新的瀏覽器版本中才能支持這些功能,這些功能可以很好地解決這些問題。像往常一樣,它是老式的CSS黑客和更新的CSS功能的混合體。 –