CssGaga帮助

下载

运行环境

  • Windows XP(需安装Microsoft .NET Framework 3.5
  • Windows Vista
  • Windows 7
  • 注:使用前请更改配置文件

    CssGaga.exe.config

    操作文件类型

    • .css 文件名必须以“.source.css”结尾,供开发使用(SVN只需托管*.source.css),经工具生成后会去除“.source”用于发布,即
      style.source.css → style.css

      注:会覆盖或删除之前的 style.css

    • .jpg
    • .gif
    • .png
    • .cur

    压缩CSS

    去除注释和空白

    Before:

    /*****
      Multi-line comment
      before a new class name
    *****/
    .classname {
        /* comment in declaration block */
        font-weight: normal;
    }

    After:

    .classname{font-weight:normal}

    保留注释

    Before:

    /*!
      (c) Very Important Comment
      Very Important Comment
    */
    .classname {
        /* comment in declaration block */
        font-weight: normal;
    }

    After:

    /*!(c) Very Important Comment Very Important Comment */
    .classname{font-weight:normal}

    去除结尾的分号

    Before:

    .classname {
        border-top: 1px;
        border-bottom: 2px;
    }

    After:

    .classname{border-top:1px;border-bottom:2px}

    Before:

    去除多余的分号

    .classname {
        border-top: 1px; ;
        border-bottom: 2px;;;
    }

    After:

    .classname{border-top:1px;border-bottom:2px}

    去除无效的规则

    Before:

    .empty { ;}
    .nonempty {border: 0;}

    After:

    .nonempty{border:0}

    去除零值的单位并合并多余的零

    Before:

    a {
        margin: 0px 0pt 0em 0%;
        background-position: 0 0ex;
        padding: 0in 0cm 0mm 0pc
    }

    After:

    a{margin:0;background-position:0 0;padding:0}

    去除小数点前多余的0

    Before:

    .classname {
        margin: 0.6px 0.333pt 1.2em 8.8cm;
    }

    After:

    .classname{margin:.6px .333pt 1.2em 8.8cm}

    色值压缩

    Before:

    .color-me {
        color: rgb(123, 123, 123);
        border-color: #ffeedd;
        background: none repeat scroll 0 0 rgb(255, 0,0);
    }

    After:

    .color-me{color:#7b7b7b;border-color:#fed;background:none repeat scroll 0 0 #f00}
    不压缩RGBA与IE滤镜中的色值

    Before:

    .cantouch {
        color: rgba(1, 2, 3, 4);
        filter: chroma(color="#FFFFFF");
    }

    After:

    .cantouch{color:rgba(1,2,3,4);filter:chroma(color="#FFFFFF")}

    去除编码声明

    Before:

    @charset "utf-8";
    #foo {
        border-width: 1px;
    }
    
    /* second css, merged */
    @charset "another one";
    #bar {
        border-width: 10px;
    }

    After:

    #foo{border-width:1px}#bar{border-width:10px}

    压缩IE滤镜

    Before:

    .classname {
        -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; /* IE 8 */
        filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);       /* IE < 8 */
    }

    After:

    .classname{-ms-filter:"alpha(opacity=80)";filter:alpha(opacity=80)}

    去除多余引号

    Before:

    @import url("mod-1.css");
    @import url('mod-2.css');

    After:

    @import url(mod-1.css);
    @import url(mod-2.css);

    Before:

    .classname{ background: url("img/icon.png"); }
    .classname{ background: url('img/icon.png'); }

    After:

    .classname{background:url(img/icon.png)}
    .classname{background:url(img/icon.png)}

    不会影响正常的引号

    Before:

    .clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}

    After:

    .clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden}

    对HACK的影响

    支持常用HACK

    Before:

    #element {
        width: 1px;
        width: 2px\9;
        *width: 3px;
        #width: 3px;
        _width: 4px;
    }

    After:

    #element{width:1px;width:2px\9;*width:3px;#width:3px;_width:4px}

    不支持以下HACK

    html >/**/ body p {
        color: blue;
    }
    #elem {
        width: 100px; /* IE */
        voice-family: "\"}\"";
        voice-family:inherit;
        width: 200px; /* others */
    }

    修正常见 bug

    保留空格(IE6 bug)

    Before:

    .classname:first-letter { font-weight: bold; }
    .classname:first-line { font-weight: bold; }

    After:

    .classname:first-letter {font-weight:bold}
    .classname:first-line {font-weight:bold}

    中文字体Unicode编码

    Before:

    .classname { font-family: 宋体; }
    .classname { font-family: 黑体; }
    .classname { font-family: 微软雅黑; }

    After:

    .classname{font-family:\5B8B\4F53}
    .classname{font-family:\9ED1\4F53}
    .classname{font-family:\5FAE\8F6F\96C5\9ED1}

    注:支持以上三种字体

    删除不安全字体sans-serif(IE8 bug)

    Before:

    .classname { font-family: 宋体, sans-serif; }

    After:

    .classname{font-family:\5B8B\4F53}

    cursor生成根路径(IE6&7 bug)

    Before:

    {cursor:url('cursor/pre.cur'), auto;}

    After:

    {cursor:url(http://imgcache.qq.com/qzonestyle/css/cursor/pre.cur),auto}

    注:

    • cur文件所在的cursor文件夹与css同级且引用时为相对路径
    • 需在配置文件里设置下面两项的对应关系
      <add key="pathSource" value="E:\isd_webrebuild_rep\qzonev5_proj\trunk\qzonestyle\" />
      <add key="webSiteUrl" value="http://imgcache.qq.com/qzonestyle/" />

    合并CSS

    Before:

    @import url("reset.import.source.css");
    @import url("grid.import.source.css");
    @import url("mod-1.source.css"); /* mod-1.source.css 中 @import url("media.source.css"); */
    @import url("mod-2.css");
    @import url("../mod-3.source.css");
    @import url("http://imgcache.qq.com/qzonestyle/mod-4.source.css");

    After:

    @import url(media.css);
    @import url(mod-2.css);
    @import url(../mod-3.source.css);
    @import url(http://imgcache.qq.com/qzonestyle/mod-4.source.css);
    [reset.import.source.css 处理后的代码]
    [grid.import.source.css 处理后的代码]
    [mod-1.source.css 处理后的代码]

    注:

    • 只合并同级的*.source.css
    • 文件名包含“.import.source.css”的文件不会生成的同步目录(例如,不会生成到72等服务器)
    • 只合并一次,若mod-1.source.css中import了其他css文件(即便同级)则不做处理

    data URI & MHTML

    Before:

    .base64{background-image:url('base64/logo.png');}

    注:

    • 要转换的图片文件所在base64文件夹与css同级且引用时为相对路径

    After:

    • .base64{background-image:url(data:image/png;base64,[base64 string])}
    • /*
      Content-Type:multipart/related;boundary="_YT"
      
      --_YT
      Content-Location:logo.png
      Content-Transfer-Encoding:base64
      
      [base64 string]
      
      --_YT--
      */
      .base64{background-image:url(data:image/png;base64,[base64 string]);#background-image:url(mhtml:http://imgcache.qq.com/qzonestyle/css/style.css!logo.png);}

      注:

      • 需在配置文件里设置下面两项的对应关系
        <add key="pathSource" value="E:\isd_webrebuild_rep\qzonev5_proj\trunk\qzonestyle\" />
        <add key="webSiteUrl" value="http://imgcache.qq.com/qzonestyle/" />
    • .base64{background-image:url(data:image/png;base64,[base64 string]);#background-image:url(mhtml:http://imgcache.qq.com/qzonestyle/css/mhtml.css!logo.png);}

      注:

      • 需在配置文件里设置下面两项的对应关系
        <add key="pathSource" value="E:\isd_webrebuild_rep\qzonev5_proj\trunk\qzonestyle\" />
        <add key="webSiteUrl" value="http://imgcache.qq.com/qzonestyle/" />
      • 会在css文件同级生成mhtml.css

    生成MHTML时,若图片为alpha透明的png并以”.alpha.png“为结尾命名,则会自动生成IE6滤镜

    .base64{background-image:url(data:image/png;base64,[base64 string]);#background-image:url(mhtml:http://imgcache.qq.com/qzonestyle/css/style.css!shadow.alpha.png);_background-image:none;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='mhtml:http://imgcache.qq.com/qzonestyle/css/style.css!shadow.alpha.png',sizingMethod='scale');}

    压缩图片

    • *.png → *.png
    • *.jpg → *.jpg

      若文件大于10KB,则转换为渐进式jpg

    何时压缩图片?

    • 不选择同步的情况下,拖进来直接压缩
    • base64编码前压缩
    • 同步前压缩

    注:图片压缩前不会备份,请自行备份

    自动登录同步服务器

    须配置,不需登录脚本则留空

    <add key="cmdDest1" value="" />
    <add key="cmdDest2" value="139.bat" />
    <add key="cmdDest3" value="217.bat" />

    注:CssGaga启动时即自动登录服务器

    同步文件并生成提测文件列表

    • 须配置本地路径与目的路径的对应关系
      <add key="pathSource" value="E:\isd_webrebuild_rep\qzonev5_proj\trunk\qzonestyle\" />
      <add key="pathDest1" value="\\172.25.32.72\imgcache\qzonestyle\" />
      <add key="pathDest1" value="\\172.25.32.139\imgcache\qzonestyle\" />
      <add key="pathDest1" value="\\10.6.207.217\data\release\imgcache\qzonestyle\" />
    • 须配置本地路径与提测格式的对应关系
      <add key="pathSource" value="E:\isd_webrebuild_rep\qzonev5_proj\trunk\qzonestyle\" />
      <add key="pathReport" value="/usr/local/imgcache/htdocs/qzonestyle/" />

      生成的提测文件列表格式如下:

      /usr/local/imgcache/htdocs/qzonestyle/img/1.png
      /usr/local/imgcache/htdocs/qzonestyle/img/2.png
      /usr/local/imgcache/htdocs/qzonestyle/img/3.png

    注:同步路径可在配置中更改显示名称

    <add key="pathDest1Name" value="拷到72" />

    备份

    选中备份后同步时在目的文件文件夹中建立backup文件夹,备份文件名中会加入备份时间

    \\172.25.32.72\imgcache\qzonestyle\xiaoyou_portal_v2\img\backup\logo-2010-9-2 13.54.20.png

    CSS3属性自动生成

    注:只支持下面提到的属性

    Before:

    .column {
        -moz-column-count: 4;
        -moz-column-gap: 20px;
    }

    After:

    .column{-moz-column-count:4;-webkit-column-count:4;column-count:4;-moz-column-gap:20px;-webkit-column-gap:20px;column-gap:20px}

    Before:

    .border-radius {
         -moz-border-radius: 12px;
    }

    After:

    .border-radius{-moz-border-radius:12px;-webkit-border-radius:12px;border-radius:12px}

    Before:

    .border-radius {
    	-moz-border-radius-topleft: 20px;
    	-moz-border-radius-topright: 0;
    	-moz-border-radius-bottomleft: 0;
    	-moz-border-radius-bottomright: 20px;
    }

    After:

    .border-radius{-moz-border-radius-topleft:20px;-webkit-border-top-left-radius:20px;border-top-left-radius:20px;-moz-border-radius-topright:0;-webkit-border-top-right-radius:0;border-top-right-radius:0;-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomright:20px;-webkit-border-bottom-right-radius:20px;border-bottom-right-radius:20px}

    Before:

    .box-shadow {
         -moz-box-shadow: 0px 0px 4px #ffffff;
    }

    After:

    .box-shadow{-moz-box-shadow:0 0 4px #fff;-webkit-box-shadow:0 0 4px #fff;box-shadow:0 0 4px #fff}

    Before:

    .transform {
         -moz-transform: rotate(9deg);
    }

    After:

    .transform{-moz-transform:rotate(9deg);-webkit-transform:rotate(9deg);-o-transform:rotate(9deg)}

    Before:

    .transition {
         -moz-transition: all 0.3s ease-out;
    }

    After:

    .transition{-moz-transition:all .3s ease-out;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out}

    Before:

    input[type="text"], textarea {
        -moz-box-sizing: border-box;
    }

    After:

    input[type="text"],textarea{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}

    后续开发计划

    css变量等等,基于CSS Wish List(偶们组之前的另外一个美女raina有翻译过,不过她的网站暂时打不开了,网址以后补上),Nicole Sullivan又整理了份css变量标准,正好可以参考

    Tags: ,

17 comments

  1. 艾文王 说:

    哎哟,不得了啊~

  2. Avenir 说:

    涛哥威武,自动化是趋势。
    小小建议,如果能按css文件名自动生成一个”源文件.source.css”和最后发布的”css文件名.css”会更加能偷懒些。

  3. 掼蛋 说:

    现在的写法有一些xml 的感觉。

  4. old9 说:

    赞,期待!

  5. xhlv 说:

    很强大,赞~

  6. poor 说:

    涛哥说:不喜欢带套……

  7. 余果 说:

    好强啊……

  8. kaireewu 说:

    后续开发可以考虑做得更加通用化一些,把目前公司专用的选项都做成方便配置的可选项。这样更适合其它的rebuilder。

  9. atrl 说:

    打开直接报错。。XP。。。

  10. 肖建 说:

    以前一直用dreamweaver的查找替换功能,现在发现很好很强大的工具了

  11. guny 说:

    帮助看了也一塌糊涂奥这是干啥滴,希望尽快发布实例教程。

    1.简介
    2.开发目的

Tweetbacks

  1. CssGaga Beta4泄啦, 想知道CssGaga背后做了神马么: http://www.99css.com/?p=542

  2. RT @ytzong: CssGaga Beta4泄啦, 想知道CssGaga背后做了神马么: http://www.99css.com/?p=542

Trackbacks/Pingbacks

  1. [...] 拖了很久,今天终于要发布了,功能和使用方法看CssGaga帮助吧,跟工具同步更新,如果不好理解过些天搞些视频演示 [...]

Leave a comment