自適應布局postcss px2rem

2021-10-01 16:41:38 字數 2283 閱讀 7114

實現原理

自適應布局是前端一直都存在的問題,通常常用的技術有**查詢@media screen and (max-width:1366px),還有rem布局,通過改變頁面根元素font-size大小來實現自適應布局。可是都逃不過要計算的命運。有沒有什麼方法繞過這些花花繞,就寫px也能實現自適應布局呢?答案是肯定的,有方案理論上就能實現,這樣一來無論是寫自適應專案,還是修改原有專案,都變得十分方便。下面看看webpack打包scss的過程:

首先瀏覽器是無法解析scss**的,在專案工程裡,通過webpackloader將檔案打包成瀏覽器可執行的**。比如scss,首先載入到scsssass檔案時,就會通過sass-loader打包成css,然後在通過css-loader打包,具體配置**如下:

通過這個可以想到,如果有乙個loader,能夠在這些css檔案打包前,將檔案裡面的px計算成rem,然後在進行解析,這樣就可以直接在頁面中使用px了。主角出場了postcss-px2rem,可實現這個功能,下面看看在vue中的具體配置

**分析(這段無需配置)

使用webpack新建vue專案時,已經安裝好了這個loader,在build資料夾下utils(配置loader的地方)面有這樣一段**

return 

}),sass: generateloaders('sass', ),

scss: generateloaders('sass'),

stylus: generateloaders('stylus'),

styl: generateloaders('stylus')

}

generateloaders函式中有這樣一句usepostcss

const postcssloader = 

}const loaders = options.usepostcss ? [cssloader, postcssloader] : [cssloader]

然後在通過styleloaders構造rules格式的loader,所以我們只要把webpack.dev.conf.jswebpack.prod.conf.js檔案中使用styleloaders函式的引數加乙個usepostcss:true就可以(預設就有)

exports.styleloaders = function (options) )

} return output

}

配置檔案(報錯的話記得安裝postcss-px2rem),在vue-loader.conf.js配置一下,vue-loader轉換

module.exports = )],

}

最後一步,監聽視窗大小變化,動態設定font-size,定義乙個js檔案引入main.js

// basesize 要跟vueloade配置的一樣

let basesize = 100

function setfontsize ()

// 初始化

setfontsize()

// 監聽視窗變化

window.onresize = function ()

注意:①不能將大小直接寫在vue檔案的style

②無需轉換rem可以寫px或者px

自適應布局

請你說一說你知道的所有web布局方式?1.浮動 float left right 2.inline block display inline block 行內塊級 3.flexible box 彈性盒子 display flex 4.grid display grid 5.絕對 相對布局 posit...

CSS布局 自適應布局

網易雲課堂學習筆記二 自適應布局 1.float absolute margin left right2.float overflow left right 產生bfc3.table left,right 預設均分 left margin失效 4.flex left right 由 定寬 自適應 類...

右邊自適應 左右布局 css左右自適應布局

如果有這麼乙個表單需求,前面是乙個名稱,中間是乙個表單,右側是乙個按鈕或者乙個字串。需要自適應布局,名稱為固定長度,右側也是固定,中間部分自適應整個width。先來看看html標籤1 6 年齡歲 首先,我想到的有這麼幾種display,乙個是inline block。於是css就變成這樣1.name...