滿心歡喜地寫代碼,最后測試兼容性的時候發現Logo圖片在IE8下特別大。明顯是background-size在ie8一下不兼容。
我懂得,IE8還是個孩子,我就加幾句你獨有的代碼讓你兼容吧,司空見慣了:
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../img/logo.png', sizingMethod='scale');
然后發現logo變得十分華麗(奧義·雙重logo):
明顯是ie8兩種background屬性設置都同時支持,把一個圖片加載了兩次。以前沒有發現,是因為以前的圖片並不透明,兼容語句引入的圖片完美覆蓋原來的圖片,所以沒有發現問題。現在的logo圖片背景圖片是透明的,所以疊一起了。
因此我們引用另外一種方法,引入火腿腸文件(.htc)來進行hack,強行讓ie8支持background-size屬性。簡單來說,就是引入js文件來對圖片大小進行配置。
使用的htc文件的background-size-polyfill項目git地址:https://github.com/louisremi/background-size-polyfill/blob/gh-pages/backgroundsize.min.htc
然后在css文件里面引用語句,注意url是相對於引用css文件的html的路徑:
/*IE8 圖片透明不可用filter*/
-ms-behavior: url(../htc/backgroundsize.min.htc);
behavior:url(../htc/backgroundsize.min.htc);
破費解決!小僵屍你學到了嗎!