摘要:不知道大家對有什么看法很多人在說要兼容的理由的時候總是用百度的調查指數其實有一個問題百度中有很大一部分可能是這類的瀏覽器必須退出歷史舞臺并且我們還要和設計做出表態不能無限制搞出新設計長久以來有展示頁面也有企業應用頁面但是都有一個問題被限制了
不知道大家對ie8有什么看法
很多人在說ie8要兼容的理由的時候總是用百度的調查指數 其實有一個問題 百度中ie8有很大一部分可能是360這類的瀏覽器
ie8必須退出歷史舞臺 并且我們還要和設計做出表態 不能無限制搞出新設計
長久以來web 有 展示頁面 也有企業應用頁面 但是都有一個問題 被限制了加載資源總數
有的時候我在想web開發者真牛 用比別人少得資源完成比別人多的功能
不要說android swift難
ie8 js加強的問題 es5
es5-shim
es5-sham
必須的
ie8 dom感謝 webreflection
ie8
dom4
dom4中classlist必須啊
ie8 document.querySelectorie8 document.querySelector 無法使用css3 selector
為了提供css :last-of-type 支持 其實css3大部分都可以改寫方法支持 不過沒必要
我寫了個polyfill 用來支持 :last-of-type
我可以保證絕對沒測試過 目前只確保我用的幾個格式可以 只是提供思路(function () { "use strict"; var _querySelector = document.querySelector; try { // Can"t be used with css3 selector in IE < 9 _querySelector.call(document, "head *:last-child"); } catch (e) { // Fails in IE < 9 var preSelector = ""; var afterSelector = ""; document.querySelector = function(selector) { var par = ":last-of-type"; if (selector.indexOf(par) > -1) { var selRex = new RegExp("([ws.#])+(?="+par+")", "g"); preSelector = selector.match(selRex); if (!preSelector) { return null; } var allList = document.querySelectorAll(preSelector); if (!allList || allList.length < 1) { return null; } var lastEle = allList.item(allList.length - 1); afterSelector = selector.replace(preSelector, "").replace(par, "").trim(); if (afterSelector != "") { return lastEle.querySelector(afterSelector); } return lastEle; } return _querySelector.call(document, selector); } } }());ie8 css加強問題
如果你有個css預處理器 完全可以在處理的時候 把內容以json字符串的格式統一放到一個元素的font-family里嗎
postcss 還是實現簡單點 sass有點玩的花了 然而postcss沒時間寫具體實現比如我喜歡使用sass
我自己就用這種方案解決了vw vh的問題 而且幾乎不用什么等待 只會閃一下
$polyfill: () !global; @mixin set-value($selector, $map: ()) { $polyfill: map-deep-set($polyfill, $selector, $map) !global; @each $key, $value in $map { #{$key}: #{$value} } } @mixin easy-set($map) { @include set-value("#{&}", $map); } $setUnit-debug: false !global; @function setUnit($val, $parentWidth, $unit) { @if $setUnit-debug { @return $val + px; } @else { @return ($val / $parentWidth) * 100 + $unit; } } @function vw($unit) { @return setUnit($unit, $designWidth, vw); } @function vh($unit) { @return setUnit($unit, $designHeight, vh); } @mixin polyfill() { .item14 { .p { @include easy-set(( padding-left: vw(91), padding-right: vw(91), margin-bottom: vh(69) )); } .intro1 { @include easy-set(( margin-top: vh(201) )); } input { @include easy-set(( height: vw(80), line-height: vw(80), font-size: vw(33), padding: vw(20), border-radius: vw(20) )); } textarea { @include easy-set(( height: vw(220), line-height: vw(60), font-size: vw(33), padding: vw(20), border-radius: vw(20) )); } .btn { @include easy-set(( width: vw(306), height: vw(83), font-size: vw(40), border-radius: vw(20), margin-top: vh(136) )); } } } @include polyfill(); @include json-encode($polyfill);
大概思路就是使用sass將需要更改的selector信息組成json字符串放置到head font-family里
這樣可以隨時保持更新 加快速度 js讀取相關json 再一個一個添加上去 不限定什么selector 目前我使用querySelectorAll 速度還是有點慢 不過只需要一閃一下就可以轉變
var content = window.getComputedStyle( document.querySelector("head") ).fontFamily.replace(//g, "").replace(/"/g, ""); var viewportwidth = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); var viewportheight = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); function rel(propval, unit) { return parseFloat(propval.replace(unit, "")); } function cal(propval) { if (typeof propval != "string") { return propval; } if (propval.indexOf("vw") > -1) { return viewportwidth * rel(propval, "vw") / 100 + "px"; } else if (propval.indexOf("vh") > -1) { return viewportheight * rel(propval, "vh") / 100 + "px"; } else { return propval; } } function setVwStyle(ele, cssprops) { for (var csspropkey in cssprops) { ele.style[csspropkey] = cal(cssprops[csspropkey]); } } var parseobj = ( new Function( "return (" + content + ");" ) )(); for (var key in parseobj) { var elements = Array.prototype.slice.call(document.querySelectorAll(key)); if (elements) { for (var i = 0; i < elements.length; i++) { console.dir(elements[i]); setVwStyle(elements[i], parseobj[key]); } } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78270.html
摘要:本文將針對使用生態開發完成的網站,以版本為基礎兼容目標,實現全功能正常使用的全面兼容解決方案。這樣做的目的,是逐步減少全局性方法,使得語言逐步模塊化。此外,使用這個,一旦頁面不處于瀏覽器的當前標簽,就會自動停止刷新。 前言 背景情況 vue - 2.5.11 vue-cli 使用模板 webpack-simple http請求:axios Vue 官方對于 ie 瀏覽器版本兼容情...
摘要:官方的意思是項目可以在以上的版本中運行但其實使用構建的項目也還是不能在以上的版本中運行下面就來講如何在以上版本中運行安裝在項目入口文件,如本項目中的文件中引用修改配置文件到此編譯項目之后該項目就可以成功在以上的瀏覽器中打開 showImg(https://segmentfault.com/img/bVbkQJ9?w=662&h=172);vue官方的意思是vue項目可以在ie8以上的i...
摘要:文中的一些方法來源于我的有出售請大家自行拷貝粘貼顏色要使用代詞加數字大小形式數字規格顏色變量不許由或者方法計算得出項目顏色基于配色基礎色庫設計師都會配出來項目色庫需要項目去改變設計師文字和前端頁面開發者文字必須為同一類 文中sass的一些方法 來源于我的sassstd zhilizhili-mei zhilizhili-ui npm 有出售 請大家自行拷貝粘貼 showImg(ht...
摘要:文中的一些方法來源于我的有出售請大家自行拷貝粘貼顏色要使用代詞加數字大小形式數字規格顏色變量不許由或者方法計算得出項目顏色基于配色基礎色庫設計師都會配出來項目色庫需要項目去改變設計師文字和前端頁面開發者文字必須為同一類 文中sass的一些方法 來源于我的sassstd zhilizhili-mei zhilizhili-ui npm 有出售 請大家自行拷貝粘貼 showImg(ht...
摘要:文中的一些方法來源于我的有出售請大家自行拷貝粘貼顏色要使用代詞加數字大小形式數字規格顏色變量不許由或者方法計算得出項目顏色基于配色基礎色庫設計師都會配出來項目色庫需要項目去改變設計師文字和前端頁面開發者文字必須為同一類 文中sass的一些方法 來源于我的sassstd zhilizhili-mei zhilizhili-ui npm 有出售 請大家自行拷貝粘貼 showImg(ht...
閱讀 1808·2021-11-23 09:51
閱讀 1268·2021-11-18 10:02
閱讀 963·2021-10-25 09:44
閱讀 2099·2019-08-26 18:36
閱讀 1619·2019-08-26 12:17
閱讀 1146·2019-08-26 11:59
閱讀 2746·2019-08-23 15:56
閱讀 3350·2019-08-23 15:05