[导读] 前端打包的工具有很多,我用的习惯的就是这个grunt,无论是你要在github上做开源,还是让自己的项目变得更易于维护,grunt都是首选。

前端打包的工具有很多,我用的习惯的就是这个grunt,无论是你要在github上做开源,还是让自己的项目变得更易于维护,grunt都是首选。

网上的安装教程非常多了,这里就只是介绍一下都有哪些好用的插件。

1:grunt-contrib-less

less,可以让css变得更简单,更易于维护,他可以定义常量,可以转换单位,还可以计算颜色,他用嵌套把我们从重复的排列选择器的漩涡中拯救出来。

所以如果你想成为一个好的前端,或者一个喜欢偷懒的人,那么,less、sass或者jade这些东西尽量涉猎一些,会对效率的提升帮助极大。

grunt-contrib-less很容易,用处就是把less转换成css,只需要注意一下,现在先不要压缩,因为我们还有很多事情要做。

2:grunt-autoprefixer

autoprefixer,他是我近期的发现,看到他我对我从前对付浏览器私有属性的方式感到羞愧。

大家一定对写css的时候的那些浏览器私有属性很恶心了,关键是谁都没有心情去背到底这个属性那个浏览器存在私有前缀,所以 webkit moz ms o 统统都要写上去,一条语句,写了5遍。

那么,有了autoprefixer,我们就不需要再兼顾他们了,或者说,autoprefixer会帮我们把这些做了。

比如我们在less里写:


  1. .test{
  2. transform:rotate(20deg);
  3. transition: 1s;
  4. background-image: linear-gradient(to bottom, #444444, #999999);
  5. }

那么生成的css就是:


  1. .test {
  2. background-image: -webkit-linear-gradient(top, #444, #999);
  3. background-image: linear-gradient(to bottom, #444, #999);
  4. -webkit-transition: 1s;
  5. transition: 1s;
  6. -webkit-transform: rotate(20deg);
  7. -ms-transform: rotate(20deg);
  8. transform: rotate(20deg);
  9. }

这样子的。美观大方。恩恩···

3:grunt-contrib-csslint

csslint ,他会帮我们查出一些语法上的错误,什么?css有什么语法错误。其实也不算是错误,算是一些不规范的写法吧。

比如说我写了:display:inline-block;float:left;

那么他就会报错给你说:

不过他需要一个.csslintrc的配置文件,这个网上都有,可以自己扩充或删减,因为有的错误,是没必要的。

4:grunt-csscomb

csscomb,他可以把你写的css按照最优的顺序排出来,便于阅读,而且也很规范,别人看到了这样的css文件会特别的舒服。

比如我写了这样一堆乱七八糟的东西:···


  1. .a{
  2. position:absolute;width:100px;float:left;height:100px;display:block;top:20px;font-size:12px;line-height:20px;margin-top:30px;padding-left:10px;
  3. transform:rotate(20deg);
  4. }

那么他会帮我编译成:


  1. .a {
  2. position: absolute;
  3. top: 20px;
  4. display: block;
  5. float: left;
  6. width: 100px;
  7. height: 100px;
  8. padding-left: 10px;
  9. margin-top: 30px;
  10. font-size: 12px;
  11. line-height: 20px;
  12. -webkit-transform: rotate(20deg);
  13. -ms-transform: rotate(20deg);
  14. transform: rotate(20deg);
  15. }

美美的。

当然他也需要自己的配置文件.csscomb.json

5:grunt-contrib-cssmin

顾名思义,文件压缩。没什么好说的额。

配置方法大家可以网上去找,或者直接去他们的github上看文档,说的都很详细。

以上就是css的grunt配置,合起来用,就能帮你写出优雅的css文件。

转自:http://www.php100.com/html/it/qianduan/2015/0115/8377.html

grunt前端打包——css篇的更多相关文章

  1. 我的前端规范——CSS篇

    相关文章 简书原文:https://www.jianshu.com/p/e87bfd27ff59 我的前端规范——开篇:http://www.cnblogs.com/shcrk/p/9271561.h ...

  2. 前端面试——css篇

    css盒子模型 在W3C模型中: 总宽度 = margin-left + border-left + padding-left + width + padding-right + border-rig ...

  3. 后端码农谈前端(CSS篇)第二课:CSS的5个来源

    0.浏览器默认样式 当你不为html元素设置任何样式时,显示在浏览器上的(比如:<b>元素会显示粗体.<p>元素有纵向margin.<h1>元素字号比<p&g ...

  4. 后端码农谈前端(CSS篇)第八课:继承与层叠

    一.继承 继承:所谓CSS样式继承,就是子元素应用父元素的规则声明.(由这一特性,可将CSS属性分为可继承属性和非可继承属性.)可继承属性:属性值可由父元素继承给子元素的属性称之为可继承属性. 哪些属 ...

  5. 后端码农谈前端(CSS篇)第七课:定位与浮动

    一.定位: 1.定位的理解 (1)相对定位 相对定位是一个非常容易掌握的概念.如果对一个元素进行相对定位,它将出现在它所在的位置上.然后,可以通过设置垂直或水平位置,让这个元素"相对于&qu ...

  6. 后端码农谈前端(CSS篇)第六课:盒子模型

    元素框的最内部分是实际的内容,直接包围内容的是内边距.内边距呈现了元素的背景.内边距的边缘是边框.边框以外是外边距,外边距默认是透明的,因此不会遮挡其后的任何元素. 提示:背景应用于由内容和内边距.边 ...

  7. 后端码农谈前端(CSS篇)第五课:CSS样式

    一.背景: CSS 允许应用纯色作为背景,也允许使用背景图像创建相当复杂的效果. 1.背景色 可以使用 background-color 属性为元素设置背景色.这个属性接受任何合法的颜色值. 例如: ...

  8. 后端码农谈前端(CSS篇)第四课:选择器补充(伪类与伪元素)

    一.伪类: 属性 描述 :active 向被激活的元素添加样式. :focus 向拥有键盘输入焦点的元素添加样式. :hover 当鼠标悬浮在元素上方时,向元素添加样式. :link 向未被访问的链接 ...

  9. 后端码农谈前端(CSS篇)第三课:选择器

    一.选择器 1.ID选择器: 语法:首先,ID 选择器前面有一个 # 号 - 也称为棋盘号或井号.请看下面的规则: *#intro {font-weight:bold;} 与类选择器一样,ID 选择器 ...

随机推荐

  1. POJ1692 Crossed Matchings

    Time Limit: 1000MS     Memory Limit: 10000K Total Submissions: 2738   Accepted: 1777 Description The ...

  2. 如何得知 GIC 的所有中斷

    can get the supported GIC interrupts from the below adb command, adb root adb shell cat /proc/interr ...

  3. jmeter登录测试

    测试步骤: 1.测试计划--右键添加--Threads--线程组 2. 线程组--右键--http信息头管理器 输入Content-Type=application/json,表示接口请求的默认设置: ...

  4. java基于udp实现键盘录入聊天

    发送端 package demo02; import java.io.IOException; import java.net.DatagramPacket; import java.net.Data ...

  5. LeetCode OJ-- Reverse Words in a String

    https://oj.leetcode.com/problems/reverse-words-in-a-string/ 给一个字符串 abc  dd  m,返回 m dd abc. 注意:输入中可能有 ...

  6. Cryptography I 学习笔记 --- 使用分组密码

    1. 如果加密算法是确定性的(相同的明文产生相同的密文),那么它对于选择明文攻击是不安全的 2. 随机化加密,每次对相同的密文加密,会产生不同的结果 AES加密模式 ecb:明文分块计算,块与块之间没 ...

  7. NLP--edit distance

    基本思想 通过插入(insert).删除(delete)和替换(substitute)个操作将一个字符串s1变换到另一个字符串s2的最少步骤数distacnce,用(1-distance/length ...

  8. 洛谷 P1328 生活大爆炸版石头剪刀布【模拟/环/周期】

    题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一样,则不分胜负.在<生活大爆炸>第二季第8 集中出现了一种石头剪刀布的升级版游戏. 升级版游戏在传统的 ...

  9. Codeforces 762A k-th divisor(数论)

    题目链接:k-th divisor 求出N的第K大因子,满足N <= 10^15,K <= 10^9 直接暴力…… #include <bits/stdc++.h> using ...

  10. springBoot 整合 mybatis+Oracle

    现在比较流行的操作数据库操作层框架Mybatis,下面我们就来看看Springboot如何整合mybatis, 之前一直在用xml形式写sql,这次依然用xml的方式感觉这种还是比较灵活方便. 添加m ...