Css的calc函數在實現自適應布局時非常有用,但是它并不兼容IE瀏覽器,這給開發者帶來了很大的困擾。下面介紹一些解決辦法。
一、使用-webkit-calc和-moz-calc來代替calc函數。這種方法在webkit和firefox瀏覽器中兼容性較好,但是并不能解決IE瀏覽器的兼容問題。
div{ width: -webkit-calc(100% - 50px); width: -moz-calc(100% - 50px); }
二、使用JavaScript來計算元素的寬度。將元素的寬度設為100%并通過JavaScript計算出減去50px后的寬度,再將結果賦值給元素的寬度。這種方法雖然比較復雜,但是可以在所有瀏覽器中實現兼容。
var element = document.getElementById("example"); var width = element.parentNode.offsetWidth - 50; element.style.width = width + "px";
三、使用CSS表達式eval來計算元素的寬度。CSS表達式eval是一種非標準的CSS語法,在IE瀏覽器中有效。但是這種方法被廣泛認為是一種陳舊的技術,因為它會導致性能問題。
div{ width: expression(eval(this.parentNode.offsetWidth - 50)); }
以上是三種解決CSS的calc函數在IE瀏覽器中的兼容性的方法,開發者可以根據自己的項目需求來選擇最適合自己的方式。