浏览器为什么会有兼容性问题
前言:
作為一位專業的前端開發人員,瀏覽器兼容性問題是我們必然會遇到的問題,今天就以我個人觀點來為大家說說個大瀏覽器的潔容問題。
簡單的來說就是個大瀏覽器使用的內核版本是不一樣的,有著具有自己的內核。其中不得不說ie6、7了。作為我們前端人員來說ie無疑成為我們前端開發人員的一大阻礙,有人就說ie是垃圾瀏覽器,是奇葩瀏覽器。而為什么還會用它呢,那是它在市場上占據著重要地位。其實在很早以前ie就占據了絕大部分的瀏覽器市場擁有者霸主地位,以谷歌,火狐為代表的瀏覽器商家為了爭奪市場,重新瓜分瀏覽器市場這塊大的蛋糕,于是就組織起來制定了w3cschool的這樣的一套規范來與ie來進行抗衡。就是這樣ie瀏覽器和w3c下的個大瀏覽器才會有這么多的兼容性問題。說到這里其實瀏覽器兼容性原因很簡單那是因為ie先于為w3c誕生。在w3c誕生之前ie就有著自己的的一套執行的標準。之所以以谷歌,火狐為代表的瀏覽器商家會指定一套屬于自己的標準,究其根源是為了爭奪市場的占有力。兩個字“利益”。其實ie并沒有錯,我們不能只看到事物的一面,還要看到實物的本質。用哲學的話來說,我們要從感性認識上升到理性認識透過事物的表象抓住事物的本質。可以看到在后來的ie8以后,ie為了在市場上生存下去,只有向w3c妥協。慢慢接近于為w3c的標準。
?
?
下面來說說CSS問題,因為一點點布局上的bug,可能導致整個頁面的錯位,在用戶看來這是極不專業的。
現在我就簡要說說我對CSS兼容問題的認識: 先說點Hack的知識(真正的高手是不用Hack的,但要成為高手必須通過Hack這一關)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | /* CSS屬性級Hack */ color:red; /* 所有瀏覽器可識別*/ _color:red; /* 僅IE6 識別 */ *color:red; /* IE6、IE7 識別 */ +color:red; /* IE6、IE7 識別 */ *+color:red; /* IE6、IE7 識別 */ [color:red; /* IE6、IE7 識別 */ color:red\9; /* IE6、IE7、IE8、IE9 識別 */ color:red\0; /* IE8、IE9 識別*/ color:red\9\0; /* 僅IE9識別 */ color:red \0; /* 僅IE9識別 */ color:red!important; /* IE6 不識別!important 有危險*/ /* CSS選擇符級Hack */ *html #demo { color:red;} /* 僅IE6 識別 */ *+html #demo { color:red;} /* 僅IE7 識別 */ body:nth-of-type(1) #demo { color:red;} /* IE9+、FF3.5+、Chrome、Safari、Opera 可以識別 */ head:first-child+body #demo { color:red; } /* IE7+、FF、Chrome、Safari、Opera 可以識別 */ :root #demo { color:red\9; } : /* 僅IE9識別 */ /* IE條件注釋Hack */ <!--[if IE 6]>此處內容只有IE6.0可見<![endif]--> <!--[if IE 7]>此處內容只有IE7.0可見<![endif]--> |
?
轉載于:https://www.cnblogs.com/fengdong/p/4842282.html
總結
以上是生活随笔為你收集整理的浏览器为什么会有兼容性问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode(16)题解--3Sum
- 下一篇: HTML5规范~