SEARCH !!

2010/02/12

解決IE6不支援css min-width與min-height

min-width與min-height在css中是相當好用的語法,可以讓HTML元素最少仍保持一定的寬和高,

而需要時仍隨著元素的內容增加寬和高。

這麼好用的語法,偏偏IE 6不支援,不過說不支援也不精確,事實上IE6本身在指定height與width的值時,就具有min-width和min-height的特性,只是如果單純用height或width來指定,到了Firefox或IE 7時,又會把它當作是鎖死的值,不會因內容增加而擴大元素的box。


最小高度的解決
.div {
min-height:100px;
height: auto !important;
height: 100px;
}

最小寬度的解決
.div {
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的意思,

所以它還是只吃第三行的語法,這樣就可以相安無事,皆大歡喜。

沒有留言:

張貼留言