前言:
上周天的時候有個學長找我幫忙做三張頁面,因為沒有數據交換之類的,只是單純的前端頁面,想著好久沒做東西, 看書都看煩了,所以就接了也當是練手。之前因為沒有系統的看書,所以其實很多問題都考慮的不全面,屬于知其然不知其所以然的狀態,雖然現在也還有很多要學的東西,但是知道自己的不足總比不知道強吧?而且這也算是一種進步?總之,遇到各種問題,然后我發現問題主要分為兩類,一:我自己知識點不夠所以不知道怎么解決的,這種問題大多求問度娘或者問大神是可以搞定的;二:屬于確實是現階段技術存在漏洞的,不論是還沒能實現的、實現了但存在歧義或沖突的皆在此列。而就我這次做的頁面我遇到最大的問題就是瀏覽器兼容性的問題,有了解決方法的就在此和大家分享,希望能夠拋磚引玉,我也能學到更多的知識,謝謝。
正文:
1.遇到問題:當前瀏覽器為ie7及以下版本
解決思路:用一個div覆蓋,讓用戶不能看到正常頁面呈現的內容
實現方法:將正常是顯示內容的div的display屬性設置為none,將覆蓋div的display屬性設置為block(PS:在其中可以加入瀏覽器下載鏈接,讓用戶盡快正常瀏覽頁面)
2.遇到問題:ie8中不能實現圓角,因為ie8不能很好的支持css3
解決思路:下載PIE使得ie8支持css3中的圓角
實現方法:這里的實現方法就不細說了,下載然后“behavior: url(path/PIE.htc);”把路徑更改了就能夠訪問了,說一下需要注意的幾點問題:
(1)這個引用一定要放在html文件里面,而且路徑也是相對于引用的html文件而言的,放在css文件里面不會有效果
(2)如果發現引用成功之后,需要圓角的對象消失了,不要方,去洗個澡出來就好了,親測
開玩笑的,我確實去洗了個澡但是并沒有出現,所以代碼出現BUG什么的,求神拜佛到底是沒用?。〝偸郑?,從頭調了一遍,又去百度了一下,發現問題了,是因為z-index的緣故,但只 設置一個z-index沒有效果,哦~原來它的position屬性不能是static即默認值,ok,設置position為relative就ok啦,完美的圓角在ie8就實現啦~(在此我真誠的感謝寫出PIE的工程師 們確實是因為你們的努力才讓我如此輕松的實現了我想要的效果,康桑阿米達~)
3.遇到問題:依然是ie8,不能支持css3中的@media screen and (....)實現響應式布局
解決思路:沒辦法,誰讓它是磨人的小妖精呢?(聳肩)單獨寫一個js文件獲取屏幕寬度,然后再分別添加對應樣式
實現方法:“<!--[if lt ie9]><script type='text/javascript' src='path'></script> <![endif]-->”放在html中,然后在引入的js文件中實現就ok了。說一個期間遇到的痛苦的事情給大家樂一樂,我搞了半天,發現莫名其妙就是不行,去網上找了各個大神的代碼來,一一對照就是不行!怎么能不行呢,這是多么傷自尊的事情啊。然后發現,居然是因為在"ie9"和“>”之間多了一個空
(手動再見)。不過調出BUG之后那種成就感還是有的哈,就是知道是因為這個原因,有種“讓我想先殺自己100遍好了”的感覺。
js代碼貼在下面,其實原理很簡單。主要是其中有innerWidth和clientWidth的一些小區別,如果有疑問的話網上有很多大神的詳細解析可以搜來看看。
新聞熱點
疑難解答