給css添加前綴(js,webpack)

給css添加前綴(js,webpack)

關(guān)于更多日常使用的公共類的操作方法,可以關(guān)注下小滑輪網(wǎng)站

代碼中某些地方添加。

在項(xiàng)目中,有時(shí)需要在某個(gè)情況下需要添加css前綴,這個(gè)時(shí)間一般會(huì)用js給css添加。下面提供一個(gè)通用方法,用來添加前綴。

/**
 * @desc 對(duì)css屬性針對(duì)不同瀏覽器加私有前綴
 * @desc 先計(jì)算下當(dāng)前瀏覽器支持那個(gè)前綴,支持哪個(gè),就增加那個(gè)前綴。并不是把所有的前綴。
 * style: 是字符串,例如: transform
 * return: 字符串 。例如: webkitTransform (駝峰模式,js插入css的屬性都是駝峰格式)
 */
function prefixStyle (style) {
    let vendor = (() => {
        let elementStyle = document.createElement('div').style
        let tranformNames = {
            webkit: 'webkitTransform',
            Moz: 'MozTransform',
            O: 'OTransform',
            ms: 'msTransform',
            standard: 'transform',
        }
        for (let key in tranformNames) {
            if (elementStyle[tranformNames[key]] !== undefined) {
                return key
            }
        }
        return false
    })()
    if (vendor === false) {
        return false
    }
    if (vendor === 'standard') {
        return style
    }
    return vendor + style.charAt(0).toUpperCase() + style.substr(1)
}

用webpack給項(xiàng)目整體添加css前

完成這個(gè)需要3步,

  1. 需要使用兩個(gè)插件(postcss-loader, autoprefixer),請(qǐng)用(npm或者yarn)下載這兩個(gè)插件。
  2. 需要更改webpack.config.js文件配置,里面會(huì)用到這兩個(gè)插件。

在css的解析處,添加postcss-loader

            rules: [
                {
                    test: /\.css$/,
                    use: ["style-loader", "css-loader", "postcss-loader"]
                }

在plugins 模塊,添加一個(gè)plugin (autoprefixer)

    plugins:[require('autoprefixer')]
  1. 在package.json 里需要添加browserslist。 這個(gè)是為了確定給什么版本的瀏覽器起作用。關(guān)于browserslist 的使用語法和規(guī)則,請(qǐng)看官網(wǎng),Browserslist 的數(shù)據(jù)都是來自Can I Use的。
"browserslist": [
    "Firefox > 20",
    "iOS >= 7",
    "ie >= 8",
    "last 5 versions",
    "> 5%"
  ]

小滑輪網(wǎng)站上還有其的工具函數(shù)

  1. 防抖
  2. 節(jié)流
  3. 字符串
  4. 正則
  5. ......

可以去看看,希望對(duì)你的開發(fā)有幫助~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容