(13/24) css进阶:自动处理css3属性前缀

什么是属性前缀

为了浏览器的兼容性,有时候我们必须加入-webkit,-ms,-o,-moz这些前缀。目的就是让我们写的页面在每个浏览器中都可以顺利运行。

例如:

transition: width 2s;
-moz-transition: width 2s;  /* Firefox 4 */
-webkit-transition: width 2s;   /* Safari 和 Chrome */
-o-transition: width 2s;    /* Opera */

使用插件来帮助我们进行前缀的自动添加,会大大提升我们的开发效率,提供编码效率。

此次是关于如何通过postcss-loader给css3属性自动添加前缀的。

PostCSS

PostCSS 的主要功能只有两个:第一个就是前面提到的把CSS解析成 JavaScript可以操作的 抽象语法树结构(Abstract Syntax Tree,AST),第二个就是调用插件来处理 AST并得到结果。

PostCSS一般不单独使用,而是与已有的构建工具进行集成。PostCSS 与主流的构建工具,如 WebpackGrunt 和Gulp 都可以进行集成。完成集成之后,选择满足功能需求的 PostCSS插件并进行配置。

postcss-loader 用来对.css文件进行处理,并添加在 style-loadercss-loader 之后。通过一个额外的postcss方法来返回所需要使用的PostCSS插件。require(‘autoprefixer‘) 的作用是加载 Autoprefixer插件。

1.安装

需要安装两个包postcss-loaderautoprefixer(自动添加前缀的插件)

npm install --save-dev postcss-loader autoprefixer

2.新建postcss.config.js

postCSS推荐在项目根目录(和webpack.config.js同级),建立一个postcss.config.js文件。

postcss.config.js:

module.exports = {
    plugins: [
        require(‘autoprefixer‘)
    ]
}

这就是对postCSS一个简单的配置,引入了autoprefixer插件。让postCSS拥有添加前缀的能力,它会根据 can i use来增加相应的css3属性前缀。

3.配置可分离css的loader

postcss.config.js配置完成后,编写loader配置。

const extractTextPlugin = require("extract-text-webpack-plugin")
{
    test: /\.css$/,
    use: extractTextPlugin.extract({
        fallback: ‘style-loader‘,
        use: [
            { loader: ‘css-loader‘, options: { importLoaders: 1 } },
            ‘postcss-loader‘
        ]
    })
}

分离插件使用

4.给src/index.css下#img添加一些css3样式。

transform:rotate(45deg);
 box-shadow: 1px 1px 0 #000000;

5.打包

在终端使用webpack命令进行打包.

webpack

结果为,自动加上css3属性前缀。

原文地址:https://www.cnblogs.com/wfaceboss/p/10125311.html

时间: 2024-11-05 06:06:49

(13/24) css进阶:自动处理css3属性前缀的相关文章

如何处理CSS3属性前缀(转载)总结

今天闲来无聊,重新来说说CSS3前缀的问题.在春节前和@一丝姐姐说起Sass中有关于gradient的mixins.姐姐说: 为什么还要用mixin呢?为什么不使用Autoprefixer?使用Autoprefixer,只需要输入一行代码,编译器帮你做了一切,还纠结个毛mixin. 姐姐的一句话让我汗颜,我还在思考着如何让Sass来写Gradient,或者类似这样需要带前缀的CSS3属性.也这样让我在思考,那么有了Autoprefixer这样的后处理,Sass中有关于CSS3的mixins是不是

如何处理CSS3属性前缀

CSS3的属性为什么要带前缀 使用过CSS3属性的同学都知道,CSS3属性都需要带各浏览器的前缀,甚至到现在,依然还有很多属性需要带前缀.这是为什么呢? 我的理解是,浏览器厂商以前就一直在实施CSS3,但它还未成为真正的标准.为此,当一些CSS3样式语法还存在波动时,它们提供针对流星器的前缀.现在主要流行的浏览器内核主要有: Trident内核:主要代表为IE浏览器 Gecko内核:主要代表为Firefox Presto内核:主要代表为Opera Webkit内核:产要代表为Chrome和Saf

[css]需警惕CSS3属性的书写顺序

转载张鑫旭:http://www.zhangxinxu.com/wordpress/2010/09/%E9%9C%80%E8%AD%A6%E6%83%95css3%E5%B1%9E%E6%80%A7%E7%9A%84%E4%B9%A6%E5%86%99%E9%A1%BA%E5%BA%8F/ 一.不同书写顺序示例 首先是比较聪明和值得推荐的写法: .not-a-square { -webkit-border-radius: 10px; -moz-border-radius: 10px; borde

(14/24) css进阶:(入门)去除冗余的css

在平时的项目开发中,我们会引入一些框架,比如:Bootstrap,但是在项目中通常我们只使用它的一小部分,还有部分是冗余的.更有甚有时候需求更改,带来DOM结构的更改,这时候我们可能无暇关注CSS样式,会造成很多冗余的CSS.我们得想办法消除冗余的CSS,如果靠人工去剔除,吃力又容易出错,因此,此节我们来学习一下用webpack如何消除未使用的CSS. PurifyCSS 使用PurifyCSS可以大大减少CSS冗余,消除框架中未使用的CSS,初步达到按需引入的效果. 1.如何在webpack中

(11/24) css进阶:Less文件的打包和分离

写在前面:在前面我们对css打包和分离进行了描述.此节我们开始学习如何对less文件进行打包和分离. Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量.Mixin.函数等特性,使 CSS 更易维护和扩展.Less 可以运行在 Node 或浏览器端.Less知识学习 1.Less文件的打包处理 1.1 在src/index.html文件中新增一个标签,样式采用less编写. <div id="less_part">less</div> 1.

(12/24) css进阶:sass文件的打包和分离

1.安装sass打包的loader 这里需要 在项目目录下用npm安装两个包.node-sass和sass-loader,(也可以使用cnpm安装) 因为sass-loader依赖于node-sass,所以需要先安装node-sass 1.1 node-sass npm install --save-dev node-sass 1.2 sass-loader npm install --save-dev sass-loader 注意:在用npm安装时,这个loader很容易安装失败,最好使用cn

css3浏览器私有属性前缀使用详解

什么是浏览器私有属性前缀 CSS3的浏览器私有属性前缀是一个浏览器生产商经常使用的一种方式.它暗示该CSS属性或规则尚未成为W3C标准的一部分. 以下是几种常用前缀 -webkit- -moz- -ms- -o- -khtml-(现在基本都没有用了,被-webkit-取代) 举例来说,一个CSS3圆角的代码是: -webkit-border-radius: 50%; -o-border-radius: 50%; -moz-border-radius: 50%; -ms-border-radius

【CSS进阶】伪元素的妙用2 - 多列均匀布局及title属性效果

最近无论是工作还是自我学习提升都很忙,面对长篇大论的博文总是心有余而力不足,但又不断的接触学习到零碎的但是很有意义的知识点,很想分享给大家,所以本篇可能会很短. 本篇接我另一篇讲述 CSS 伪元素的文章: [CSS进阶]伪元素的妙用–单标签之美,看完本文觉得有意思的可以再去看看上一篇,分享了一些伪元素的妙用. 正文从这里开始: 哪些标签不支持伪元素? 我也是才知道这个姿势.为了不误导读者,就赶紧补充一下. 伪元素虽然强大,但是还是有一些特定的标签是不支持伪元素 before 和 after 的.

【css】css3属性

1. 无需区分webkit moz等前缀的css3属性 text-shadow background 2. 需要区分前缀的css属性 border-radius box-shadow text-stroke background-size text-overflow box-flex transition resize