目前網站中使用CSS的瀏覽器版本眾多,其中包括被廣泛詬病的老古董瀏覽器IE6。由于IE6的渲染引擎對CSS的解析能力較弱,導致CSS樣式無法按照所設定的尺寸來渲染,而變得十分奇怪。這就是所謂的IE6被撐開的問題。
.box { width: 200px; height: 200px; background-color: red; margin: 20px; float: left; }
以上為一個簡單的CSS樣式,用來設置一個紅色的正方形盒子,但在IE6瀏覽器中卻有可能出現撐開的情況:盒子的高度會比預期的高出好幾倍,而且左右兩邊還留白。這是因為IE6對CSS中的float屬性解析不完全,導致元素被錯誤地加上了一個額外的高度和寬度。
要解決這個問題,我們首先可以嘗試使用hack代碼來單獨為IE6設定不同樣式:
* html .box { height: 200px; overflow: hidden; }
上面的代碼是一個古老而常用的IE6 hack。使用這種代碼意味著只有在IE6中才會生效,而其他瀏覽器會忽略它。這里的overflow:hidden用來去掉IE6多出來的白邊,而height則用來將盒子高度限定為預期的200像素。
不過,使用hack代碼并不是一個理想的解決方案。因為hack代碼往往難以閱讀和維護,而且無法在一些情況下起作用。因此,對于IE6被撐開的問題,我們最好的解決方案是盡量避免使用float屬性和其它IE6無法識別的CSS語句。
上一篇css id找父元素
下一篇css3實現圖片漸變