min-height:100px; height:auto;的用法
總結:min-height:100px; height:auto;的用法
1、IE6有個BUG,就是如果指定了一個盒子的高度,但裡面內容又溢位了,那這個盒子的高度則會失去作用,盒子的高度會隨著內容的增長而自動增長
(即內容不會溢位,而是把盒子撐大)
2、 IE7.0,8.0,FF如果在高度的方向內容溢位,它下面的弟弟元素會和上面的內容交疊在一起
(當內容少於height:100px;的高度時,不用加min-height:100px;height:auto;各瀏覽器的效果都是相同的)
CSS程式碼
<style type="text/css">
<!--
#one{
height:100px;
width:300px;
background:#ccc;
border:1px blue solid;
font-size:12px;
}
#two{
height:100px;
width:300px;
background:#0CF;
border:1px blue solid;
font-size:12px;
}
-->
</style>
</head>
<body>
<div id="one">
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
</div>
<div id="two">
<p>22222222222222</p>
<p>22222222222222</p>
<p>22222222222222</p>
<p>22222222222222</p>
<p>22222222222222</p>
<p>22222222222222</p>
<p>22222222222222</p>
<p>22222222222222</p>
</div>
</body>
如下圖所示
IE6.0顯示效果
IE7.0顯示效果
IE8.0,FF顯示效果
為了讓各瀏覽器的盒子高度隨內容高度的增加而增長
我們寫程式碼如下(只要在原始碼的基礎上加min-height:100px !important;
height:auto!important;)
<style type="text/css">
<!--
#one{
height:100px;
min-height:100px !important;
height:auto!important;
width:300px;
background:#ccc;
border:1px blue solid;
font-size:12px;
}
#two{
height:100px;
width:300px;
background:#0CF;
border:1px blue solid;
font-size:12px;
}
-->
</style>
</head>
<body>
<div id="one">
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
<p>111111111111111</p>
</div>
<div id="two">
<p>22222222222222</p>
<p>22222222222222</p>
<p>22222222222222</p>
<p>22222222222222</p>
<p>22222222222222</p>
<p>22222222222222</p>
<p>22222222222222</p>
<p>22222222222222</p>
</div>
</body>
測試後IE6.0,7.0 ,8.0 FF各瀏覽器盒子高度隨內容高度的增加而增長
如下圖所示:
但仔細測量各瀏覽器下每個盒子的高度,我們發現各不相同(這個問題還沒有解決)
IE6.0,7.0總高度如下圖
IE8.0,FF總高度如下圖
問題的解決方法:一定將height:880px;放在最後寫。
<title>無標題文件</title>
<style type="text/css">
#left_right{
width:968px;
height:auto;
}
#left{
width:743px;
background:green;
height:auto !important;
min-height:880px;
height:880px;
float:left;
}
#right{
float:right;
width:221px;
background:red;
height:auto !important;
min-height:150px;
height:150px;
}
</style>
</head>
<body>
<div id="left_right">
<divid="left">dfdf</div>
<divid="right">sdfd</div>
</div>
</body>
</html>
關於div高度自適應問題,相容IE和火狐
在此,並不是指div的高度可以簡單的自動調整。而是指在該div中沒有置放內容的情況下,至少要保持這個div的高度為多少,而有內容的時候,又會隨著內容的多少而自動調整。同時,對IE或是FF等瀏覽都可以相容的。舉個例項:
div要求至少高度需要200px。也就是說,即使div中沒有任何內容,高度也需要保持在200px;當DIV中的內容高度超過200px時,則該div會自動調節高度,而且又相容各瀏覽囂。怎麼解決呢?
對於初學者來說,可能想到的就是min-height:200px這個和height:auto這樣的寫法了。雖然這樣寫法用IE瀏覽器瀏覽是正常的,可是如果用火狐瀏覽囂一測試一下,就知道不相容而達不到預想的效果了。為什麼會這樣呢?原來是因為火狐瀏覽器此時不以height:auto這個執行為標準的。那要加上什麼屬性才可以讓兩個瀏覽器都正常去解讀css呢?辦法就是加上height:auto!important這個重要屬性。所以答案是:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312" />
<meta name="Author"content="Div+CSS專業網頁佈局,www.divss.com" />
<meta name="keywords"content="div+css,網頁佈局,jpg切割佈局,網頁切割css,wap頁面佈局,網站重構"/>
<title>div+css自動調整高度</title>
</head>
<body>
<divstyle="width:auto;height:auto!important;min-height:200px;height:200px;background-color:#f4f4f4;font-size:12px">
此層最少高度為200px,也就是說,即使div中沒有任何內容,高度也會保持在200px,當DIV中的內容超過500px時,則自動增加DIV的高度。這個對IE或是FF等瀏覽器都會相容的。(背景色是為了方便檢視效果用的)<br/>
</div>
</body>
</html>
------------------------------------------------------------------------------------------------------------------------------------------
需要注意的是:在針對一個需要定高度,同時又希望能高度隨內容的變化自適應的話,寫發的順序要注意;下面是正確的定義順序;
height:auto!important; min-height:388px; height:379px;
DIV有背景顏色的時候,DIV被撐開但是背景顏色沒有被撐開,只要加上如下程式碼就可以了
overflow:hidden;