我已經角頁,家庭,它由2個部件和路由器出口100%高度身體比100vh高,引起角的路由器出口
<div class="home-container">
<header></header>
<sub-header></sub-header>
<router-outlet></router-outlet>
</div>
我想歸屬容器以上,至少是全屏高度。標題應該顯示,然後是子標題,那麼router-outlet的內容至少應該填滿屏幕的其餘部分(或者更多,如果有更多內容的話)。
通常情況下,這很容易,但看起來router-outlet正在搞砸它。例如可以看到http://plnkr.co/edit/56k9ZabLAGujBoX8Lsas,點擊運行,然後點擊「英雄」鏈接進行路由。在這個例子中,我不希望英雄div比屏幕更高,也不明白它爲什麼。
我的風格來完成這個。 (假設路由器的出口是「我的頁面」上)
html, body {
height: 100%;
}
.home-container {
height: 100%;
}
.my-page {
height: 100%;
}
我期待在這裏顯然是家用容器是全屏,顯示標題,顯示子頭,和我的頁面,然後在填充最小的垂直高度的其餘部分。
雖然實際上發生了什麼,但是有一個可用高度的滾動條看起來與我的標題和子標題相同。
這個plnkr http://plnkr.co/edit/56k9ZabLAGujBoX8Lsas說明了我的意思。如果您點擊運行,然後點擊「英雄」鏈接,您將看到路由器插座的內容,在這種情況下爲heroes-list.component,帶有綠色背景。我不明白爲什麼當所有設置爲100%時,屏幕下方的綠色都在流血
更新我已嘗試在此嵌套中將不同CSS屬性的所有方式用於不同的級別。包括100vh vs 100%,最小高度和高度,以及body/html/home-container/my-page的每個組合。我也試圖與角的CSS :host
一樣的,沒有什麼不同
相同的結果UPDATE2如果我將它移出元素的那麼一切都表現爲你所期望的,而且也沒有垂直滾動條。關於路由器出口封裝器的某些內容會在某處添加垂直空間,但我無法弄清楚導致它的位置或內容。
最後更新下面的答案可能是用於某些應用,但我最終只是給。我的頁面指定的高度,只是在做height: calc(100vh - $headerheight - $subheaderheight)
它能夠完成
嘗試使用'100vh!important'而不是'100%'代替你的身高 – tobie
@tobie根據我的更新,我嘗試了在100vh和100%(帶重要標誌)之間切換任何/所有組合,不幸的結果 - 你可以看看附帶的plnkr的一個實例 –
我很驚訝身高百分比在這裏有任何影響。要使CSS中的百分比高度起作用,父元素需要明確的高度,否則計算的值將變爲auto。當我在Chrome中檢查DOM時,你的'。home-container'元素被封裝在一個''元素中,而其父元素是'',並且因爲兩個_any_樣式都顯示在巡視器中......所以'.home-container'完全受'身高:100%對我來說是一個謎,說實話。 –
CBroe