App下載

前端中常見的兼容性問題有哪些?如何解決?

猿友 2021-03-12 10:47:19 瀏覽數(shù) (7688)
反饋

當我們編寫了一個網(wǎng)頁,也就是常說的HTML文件,我們需要進行運行讓它以網(wǎng)頁形式展現(xiàn)出來。瀏覽器的不同可能會導致運行效果的不同,這就屬于兼容性問題。這篇文章 W3Cschool 小編來為大家解答一下前端中常見的兼容性問題有哪些?如何解決?

瀏覽器兼容性

兼容性問題的出現(xiàn),是因為瀏覽器內(nèi)核的不同,導致的解析差異。我們常見的瀏覽器內(nèi)核主要有兩種,分別是渲染引擎和js引擎。

最常見的瀏覽器內(nèi)核有四種:Trident,Gecko、Blink、Webkit

 IE 瀏覽器 Trident 內(nèi)核 
 Chrome 瀏覽器  Webkit 內(nèi)核,現(xiàn)在是 Blink 內(nèi)核
 Firefox 瀏覽器  Gecko 內(nèi)核,俗稱 Firefox 內(nèi)核
 safair 瀏覽器  Webkit 內(nèi)核
 Opera 瀏覽器  現(xiàn)在是 Blink 內(nèi)核
 360 瀏覽器 IE+Chrome 雙內(nèi)核 
 獵豹瀏覽器  IE+Chrome 雙內(nèi)核 
 百度瀏覽器  IE 內(nèi)核 
 QQ 瀏覽器  Trident(兼容模式)+Webkit(高速模式)

常見的兼容性問題:

  •  不同瀏覽器的標簽默認的外補丁( margin )和內(nèi)補丁(padding)不同。在不加樣式的情況下,margin 和 padding 差異較大。這是最常見的瀏覽器兼容性問題,但也是最好解決的一個。

如何解決: css 里增加通配符 ?* { margin: 0; padding: 0; }?

  •  塊屬性標簽設置了 float , 同時又設置 margin , 在 IE6 運行中,后面那一塊會被頂?shù)较乱恍小?/li>

如何解決:在 float 樣式標簽中加入 ?display:inline? 將其轉(zhuǎn)化為行內(nèi)屬性。

  •  當標簽的高度設置小于 10px,在 IE6、IE7 中會超出自己設置的高度。

 如何解決:給超出高度的標簽設置 ?overflow:hidden?,或者設定 line-height 的值小于你設置的高度。

  •  圖片默認有間距。當幾個 img 標簽放在一起的時候,有的瀏覽器會有默認間距,即使加了通配符也不起任何作用。

 如何解決:使用 float 為 ?img ?布局

  •  td 自動換行問題。table 寬度固定,td 會自動換行。

  如何解決:設置 table 樣式為? table-layout:fixed,td為word-wrap:break-word?。

  •  IE9一下瀏覽器不能使用 opacity

  如何解決:opacity: 0.5;filter: alpha(opacity = 50);filter: progid:DXImageTransform.Microsoft.Alpha(style = 0, opacity = 50);

  •  IE7以下版本 line-height 失效。在IE瀏覽器中,img 與文字放在一起時,line-height 不起作用。

  如何解決:兩者都設置為 ?float?。

  •  邊距重疊問題;當相鄰兩個元素都設置了 margin 邊距時,margin 將取最大值,舍棄最小值;

 如何解決:為了不讓邊重疊,可以給子元素增加一個父級元素,并將父級元素設置為?overflow:hidden?;

  •  cursor:hand 顯示手型在 safari 上不支持。

 如何解決:統(tǒng)一使用 ?cursor:pointer?。

  •  兩個塊級元素,父元素設置了overflow:auto;子元素設置了position:relative ; 且高度大于父元素,在 IE7 以下版本瀏覽器會被隱藏而不是溢出。

 如何解決:父級元素設置 ?position:relative?。

以上就是小編整理的常見的前端兼容性問題,以及兼容性問題的解決方案。更多前端的兼容性問題解決請學習 HTML 教程



0 人點贊