polyfill的準確意思為:用於實現瀏覽器並不支援的原生api的**。
例如,queryselectorall是很多現代瀏覽器都支援的原生web api,但是有些古老的瀏覽器並不支援,那麼假設有人寫了庫,只要用了這個庫, 你就可以在古老的瀏覽器裡面使用document.queryselectorall,使用方法跟現代瀏覽器原生api無異。那麼這個庫就可以稱為polyfill或者polyfiller。
那麼問題就來了。jquery是不是乙個polyfill?答案是no。因為它並不是實現一些標準的原生api,而是封裝了自己api。乙個polyfill是抹平新老瀏覽器 標準原生api 之間的差距的一種封裝,而不是實現自己的api。
已有的一些polyfill,如 polymer 是讓舊的瀏覽器也能用上 html5 web component 的乙個polyfill。flashcanvas是用flash實現的可以讓不支援canvas api的瀏覽器也能用上canvas的polyfill。
這裡有一堆polyfills:html5 cross browser polyfills總結:
一般情況下html5shiv、respond這2個搭配使用。
modernizr 包括那2個,並且比他們更強大一些。
//解決方案:
var page =
;page.x =
event
.x ?
event
.x :
event
.pagex;
page.y =
event
.y ?
event
.y:event
.pagey;
小程式相容問題
問題1 小程式ios端的margin bottom無效。解決辦法 用padding bottom替換。問題2 小程式ios端的日期為nan nan.原因 一般日期為 2020 08 08 08 08 08 格式,ios日期只支援 2020 08 08 08 08 08 解決辦法 運用正則轉為需要的i...
關於IE相容問題
針對ie6 7 8 可以分為兩種模式 怪異模式 quirks mode 和標準模式 standards mode 在ie6以下版本下顯示怪異模式,border和padding都包含在width中 使用ie7編譯 也可以引進相應的js外掛程式去解決html5和css3的問題,但是只能在小範圍內或者單頁...
最新相容問題總結
相容問題解決方案。1 在做 之前,先把下邊三句meta加入頁面。2 pc端相容瀏覽器不能用 html5 新增的標籤。3 偽元素也不能用,在移動端可以用。4 如果想針對某乙個瀏覽器,設定單獨的屬性值,可以 如 class 針對 ie7特製識別的 css樣式 html class 針對ie8特製識別的c...