rem適配flexible.js解決方案

1某寶方案

1.1 某寶的flexible.js

// i6為基準(zhǔn)悴侵,設(shè)計(jì)圖是i6二倍圖,二倍圖中32px = 1rem, 我在variables.less 寫(xiě)了變量 @baseFontSize 1rem=37.5px(蘋(píng)果6下)
// JavaScript Document
(function flexible (window, document) {
  var docEl = document.documentElement;     //獲取文檔根節(jié)點(diǎn)并保存到變量docEl中(相當(dāng)于獲取到html對(duì)象)
  var dpr = window.devicePixelRatio || 1;   //獲取像素比挽唉,如果window.devicePixelRatio為false是dpr為1,如果window.devicePixelRatio大于1藐翎,那么dpr賦值取大的數(shù)

  function setBodyFontSize () {
    if (document.body) { //獲取到body對(duì)象是否存在橘忱,個(gè)人覺(jué)得啰嗦
      document.body.style.fontSize = (12 * dpr) + 'px';
    }  
    else {
      document.addEventListener('DOMContentLoaded', setBodyFontSize);
    }
  }
  setBodyFontSize();

  // set 1rem = viewWidth / 10
  function setRemUnit () {
    var rem = docEl.clientWidth / 10
    docEl.style.fontSize = rem + 'px'
  }

  setRemUnit()

  // reset rem unit on page resize
  window.addEventListener('resize', setRemUnit)
  window.addEventListener('pageshow', function (e) {
    if (e.persisted) {
      setRemUnit()
    }
  })

  // detect 0.5px supports
  if (dpr >= 2) {
    var fakeBody = document.createElement('body')
    var testElement = document.createElement('div')
    testElement.style.border = '.5px solid transparent'
    fakeBody.appendChild(testElement)
    docEl.appendChild(fakeBody)
    if (testElement.offsetHeight === 1) {
      docEl.classList.add('hairlines')
    }
    docEl.removeChild(fakeBody)
  }
}(window, document))

1.2 .less 通過(guò)函數(shù)方式封裝,然后傳進(jìn)去名字和值(重點(diǎn))

.rem(@name,@px) {
    @{name}: unit(@px / 75, rem);
 }

2 本人方案

2.1本人設(shè)計(jì)的flexible.js方案

// vue: 在入口頁(yè)(定義Vue實(shí)例的頁(yè)面)將其引入即可
function setRem () {
  const baseSize = 16
  const scale = document.documentElement.clientWidth / 375
  // 設(shè)置頁(yè)面根節(jié)點(diǎn)字體大小
  document.documentElement.style.fontSize = (baseSize * Math.min(scale, 2)) + 'px'
}

// 初始化
setViewport()
setRem()

window.onresize = function () {
  setRem()
}

2.2 .less 文件使用

@baseFontSize: 32;


/* 通過(guò)函數(shù)方式封裝赡鲜,然后傳進(jìn)去名字和值 */
.rem(@name,@px) {
 @{name}: unit(@px / @baseFontSize, rem);
}


//使用
.page-item {
 margin: 0 auto;
 .rem(max-width,750);
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末空厌,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子银酬,更是在濱河造成了極大的恐慌嘲更,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件揩瞪,死亡現(xiàn)場(chǎng)離奇詭異赋朦,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)李破,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)宠哄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人嗤攻,你說(shuō)我怎么就攤上這事毛嫉。” “怎么了妇菱?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵承粤,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我闯团,道長(zhǎng)辛臊,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任房交,我火速辦了婚禮彻舰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己刃唤,他們只是感情好口猜,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著透揣,像睡著了一般济炎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上辐真,一...
    開(kāi)封第一講書(shū)人閱讀 49,036評(píng)論 1 285
  • 那天须尚,我揣著相機(jī)與錄音,去河邊找鬼侍咱。 笑死耐床,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的楔脯。 我是一名探鬼主播撩轰,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼昧廷!你這毒婦竟也來(lái)了堪嫂?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤木柬,失蹤者是張志新(化名)和其女友劉穎皆串,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體眉枕,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恶复,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了速挑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谤牡。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖姥宝,靈堂內(nèi)的尸體忽然破棺而出翅萤,到底是詐尸還是另有隱情,我是刑警寧澤伶授,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布断序,位于F島的核電站流纹,受9級(jí)特大地震影響糜烹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜漱凝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一疮蹦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧茸炒,春花似錦愕乎、人聲如沸阵苇。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)绅项。三九已至,卻和暖如春比肄,著一層夾襖步出監(jiān)牢的瞬間快耿,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工芳绩, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掀亥,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓妥色,卻偏偏與公主長(zhǎng)得像搪花,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子嘹害,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容