当前位置: 首页 > 编程日记 > 正文

CssGaga 快速上手指南

CssGaga是ytzong(涛哥)基于我们在朋友网日常的重构工作流程,为了提高工作效率而开发并不断完善起来的一个重构辅助工具。运行于Windows + .NET的环境,提供了重构相关的一系列解决方案。最近越来越多的朋友通过腾讯微博、QQ和Email咨询到有关CssGaga的问题,由于CssGaga本身也是在不断升级,以前的教程有些已经陈旧,为了帮助新接触到这个工具的同学,我这里再写一篇日志介绍一下CssGaga的基本使用。

CssGaga功能特性

  1. 合并import的CSS文件,开发阶段将CSS文件按模块拆分复用,发布上线后合并减少HTTP请求;
  2. 优化、压缩CSS代码,减少带宽占用,加快下载速度;
  3. 优化、发布CSS中使用到的图片,可以不必考虑多发、漏发图片文件的情况;
  4. 自动应用CSS Sprite技术,开发阶段不用考虑图标合并,便于管理,发布后的多个图标自动合并为一个图片,并自动更新CSS代码处理背景定位;
  5. 对CSS代码中使用到的图片自动加时间戳,以便在使用长Cache与更新后的图片及时生效;
  6. 样式有多套配色风格时,通过CssGaga可以实现皮肤的自动化同步;
  7. CSS样式、图片一键去色功能,在遇到特殊政治任务的时候,全站能迅速进行去色改版,迅速恢复;
  8. 生成iOS设备所需的不同尺寸Icon文件;
  9. 处理一些浏览器兼容方面的问题;

image

CssGaga下载和配置

运行CssGaga需要Windows操作系统、.Net Framework运行环境。

  1. 下载并安装Microsoft .NET Framework 4.0
  2. 下载并解压CssGaga最新版(绿色软件,不用安装)
  3. 对CssGaga进行初始化配置

第一次运行CssGaga前,需要对其进行必要的配置。主要是指定CssGaga的编译目标路径、站点的基本URL。具体步骤:

打开CssGaga所在目录,复制CssGaga.exe.config.sample文件,重命名为CssGaga.exe.config。

用任意文本编辑器打开CssGaga.exe.config,默认的代码如下:

<?xml version="1.0"?>
<configuration><appSettings><add key="pathSource" value="E:\" /><add key="webSiteUrl" value="http://qzonestyle.gtimg.cn" /><add key="pathReport" value="/usr/local/imgcache/htdocs" /><add key="pathDest1Name" value="目标环境1" /><add key="pathDest1" value="E:\output" /><add key="pathReport1" value="/usr/local/imgcache/htdocs" /><add key="chkTemp" value="1" /></appSettings>
</configuration>

其中pathDest1Name、pathDest1、pathReport1三个节点为一组,代表一个编译目标,CssGaga支持多组编译目 标,要增加新的编译目标,只要复制粘贴这三个节点,修改“1”为“2”及更大的数字,相同数字为一组。例如,我设定本机的一个目录为编译目标:

<add key="pathDest1Name" value="本机输出" />
<add key="pathDest1" value="D:\ofcss\style" />
<add key="pathReport1" value="/style" />

pathDest1Name代表这个目标在CssGaga界面上显示的名称,pathDest1代表这个目标的真实物理路 径,pathReport1代表这个路径编译机上的地址(不使用SMB共享进行文件部署的话,这个节点设置不设置就无所谓了,可以考虑设置为你站点上该目 录的相对路径)。

上面的设定表示当我在CssGaga上勾选“本机输出”时,编译后的CSS文件和图片文件会生成到D:\ofcss\style目录下。

CssGaga开发约定

根据互联网上一些优秀团队的经验以及我们自己在工作中的经验,CssGaga建议使用者在进行重构时遵循以下约定:

1. 目录结构

  • 把所有的CSS文件放在同一个目录下。网页中用link标签引用的CSS文件,我们称之为CSS桥文件(CSS Bridge),真正的样式规则代码按照模块拆分存放在不同的CSS文件中,这些CSS文件以“.import.css”结尾,代表它们不能直接被页面引 用,而要在桥文件中通过@import指令导入。
  • 把所有的图片文件放在CSS文件所在目录下的子目录(例如img)中。
  • 把所有需要进行CSS Sprite合并的图标文件放在CSS文件所在目录下的slice子目录中。
  • 把所有自定义鼠标样式(.ani、.cur)放在CSS文件所在目录下的absolute子目录中。例如:

image

2.代码编写

  • 在CSS Bridge文件中,用@import指令,把页面用到的模块css组合到一起
  • 在编写需要做CSS Sprite合并的背景图片样式时,不要缩写,必须把background-image样式单独写,并且不写background-position属性 (因为这些图标在开发阶段并没有合并,也就不需要定位,合并之后的background-position会由CssGaga自动生成),如果有PNG Alpha透明的图片,需要针对IE6单独做一张PNG 索引色透明图片时,可以用_background-image做Hack,CssGaga在合并时,会单独为IE6合并一张图片。
  • @import指令不要嵌套使用(A import B,则B不要再import其它文件),原则上不要import其它目录的文件(CssGaga不会做合并处理)。

3. 编译发布

在重构完成后,运行CssGaga,选择开发目录(注意与生成目标路径对应,比如开发路径是E:\ofcss\dev,目标路径是E:\ofcss\output,那么E:\ofcss\dev\style\index.css就会编译到E:\ofcss\output\style\index.css),勾选需要使用的功能,选择编译目标。然后把需要发布的CSS文件拖入CssGaga的主窗口,就会自动处理并编译到目标路径(相关的图片文件自动复制),如图:

image

Creative Commons License

本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名小李刀刀(包含链接)。如您有任何疑问或者授权方面的协商,请给我发送邮件。

转载于:https://www.cnblogs.com/ginowang42/archive/2012/03/22/2411583.html

相关文章:

学习web前端开发要注意什么

web前端的发展前景有目共睹&#xff0c;越来越多的人都对web前端这门编程语言非常感兴趣&#xff0c;想要学习web前端技术&#xff0c;那么学习web前端开发要注意什么呢?大家在学习之前是否有做好这些功课呢?来看看下面的详细介绍吧。 学习web前端开发要注意什么? 1、任何技…

Nagios之事件处理

目标&#xff1a;实现在监控3306端口服务时,出现1次critical软状态时或者在上一次执行后没有成功后出现的第一次硬状态critical情况下&#xff0c;远程执行mysql重启服务,并且每次执行远程重启服务前把报告事件记录到DB中 牵涉技术&#xff1a; (1)Nagios事件处理原理 (2)Ssh无…

张孝祥javascript学习笔记1---HTMLCSS

本节摘要及说明&#xff1a;本节只是对学习过程中知识点的一个简单的记录。 <body>标签的属性 Text属性:用于设定整个网页中的文字颜色 link属性:用于设定一般超链接文本的显示颜色 alink属性&#xff1a;用于设定鼠标移动到超链接上时&#xff0c;超链接文本的显示颜色 …

技术图文:C# VS. Python 读取CSV文件指南

背景 CSV 是一种以逗号进行特征分隔的文本文件类型&#xff0c;在数据库或电子表格中是一种非常常见的导入导出格式。本篇图文就以泰坦尼克号船员获救预测&#xff08; Kaggle&#xff09;中使用的数据集为例来说明 C#、Python和Pandas 如何读取 CSV 数据的。 CSV原始文件如下…

零基础学软件测试去哪家培训机构好

移动互联网的时代&#xff0c;几乎每个人都是机不离手&#xff0c;手机软件的应用频率越来越高&#xff0c;软件测试这个岗位的发展前景更是非常可观&#xff0c;很多人都开始学习软测技术&#xff0c;想要知道零基础学软件测试去哪家培训机构好?来看看下面的详细介绍。 零基础…

技术图文:Numpy 一维数组 VS. Pandas Series

背景 Numpy 提供的最重要的数据结构是 ndarray&#xff0c;它是 Python 中 list 的扩展。 Pandas 提供了两种非常重要的数据结构 Series和DataFrame。 Numpy 中的一维数组与 Series 相似&#xff0c;一维数组只是提供了从0开始与位置有关的索引&#xff0c;而Series除了位置…

【Python】向函数传递任意数量的实参

传递任意数量的实参 有时候&#xff0c;你预先不知道函数需要接受多少个实参&#xff0c;好在Python允许函数从调用语句中收集任意数量的实参 def get_letter(*letters):for i in letters:print(i) get_letter(A,B,C,D,E)形参名*letters中的星号让Python创建一个名为letters的空…

word中插入下标

Word2007中为数字加上下标的几种方法&#xff1a; 一&#xff1a;通过插入>公式>>选择&#xff0c;通过此上下标。 二&#xff1a;写下数字&#xff0c;例如5&#xff0c;然后按ctrlshift号三个键&#xff0c;就可添加上标&#xff0c;按ctrl号两键&#xff0c;就可标…

手机应用软件测试的思路与要点

软件测试主要针对于移动互联网行业&#xff0c;那么APP等相关软件的测试工作是非常多的&#xff0c;尤其对于产品的手机项目(应用软件)&#xff0c;主要是进行系统测试。针对手机应用软件的系统测试&#xff0c;通常从如下几个角度开展&#xff1a;功能测试&#xff0c;兼容性测…

数据结构与算法:01 绪论

绪论 知识结构&#xff1a; 一、什么是数据结构 例1&#xff1a;电话号码薄的查询问题。 (a1,b1),(a2,b2),…,(an,bn)(a_1,b_1),(a_2,b_2),\dots,(a_n,b_n) (a1​,b1​),(a2​,b2​),…,(an​,bn​) aia_iai​&#xff1a;表示姓名&#xff0c;bib_ibi​&#xff1a;表示电话…

rar for linux缺少GLIBC_2.7

今天安装rar4.0 for linux&#xff0c;遇到了一个缺少GLIBC_2.7的问题&#xff0c;弄了好久才成功&#xff0c;记录一下&#xff0c;以备不时之需。 系统版本为CentOS 5.5。下载了rar4.0 for linux源码包&#xff0c;解压后&#xff0c;按照makfile文件的提示&#xff0c;进行安…

硅谷产学研的创新循环

在现代社会形态形成的几百年历史中&#xff0c;大学与产业界在分化的体制轨道中形成了各自不同的目标、结构和文化&#xff0c;有关大学与产业合作的种种争议无不缘自于此。今天当知识和技术逐步取代了自然资源和简单劳动力资源而成为首要的创造财富的源泉时&#xff0c;产业界…

java技术培训之File类中常用的构造方法

File类用于封装一个路径&#xff0c;这个路径可以是从系统盘符开始的绝对路径&#xff0c;如&#xff1a;“D:\file\a.txt”&#xff0c;也可以是相对于当前目录而言的相对路径&#xff0c;如&#xff1a;“src\Hello.java”。File类内部封装的路径可以指向一个文件&#xff0c…

数据结构与算法:02 C#语言基本语法结构

02 C#语言基本语法结构 知识结构&#xff1a; 1、数据类型 第一种分类&#xff1a; 简单数据类型&#xff1a;byte、short、int、long、float、double、char、bool组合数据类型&#xff1a;struct、enum、class、interface 类型描述byte无符号8位整型(ushort) short&#x…

积少成多 Flash(ActionScript 3.0 Flex 3.0) 系列文章索引

[源码下载]积少成多 Flash(ActionScript 3.0 & Flex 3.0) 系列文章索引作者&#xff1a;webabcdFlash 之 ActionScript 3.0 1、积少成多Flash(1) - ActionScript 3.0 基础之数据类型、操作符和流程控制语句介绍Flash ActionScript 3.0 中所有的数据类型都是对象&#xff0c…

WPF Snoop 2.7 源码研究

转载于:https://www.cnblogs.com/puncha/archive/2012/04/01/3877001.html

java培训基础知识都学哪些

很多人都开始学习java技术&#xff0c;觉得java语言在未来的发展前景空间非常大&#xff0c;事实却是如此&#xff0c;那么针对于零基础的同学&#xff0c; 学习java技术需要学哪些呢?下面我们就来看看java培训基础知识都学哪些? java培训基础知识都学哪些? 1.JavaWeb Linux…

数据结构与算法:03 C#面向对象设计 I

03 C#面向对象设计 I 知识结构&#xff1a; 1、类与对象 类&#xff1a;用高级程序语言实现的一个ADT描述。对象&#xff1a;通过类声明的变量。 2、封装 2.1 什么是封装 把类的内部隐藏起来以防止外部看到内部的实现过程。 2.2 怎样封装 通过限制修饰符private、protect…

Centos7安装编译安装zabbix2.219及mariadb-5.5.46

mariadb-5.5.46的安装&#xff1a; 首先下载mariadb-5.5.46-linux-x86_64.tar.gz&#xff0c;然后使用tar -xf mariadb-5.5.46-linux-x86_64.tar.gz -C /usr/local目录下 添加数据库组 # groupadd mysql 添加数据库用户 # useradd -g mysql mysql cd /usr/local ln -sv…

软件测试开发:常见测试类型概念

软件测试是软件开发中非常重要的一个环节&#xff0c;软件测试工程师需要对每个环节进行严格把控&#xff0c;才能保证系统在每个阶段得以控制。下面小编就为大家详细介绍一下软件测试开发:常见测试类型概念的相关内容。 软件测试开发:常见测试类型概念&#xff1a; (1)边界测试…

技术图文:C#语言中的泛型 I

C#语言中的泛型 I 知识结构&#xff1a; 1. 泛型概述 泛型广泛应用于容器&#xff08;Collections&#xff09;和对容器操作的方法中。 从 .NET Framework2.0 开始&#xff0c;微软提供了一个新的命名空间System.Collections.Generic&#xff0c;其中包含了一些新的基于泛型…

ubuntu搭建svn、git遇到的问题及解决办法

不错的git笔记博客&#xff1a; http://www.cnblogs.com/wanqieddy/category/406859.html http://blog.csdn.net/zxncvb/article/details/22153019 Git学习教程&#xff08;六&#xff09;Git日志 http://fsjoy.blog.51cto.com/318484/245261/ 图解git http://my.oschina.net/x…

webstorm同时打开多个project方法

曾经多次碰到过想要打开多个project的时候&#xff0c;可每次打开其他项目时&#xff0c;必须选择新窗口还是替换次窗口&#xff0c;如果新窗口的话就无法跟现在的项目在同一个webstorm中同时进行编辑&#xff0c;需要来回切换窗口&#xff0c;很是不方便&#xff0c;今天无意中…

什么业务场景适合使用Redis?

Redis(Remote Dictionary Server )&#xff0c;即远程字典服务&#xff0c;是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。从2010年3月15日起&#xff0c;Redis的开发工作由VMware主持。从2013年…

Linux基础知识汇总(2)...持续更新中

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566软件安装: {软件安装的几种形式 rpm 由厂商提供二进制包 yum rpm源的前端管理器 src 源码包configure安装 bin 包含rpm和shell将安装一步执…

技术图文:C#语言中的泛型 II

C#语言中的泛型 II 知识结构&#xff1a; 6. 泛型接口 泛型类与泛型接口结合使用是很好的编程习惯&#xff0c;比如用IComparable<T>而非IComparable&#xff0c;以避免值类型上的装箱和拆箱操作。若将接口指定为类型参数的约束&#xff08;接口约束&#xff09;&#…

linux档案权限

Linux 下的档案当你对一个档案具有w权限时&#xff0c;你可以具有写入/编辑/新增/修改档案的内容的权限&#xff0c; 但并丌具备有删除该档案本身的权限&#xff01;对二档案的rwx来说&#xff0c; 主要都是针对『档案的内容』而觊&#xff0c;不档案档名的存在不否没有关系喔&…

新手UI设计师需要掌握的知识和技能

UI设计岗位在近几年的需求是越来越高的&#xff0c;很多零基础学员都开始学习UI设计技术&#xff0c;那么想要成为一名合格的UI设计师&#xff0c;新手UI设计师需要掌握的知识和技能是比较要会的&#xff0c;来看看下面的详细介绍。 新手UI设计师需要掌握的知识和技能&#xff…

数据结构与算法:04 C#面向对象设计 II

04 C#面向对象设计 II 知识结构&#xff1a; 5、属性 例1&#xff1a;属性概念的引入&#xff08;问题&#xff09; public class Animal {public int Age;public double Weight;public bool Sex;public Animal(int age, double weight, bool sex){Age age;Weight weight;S…

SharePoint迁移和升级方案

这是之前针对SharePoint迁移和升级写的方案&#xff0c;去掉了敏感的部分&#xff0c;共大家交流吧。SharePointMigrationSolution转载于:https://www.cnblogs.com/zhaojunqi/archive/2012/04/12/2444803.html