min-width與min-height在css中是相當好用的語法,可以讓HTML元素最少仍保持一定的寬和高,而需要時仍隨著元素的內容增加寬和高。
這麼好用的語法,偏偏IE 6不支援,不過說不支援也不精確,事實上IE6本身在指定height與width的值時,就具有min-width和min-height的特性,只是如果單純用height或width來指定,到了Firefox或IE 7時,又會把它當作是鎖死的值,不會因內容增加而擴大元素的box。
解決的方法先看語法
最小高度的解決
.Elm {
min-height:100px;
height: auto !important;
height: 100px;
}
最小寬度的解決
.Elm {
min-width:100px;
width: auto !important;
width: 100px;
}
裡面的祕訣,是先利用較新的瀏覽器認得min-width/height,因此透過它來指定值,而IE舊版的瀏覽器則是透過width/height取值。
不過這裡有個衝突,就是新的瀏覽器也認得width/height,因此min-width/height會被width/height改寫,解決的辦法,就是中間那一行
height: auto !important;(以及width: auto !important;)
由於它標示!important,所以下面那行height無法取代上面這一行,間接變成新的瀏覽器忽視掉第三行,而讓高度不受第三行影響。
另外由於舊的IE瀏覽器不認得 min-height和 !important的意思,所以它還是只吃第三行的語法,這樣就可以相安無事,皆大歡喜。