由於某些原因,最小高度在Firefox上不起作用。我試着在身上設置最小高度,但Firefox完全忽視它。由於我的頁面是動態的,因此我不能將高度設置爲100%。我該怎麼辦?Firefox忽略CSS中的最小高度
body {
border: 1px solid black;
width: 100%;
min-height: 100%;
}
<body>
This is the body.
</body>
由於某些原因,最小高度在Firefox上不起作用。我試着在身上設置最小高度,但Firefox完全忽視它。由於我的頁面是動態的,因此我不能將高度設置爲100%。我該怎麼辦?Firefox忽略CSS中的最小高度
body {
border: 1px solid black;
width: 100%;
min-height: 100%;
}
<body>
This is the body.
</body>
height
百分數都繼承(即包括min-height
and max-height
,太)。從CSS規範:
指定用於確定使用的值的百分比。 該百分比是根據生成的包含框的高度來計算的。
大多數人不知道的是,body
就像任何其他的元素,所以是html
。人們也沒有意識到的是這些元素沒有固有的高度。 html
的父項是視口,它的確實具有100%的固有高度。視口是 - 或多或少 - 瀏覽器窗口,減去任何菜單或標題欄。
由於height
百分比從他們的父母繼承,你不必爲你的html
元素的height
一套,你的min-height: 100%;
CSS不具有價值,採取100%的。所以你的身體基本上服用0的min-height: 100%
。
爲了解決這個問題,簡單地告訴你html
元至100%的視口的高度:
html {
height: 100%; /* this is the important bit */
}
body {
border: 1px solid black;
width: 100%;
min-height: 100%;
margin: 1px; /* I added this to make the border around the body a little easier to see. Normally you want to set it to 0 or leave it alone completely */
}
<body>
This is the body.
</body>
但是,如果你不希望你的整個文檔設置爲與視口一樣高(我強烈建議您這樣做),您還可以在您的body
元素上使用position: absolute;
,這樣無論其父元素的高度如何,百分比高度都將始終解析。這是Saqib在上述評論中試圖得到的結果。從CSS規格上最小高度和高度分別爲:
如果未明確指定包含塊的高度(即,它取決於內容的高度),並且該元件沒有絕對定位,該百分比值被視爲'0'('min-height')或'none'('max-height')。
-
注意,絕對定位的元素的包含塊的高度獨立於元件本身的尺寸,並且因此這樣的元件上的百分比高度總是能夠得到解決。
body {
border: 1px solid black;
width: 100%;
min-height: 100%;
position: absolute;
margin: 1px; /* I added this to make the border around the body a little easier to see. Normally you want to set it to 0 or leave it alone completely */
}
<body>
This is the body.
</body>
(我不知道你的代碼是在Chrome中工作,但在你的問題的代碼在Chrome瀏覽器,因爲它不會在Firefox相同的行爲。)
「高度」百分比適用於絕對定位的元素。如果你需要它提供百分比,然後將'position:absolute;'添加到'body'風格 –
@SaqibAmin min-height在谷歌瀏覽器中工作得很好。 – frosty
我只是重新確認了一個空文檔的樣式,你必須添加'position:absolute;'以便按照你想要的方式工作 –