<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>99css</title>
	<atom:link href="http://www.99css.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.99css.com</link>
	<description></description>
	<lastBuildDate>Sat, 04 Sep 2010 07:21:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Chrome扩展腾讯微博提醒</title>
		<link>http://www.99css.com/?p=585</link>
		<comments>http://www.99css.com/?p=585#comments</comments>
		<pubDate>Wed, 11 Aug 2010 13:35:08 +0000</pubDate>
		<dc:creator>ytzong</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[工具]]></category>

		<guid isPermaLink="false">http://www.99css.com/?p=585</guid>
		<description><![CDATA[用贯了twitter的一些插件，很不喜欢QQ面板的微博；还有一点比较恶心的是新版QQ全部用的微软雅黑字体&#8230; 遂花了些玩蛋的时间写了这个扩展，这里安装：Chrome扩展腾讯微博提醒安装地址 Chrome扩展比较好写，翻下文档（中文翻译）就OK了 引用邓侃老师《Yahoo 与 Google，一点个人看法》中的话作为ending： 计算机行业的伟大成功大多遵循一个模式：拥有完善的基础架构，在此架构上有几个杀手应用，系统提供API。微软是这个模式最杰出的代表，无须赘言，它的基础架构就是Windows操作系统。互联网界的成功典范是 Google：它的架构说玄一点叫“云计算”，说平实一点就是遍布全球，前无古人的超大数据中心，和以Google File System文件系统，MapReduce并行处理技术等等，搭建起来的存储和计算平台。杀手应用也不多：搜索和广告。API的推广集中在地图和社区等方面。 为什么说这个模式容易造就伟大的成功呢？先说基础架构。这就好像国内的高速公路，修起来不容易，但一旦修好就坐地收钱，而且此系统有排它性。杀手应用也不可或缺，用户是无所谓什么操作系统的，他们在意的是杀手应用，另外操作系统上绑定的应用也别太多，否则用户就糊涂了。那么如何满足各 种用户的不同需要呢？答案是API。API的主要优点是规模效应，世界上总是有很多有聊或无聊的程序员（身兼产品经理）设计生产出各种基于API的软件或应用。用户呢，自行选择安装，丰俭由人。]]></description>
			<content:encoded><![CDATA[<p>用贯了twitter的一些插件，很不喜欢QQ面板的微博；还有一点比较恶心的是新版QQ全部用的微软雅黑字体&#8230;</p>
<p>遂花了些玩蛋的时间写了这个扩展，这里安装：<a href="https://chrome.google.com/extensions/detail/fbmgmgehagibedcbgiodbnjmpecoglji">Chrome扩展腾讯微博提醒安装地址</a></p>
<p>Chrome扩展比较好写，翻下<a href="http://code.google.com/chrome/extensions/trunk/index.html">文档</a>（<a href="https://wave.google.com/wave/#restored:wave:googlewave.com/w+2vxavm2FK">中文翻译</a>）就OK了</p>
<p>引用<a href="http://blog.sina.com.cn/kdeng">邓侃</a>老师《<a href="http://blog.sina.com.cn/s/blog_46d0a3930100bqwz.html">Yahoo 与 Google，一点个人看法</a>》中的话作为ending：</p>
<blockquote><p>计算机行业的伟大成功大多遵循一个模式：拥有完善的基础架构，在此架构上有几个杀手应用，系统提供API。微软是这个模式最杰出的代表，无须赘言，它的基础架构就是Windows操作系统。互联网界的成功典范是 Google：它的架构说玄一点叫“云计算”，说平实一点就是遍布全球，前无古人的超大数据中心，和以Google File System文件系统，MapReduce并行处理技术等等，搭建起来的存储和计算平台。杀手应用也不多：搜索和广告。API的推广集中在地图和社区等方面。</p>
<p>为什么说这个模式容易造就伟大的成功呢？先说基础架构。这就好像国内的高速公路，修起来不容易，但一旦修好就坐地收钱，而且此系统有排它性。杀手应用也不可或缺，用户是无所谓什么操作系统的，他们在意的是杀手应用，另外操作系统上绑定的应用也别太多，否则用户就糊涂了。那么如何满足各 种用户的不同需要呢？答案是API。API的主要优点是规模效应，世界上总是有很多有聊或无聊的程序员（身兼产品经理）设计生产出各种基于API的软件或应用。用户呢，自行选择安装，丰俭由人。</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.99css.com/?feed=rss2&amp;p=585</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WebReBuild年会</title>
		<link>http://www.99css.com/?p=579</link>
		<comments>http://www.99css.com/?p=579#comments</comments>
		<pubDate>Tue, 03 Aug 2010 17:36:14 +0000</pubDate>
		<dc:creator>ytzong</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[招聘]]></category>

		<guid isPermaLink="false">http://www.99css.com/?p=579</guid>
		<description><![CDATA[WebReBuild第四届年会-深圳站 即将举行，详情到官网看3~ 我参加过两届，流水账一下： 第二届：也许不是周末的原因，到的人不太多，而其中很多是腾讯的。那时我刚正职做前端。认识了彪叔（彪叔很有个人魅力的说，其中关于web2.0的单手定则至今印象深刻，其中大拇指的作用我一两年后才明白）；也见到了飘飘（安静而忧郁）、小志（话痨）、tommy（讲的图片优化我听完回去就用上了）、77（推动浏览器前进神马的，话题有些太泛）、老卡（画sitemap令我耳目一新）、红姐（刚毕业）、jeanne（很安静）等人；还有个刚来我公司面试不久而被我锯掉的哥们（呵呵，现在想起来还有些囧） 第三届：人翻了两三倍，热闹了很多。会上见到了twitter上神交已久的神飞（前端观察都听过吧），还有ivane（也是twitter上认识的）和大猫（从杭州过来的）；还和组里的几个MM（出力姐、自称是女人不是女孩的grace、小萝莉啵你等）有了第一次的亲密接触；印象比较深刻的有两个，一个是舜子的QZONE优化（各模块有讲究的加载顺序），另一个是网易的比较有争议的模板（大部分人更注重语义，对一些视觉命名的class不能接受，不过我的观点是网易的做法有不少可取之处）；彪叔的《一专多长》我没怎么参透，呵呵~后面见了鬼哥（和想象中不太一样，博客的写作风格比较有距离，不过真人很好接近）、大布（一言不发，一直在压抑自己的性格&#8211;也就是所谓的性压抑，后来一起旅游时放的很开）、banny（算错帐被彪叔屌） 即将到来的第四届比较期待： 石玉磊《Web前端开发实用工具》（由于大猫的关系，和yuni小聊过几次，每次都有被开释的感觉） 郑焕义《重温网站重构》（最佳新人啦） 张思坚《浏览器兼容性》（前东家的，当然要力挺） 彪叔的《化烦为减》（彪叔的东西往往让人听一次而想一年）]]></description>
			<content:encoded><![CDATA[<p><a href="http://webrebuild.org/shenzhen/">WebReBuild第四届年会-深圳站</a> 即将举行，详情到官网看3~</p>
<p>我参加过两届，流水账一下：</p>
<ul>
<li>第二届：也许不是周末的原因，到的人不太多，而其中很多是腾讯的。那时我刚正职做前端。认识了<a href="http://www.twinsenliang.net/">彪叔</a>（彪叔很有个人魅力的说，其中关于web2.0的单手定则至今印象深刻，其中大拇指的作用我一两年后才明白）；也见到了<a href="http://pufen.net/">飘飘</a>（安静而忧郁）、<a href="http://linxz.cn/">小志</a>（话痨）、<a href="http://tommyfan.com/blog/">tommy</a>（讲的图片优化我听完回去就用上了）、<a href="http://blog.gulu77.com/">77</a>（推动浏览器前进神马的，话题有些太泛）、<a href="http://www.greengnn.org/">老卡</a>（画sitemap令我耳目一新）、<a href="http://www.rainaxin.com/">红姐</a>（刚毕业）、<a href="http://csshouse.net/">jeanne</a>（很安静）等人；还有个刚来我公司面试不久而被我锯掉的哥们（呵呵，现在想起来还有些囧）</li>
<li>第三届：人翻了两三倍，热闹了很多。会上见到了twitter上神交已久的<a href="http://qianduan.net/">神飞</a>（前端观察都听过吧），还有<a href="http://ivane.net/">ivane</a>（也是twitter上认识的）和<a href="http://ooxx.me/">大猫</a>（从杭州过来的）；还和组里的几个MM（出力姐、自称是女人不是女孩的grace、小萝莉啵你等）有了第一次的亲密接触；印象比较深刻的有两个，一个是<a href="http://www.pjhome.net/">舜子</a>的QZONE优化（各模块有讲究的加载顺序），另一个是网易的比较有争议的模板（大部分人更注重语义，对一些视觉命名的class不能接受，不过我的观点是网易的做法有不少可取之处）；彪叔的《一专多长》我没怎么参透，呵呵~后面见了<a href="http://cssforest.org/">鬼哥</a>（和想象中不太一样，博客的写作风格比较有距离，不过真人很好接近）、大布（一言不发，一直在压抑自己的性格&#8211;也就是所谓的性压抑，后来一起旅游时放的很开）、banny（算错帐被彪叔屌）</li>
</ul>
<p>即将到来的第四届比较期待：</p>
<ul>
<li><a href="http://www.yuni.cn/">石玉磊</a>《Web前端开发实用工具》（由于大猫的关系，和yuni小聊过几次，每次都有被开释的感觉）</li>
<li><a href="http://www.avenirzheng.net/">郑焕义</a>《重温网站重构》（最佳新人啦）</li>
<li>张思坚《浏览器兼容性》（前东家的，当然要力挺）</li>
<li>彪叔的《化烦为减》（彪叔的东西往往让人听一次而想一年）</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.99css.com/?feed=rss2&amp;p=579</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>CssGaga 2010 Beta1</title>
		<link>http://www.99css.com/?p=571</link>
		<comments>http://www.99css.com/?p=571#comments</comments>
		<pubDate>Fri, 30 Jul 2010 21:00:16 +0000</pubDate>
		<dc:creator>ytzong</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[cssgaga]]></category>
		<category><![CDATA[工具]]></category>

		<guid isPermaLink="false">http://www.99css.com/?p=571</guid>
		<description><![CDATA[拖了很久，今天终于要发布了，功能和使用方法看CssGaga帮助吧（内有视频演示） 下载CssGaga 解压了就能用，前提是装了.NET Framework 2.0+ 这个跟之前项目里使用的有些差别： 重新调整了思路，代码改动较大，未在实践中检验，所以大家注意BUG并反馈哈 精简了界面，将一些功能（去注释、格式化、不换行压缩）默认开启，不再提供复选框进行设置]]></description>
			<content:encoded><![CDATA[<p>拖了很久，今天终于要发布了，功能和使用方法看<a href="http://www.99css.com/?p=542">CssGaga帮助</a>吧（内有视频演示）</p>
<p><a href="http://www.99css.com/yt/CssGaga.zip">下载CssGaga</a></p>
<p>解压了就能用，前提是装了.NET Framework 2.0+</p>
<p>这个跟之前项目里使用的有些差别：</p>
<ol>
<li>重新调整了思路，代码改动较大，未在实践中检验，所以大家注意BUG并反馈哈</li>
<li>精简了界面，将一些功能（去注释、格式化、不换行压缩）默认开启，不再提供复选框进行设置</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.99css.com/?feed=rss2&amp;p=571</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>256色</title>
		<link>http://www.99css.com/?p=562</link>
		<comments>http://www.99css.com/?p=562#comments</comments>
		<pubDate>Sat, 17 Jul 2010 07:15:34 +0000</pubDate>
		<dc:creator>ytzong</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[性能]]></category>

		<guid isPermaLink="false">http://www.99css.com/?p=562</guid>
		<description><![CDATA[从神飞那里借了本《高性能网站建设进阶指南》，粗略读了一遍，最重要的收获是第10章图像优化纠正了我对256色的认识 Truecolor versus palette image formats Using the RGB color model, how many distinct colors can you represent in a graphic? The answer is more than 16 million: 255 * 255 * 255 (or 224) gives you 16,777,216 combinations. Image formats that can represent this many colors are called truecolor image formats; examples are JPEG [...]]]></description>
			<content:encoded><![CDATA[<p>从<a href="http://twitter.com/mienflying">神飞</a>那里借了本《<a href="http://ued.koubei.com/?p=1170">高性能网站建设进阶指南</a>》，粗略读了一遍，最重要的收获是第10章图像优化纠正了我对256色的认识</p>
<blockquote>
<h4>Truecolor versus palette image formats</h4>
<p>Using the RGB color model, how many distinct colors can you represent in a graphic? The answer is more than 16 million: 255 * 255 * 255 (or 2<sup>24</sup>) gives you 16,777,216 combinations. Image formats that can represent this many colors are called truecolor image formats; examples are JPEG and the truecolor type of PNG.</p>
<p>To save space when storing the image information in a file, one technique is to create a list of all the unique colors found in the image. The list of colors is called a palette (also called an index). Having the list of colors, you can represent the image by keeping track of which palette entry corresponds to each pixel.</p>
<p>The palette can contain any RGB value, but the most common palette image formats GIF and PNG8—limit the number of palette entries to 256. This doesn’t mean you can pick from only 256 predefined colors. On the contrary, any of the 16+ million colors<br />
are up for grabs, but you can only have up to 256 of them in a single image.</p></blockquote>
<p>最后一段说GIF和PNG8最多只能包含256色，并不意味着只能从256种<strong>已定义好的颜色</strong>中选择，可以从2<sup>24</sup>种颜色中挑选！</p>
<p>另外，本章还给出一些关于CSS Sprite的优化建议</p>
<blockquote>
<h3>Highly Optimized CSS Sprites</h3>
<p>Sometimes optimizing sprites is more complex than optimizing images. Diverse resources combined in one sprite may be harder to compress well. Following these best practices will make your sprite as small as possible:</p>
<ul>
<li>Combine like colors; for example, sprite icons with a similar color palette.</li>
<li>Avoid unnecessary whitespace, making images easier to process on mobile devices.</li>
<li><strong>Arrange elements horizontally instead of vertically. The sprite will be slightly smaller.</strong></li>
<li>Limit colors to stay within the 256-color limit of PNG8.</li>
<li>Optimize individual images, and then the sprite. Color reduction will be easier with a limited palette.</li>
<li>Reduce anti-aliased pixels via size and alignment. If an icon is slightly off-square, you can often reduce the anti-aliased pixels by aligning the image horizontally or vertically.</li>
<li>Avoid diagonal gradients, which cannot be tiled.</li>
<li>Avoid alpha transparency in Internet Explorer 6 or quarantine images that require true alpha transparency in a separate sprite.</li>
<li><strong>Change the gradient color every two to three pixels, rather than every pixel.</strong></li>
<li>Be careful with logos. They are very recognizable, so even small changes are likely to be noticed.</li>
</ul>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.99css.com/?feed=rss2&amp;p=562</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CssGaga帮助</title>
		<link>http://www.99css.com/?p=542</link>
		<comments>http://www.99css.com/?p=542#comments</comments>
		<pubDate>Wed, 14 Jul 2010 13:49:01 +0000</pubDate>
		<dc:creator>ytzong</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[cssgaga]]></category>
		<category><![CDATA[工具]]></category>

		<guid isPermaLink="false">http://www.99css.com/?p=542</guid>
		<description><![CDATA[下载 CssGaga 功能演示视频（未和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: /*! [...]]]></description>
			<content:encoded><![CDATA[<h3>下载</h3>
<ul>
<li><a href="http://www.99css.com/yt/CssGaga.zip">CssGaga</a></li>
<li><a href="http://www.99css.com/yt/cssgaga-show.zip">功能演示视频</a>（未和CssGaga同步更新，不过可以大概看下使用方法）</li>
</ul>
<h3>运行环境</h3>
<ul>
<li>Windows XP（需安装<a href="http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe">Microsoft .NET Framework 3.5</a>）</li>
<li>Windows Vista</li>
<li>Windows 7</li>
<p style="color: red;">注：使用前请更改配置文件</p>
<pre>CssGaga.exe.config</pre>
<h3>操作文件类型</h3>
<ul>
<li><strong>.css</strong> 文件名必须以“.source.css”结尾，供开发使用（SVN只需托管*.source.css），经工具生成后会去除“.source”用于发布，即
<pre>style.source.css → style.css</pre>
<p>注：会覆盖或删除之前的 style.css</li>
<li><strong>.jpg</strong></li>
<li><strong>.gif</strong></li>
<li><strong>.png</strong></li>
<li><strong>.cur</strong></li>
</ul>
<h3>压缩CSS</h3>
<h4>去除注释和空白</h4>
<p>Before:</p>
<pre>/*****
  Multi-line comment
  before a new class name
*****/
.classname {
    /* comment in declaration block */
    font-weight: normal;
}</pre>
<p>After:</p>
<pre>.classname{font-weight:normal}</pre>
<h4>保留注释</h4>
<p>Before:</p>
<pre>/*<strong>!</strong>
  (c) Very Important Comment
  Very Important Comment
*/
.classname {
    /* comment in declaration block */
    font-weight: normal;
}</pre>
<p>After:</p>
<pre>/*!(c) Very Important Comment Very Important Comment */
.classname{font-weight:normal}</pre>
<h4>去除结尾的分号</h4>
<p>Before:</p>
<pre>.classname {
    border-top: 1px;
    border-bottom: 2px;
}</pre>
<p>After:</p>
<pre>.classname{border-top:1px;border-bottom:2px}</pre>
<p>Before:</p>
<h4>去除多余的分号</h4>
<pre>.classname {
    border-top: 1px; ;
    border-bottom: 2px;;;
}</pre>
<p>After:</p>
<pre>.classname{border-top:1px;border-bottom:2px}</pre>
<h4>去除无效的规则</h4>
<p>Before:</p>
<pre>.empty { ;}
.nonempty {border: 0;}</pre>
<p>After:</p>
<pre>.nonempty{border:0}</pre>
<h4>去除零值的单位并合并多余的零</h4>
<p>Before:</p>
<pre>a {
    margin: 0px 0pt 0em 0%;
    background-position: 0 0ex;
    padding: 0in 0cm 0mm 0pc
}</pre>
<p>After:</p>
<pre>a{margin:0;background-position:0 0;padding:0}</pre>
<h4>去除小数点前多余的0</h4>
<p>Before:</p>
<pre>.classname {
    margin: 0.6px 0.333pt 1.2em 8.8cm;
}</pre>
<p>After:</p>
<pre>.classname{margin:.6px .333pt 1.2em 8.8cm}</pre>
<h4>色值压缩</h4>
<p>Before:</p>
<pre>.color-me {
    color: rgb(123, 123, 123);
    border-color: #ffeedd;
    background: none repeat scroll 0 0 rgb(255, 0,0);
}</pre>
<p>After:</p>
<pre>.color-me{color:#7b7b7b;border-color:#fed;background:none repeat scroll 0 0 #f00}</pre>
<h5>不压缩RGBA与IE滤镜中的色值</h5>
<p>Before:</p>
<pre>.cantouch {
    color: rgba(1, 2, 3, 4);
    filter: chroma(color="#FFFFFF");
}</pre>
<p>After:</p>
<pre>.cantouch{color:rgba(1,2,3,4);filter:chroma(color="#FFFFFF")}</pre>
<h4>去除编码声明</h4>
<p>Before:</p>
<pre>@charset "utf-8";
#foo {
    border-width: 1px;
}

/* second css, merged */
@charset "another one";
#bar {
    border-width: 10px;
}</pre>
<p>After:</p>
<pre>#foo{border-width:1px}#bar{border-width:10px}</pre>
<h4>压缩IE滤镜</h4>
<p>Before:</p>
<pre>.classname {
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; /* IE 8 */
    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);       /* IE &lt; 8 */
}</pre>
<p>After:</p>
<pre>.classname{-ms-filter:"alpha(opacity=80)";filter:alpha(opacity=80)}</pre>
<h4>去除多余引号</h4>
<p>Before:</p>
<pre>@import url("mod-1.css");
@import url('mod-2.css');</pre>
<p>After:</p>
<pre>@import url(mod-1.css);
@import url(mod-2.css);</pre>
<p>Before:</p>
<pre>.classname{ background: url("img/icon.png"); }
.classname{ background: url('img/icon.png'); }</pre>
<p>After:</p>
<pre>.classname{background:url(img/icon.png)}
.classname{background:url(img/icon.png)}</pre>
<h4>不会影响正常的引号</h4>
<p>Before:</p>
<pre>.clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}</pre>
<p>After:</p>
<pre>.clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden}</pre>
<h3>对HACK的影响</h3>
<h4>支持常用HACK</h4>
<p>Before:</p>
<pre>#element {
    width: 1px;
    width: 2px\9;
    *width: 3px;
    #width: 3px;
    _width: 4px;
}</pre>
<p>After:</p>
<pre>#element{width:1px;width:2px\9;*width:3px;#width:3px;_width:4px}</pre>
<h4 style="color: red;">不支持以下HACK</h4>
<pre>html &gt;<strong>/**/</strong> body p {
    color: blue;
}</pre>
<pre>#elem {
    width: 100px; /* IE */
    <strong>voice-family: "\"}\"";</strong>
    voice-family:inherit;
    width: 200px; /* others */
}</pre>
<h3>修正常见 bug</h3>
<h4>保留空格(IE6 bug)</h4>
<p>Before:</p>
<pre>.classname<strong>:first-letter</strong> { font-weight: bold; }
.classname<strong>:first-line</strong> { font-weight: bold; }</pre>
<p>After:</p>
<pre>.classname<strong>:first-letter</strong> {font-weight:bold}
.classname:first-line {font-weight:bold}</pre>
<h4>中文字体Unicode编码</h4>
<p>Before:</p>
<pre>.classname { font-family: 宋体; }
.classname { font-family: 黑体; }
.classname { font-family: 微软雅黑; }</pre>
<p>After:</p>
<pre>.classname{font-family:\5B8B\4F53}
.classname{font-family:\9ED1\4F53}
.classname{font-family:\5FAE\8F6F\96C5\9ED1}</pre>
<p>注：支持以上三种字体</p>
<h4>删除不安全字体sans-serif(IE8 bug)</h4>
<p>Before:</p>
<pre>.classname { font-family: 宋体, sans-serif; }</pre>
<p>After:</p>
<pre>.classname{font-family:\5B8B\4F53}</pre>
<h4>cursor生成根路径(IE6&amp;7 bug)</h4>
<p>Before:</p>
<pre>{cursor:url('cursor/pre.cur'), auto;}</pre>
<p>After:</p>
<pre>{cursor:url(http://imgcache.qq.com/qzonestyle/css/cursor/pre.cur),auto}</pre>
<p>注：</p>
<ul>
<li>cur文件所在的cursor文件夹与css同级且引用时为相对路径</li>
<li>需在配置文件里设置下面两项的对应关系
<pre>&lt;add key="pathSource" value="E:\isd_webrebuild_rep\qzonev5_proj\trunk\qzonestyle\" /&gt;</pre>
<pre>&lt;add key="webSiteUrl" value="http://imgcache.qq.com/qzonestyle/" /&gt;</pre>
</li>
</ul>
<h3>合并CSS</h3>
<p>Before:</p>
<pre>@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");</pre>
<p>After:</p>
<pre>@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 处理后的代码]</pre>
<p>注：</p>
<ul>
<li>只合并同级的*.source.css</li>
<li>文件名包含“.import.source.css”的文件不会生成的同步目录（例如，不会生成到72等服务器）</li>
<li>只合并一次，若mod-1.source.css中import了其他css文件（即便同级）则不做处理</li>
</ul>
<h3>data URI &amp; MHTML</h3>
<p>Before:</p>
<pre>.base64{background-image:url('base64/logo.png');}</pre>
<p>注：</p>
<ul>
<li>要转换的图片文件所在base64文件夹与css同级且引用时为相对路径</li>
</ul>
<p>After:</p>
<ul>
<li><label><br />
<input readonly="readonly" type="checkbox" />生成MHTML</label></p>
<pre>.base64{background-image:url(data:image/png;base64,[base64 string])}</pre>
</li>
<li><label><br />
<input checked="checked" readonly="readonly" type="checkbox" />生成MHTML</label></p>
<p><label><br />
<input readonly="readonly" type="checkbox" />分离MHTML</label></p>
<pre>/*
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);}</pre>
<p>注：</p>
<ul>
<li>需在配置文件里设置下面两项的对应关系
<pre>&lt;add key="pathSource" value="E:\isd_webrebuild_rep\qzonev5_proj\trunk\qzonestyle\" /&gt;</pre>
<pre>&lt;add key="webSiteUrl" value="http://imgcache.qq.com/qzonestyle/" /&gt;</pre>
</li>
</ul>
</li>
<li><label><br />
<input checked="checked" readonly="readonly" type="checkbox" />生成MHTML</label></p>
<p><label><br />
<input checked="checked" readonly="readonly" type="checkbox" />分离MHTML</label></p>
<pre>.base64{background-image:url(data:image/png;base64,[base64 string]);#background-image:url(mhtml:http://imgcache.qq.com/qzonestyle/css/mhtml.css!logo.png);}</pre>
<p>注：</p>
<ul>
<li>需在配置文件里设置下面两项的对应关系
<pre>&lt;add key="pathSource" value="E:\isd_webrebuild_rep\qzonev5_proj\trunk\qzonestyle\" /&gt;</pre>
<pre>&lt;add key="webSiteUrl" value="http://imgcache.qq.com/qzonestyle/" /&gt;</pre>
</li>
<li>会在css文件同级生成mhtml.css</li>
</ul>
</li>
</ul>
<p>生成MHTML时，若图片为alpha透明的png并以”.alpha.png“为结尾命名，则会自动生成IE6滤镜</p>
<pre>.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');}</pre>
<h3>压缩图片</h3>
<ul>
<li>
<pre>*.png → *.png</pre>
</li>
<li>
<pre>*.jpg → *.jpg</pre>
<p>若文件大于10KB，则转换为渐进式jpg</li>
</ul>
<p>何时压缩图片？</p>
<ul>
<li>不选择同步的情况下，拖进来直接压缩</li>
<li>base64编码前压缩</li>
<li>同步前压缩</li>
</ul>
<p style="color: red;">注：图片压缩前不会备份，请自行备份</p>
<h3>自动登录同步服务器</h3>
<p>须配置，不需登录脚本则留空</p>
<pre>&lt;add key="cmdDest1" value="" /&gt;</pre>
<pre>&lt;add key="cmdDest2" value="139.bat" /&gt;</pre>
<pre>&lt;add key="cmdDest3" value="217.bat" /&gt;</pre>
<p>注：CssGaga启动时即自动登录服务器</p>
<h3>同步文件并生成提测文件列表</h3>
<ul>
<li>须配置本地路径与目的路径的对应关系
<pre>&lt;add key="pathSource" value="E:\isd_webrebuild_rep\qzonev5_proj\trunk\qzonestyle\" /&gt;</pre>
<pre>&lt;add key="pathDest1" value="\\172.25.32.72\imgcache\qzonestyle\" /&gt;</pre>
<pre>&lt;add key="pathDest1" value="\\172.25.32.139\imgcache\qzonestyle\" /&gt;</pre>
<pre>&lt;add key="pathDest1" value="\\10.6.207.217\data\release\imgcache\qzonestyle\" /&gt;</pre>
</li>
<li>须配置本地路径与提测格式的对应关系
<pre>&lt;add key="pathSource" value="E:\isd_webrebuild_rep\qzonev5_proj\trunk\qzonestyle\" /&gt;</pre>
<pre>&lt;add key="pathReport" value="/usr/local/imgcache/htdocs/qzonestyle/" /&gt;</pre>
<p>生成的提测文件列表格式如下：</p>
<pre>/usr/local/imgcache/htdocs/qzonestyle/img/1.png
/usr/local/imgcache/htdocs/qzonestyle/img/2.png
/usr/local/imgcache/htdocs/qzonestyle/img/3.png</pre>
</li>
</ul>
<p>注：同步路径可在配置中更改显示名称</p>
<pre>&lt;add key="pathDest1Name" value="拷到72" /&gt;</pre>
<h4>备份</h4>
<p>选中备份后同步时在目的文件文件夹中建立backup文件夹，备份文件名中会加入备份时间</p>
<pre>\\172.25.32.72\imgcache\qzonestyle\xiaoyou_portal_v2\img\backup\logo-2010-9-2 13.54.20.png</pre>
<h3>CSS3属性自动生成</h3>
<p style="color:red">注：只支持下面提到的属性</p>
<p>Before:</p>
<pre>.column {
    -moz-column-count: 4;
    -moz-column-gap: 20px;
}</pre>
<p>After:</p>
<pre>.column{-moz-column-count:4;-webkit-column-count:4;column-count:4;-moz-column-gap:20px;-webkit-column-gap:20px;column-gap:20px}</pre>
<p>Before:</p>
<pre>.border-radius {
     -moz-border-radius: 12px;
}</pre>
<p>After:</p>
<pre>.border-radius{-moz-border-radius:12px;-webkit-border-radius:12px;border-radius:12px}</pre>
<p>Before:</p>
<pre>.border-radius {
	-moz-border-radius-topleft: 20px;
	-moz-border-radius-topright: 0;
	-moz-border-radius-bottomleft: 0;
	-moz-border-radius-bottomright: 20px;
}</pre>
<p>After:</p>
<pre>.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}</pre>
<p>Before:</p>
<pre>.box-shadow {
     -moz-box-shadow: 0px 0px 4px #ffffff;
}</pre>
<p>After:</p>
<pre>.box-shadow{-moz-box-shadow:0 0 4px #fff;-webkit-box-shadow:0 0 4px #fff;box-shadow:0 0 4px #fff}</pre>
<p>Before:</p>
<pre>.transform {
     -moz-transform: rotate(9deg);
}</pre>
<p>After:</p>
<pre>.transform{-moz-transform:rotate(9deg);-webkit-transform:rotate(9deg);-o-transform:rotate(9deg)}</pre>
<p>Before:</p>
<pre>.transition {
     -moz-transition: all 0.3s ease-out;
}</pre>
<p>After:</p>
<pre>.transition{-moz-transition:all .3s ease-out;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out}</pre>
<p>Before:</p>
<pre>input[type="text"], textarea {
    -moz-box-sizing: border-box;
}</pre>
<p>After:</p>
<pre>input[type="text"],textarea{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}</pre>
<h3>后续开发计划</h3>
<p>css变量等等，基于<a href="http://www.slideshare.net/stubbornella/css-wish-list">CSS Wish List</a>（偶们组之前的另外一个美女raina有翻译过，不过她的网站暂时打不开了，网址以后补上），Nicole Sullivan又整理了份css变量标准，正好可以参考</p>
]]></content:encoded>
			<wfw:commentRss>http://www.99css.com/?feed=rss2&amp;p=542</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Building Performance Into the New Yahoo! Homepage</title>
		<link>http://www.99css.com/?p=538</link>
		<comments>http://www.99css.com/?p=538#comments</comments>
		<pubDate>Sat, 10 Jul 2010 08:58:54 +0000</pubDate>
		<dc:creator>ytzong</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[性能]]></category>
		<category><![CDATA[看图]]></category>

		<guid isPermaLink="false">http://www.99css.com/?p=538</guid>
		<description><![CDATA[via Building Performance Into the New Yahoo! Homepage by Nicholas Zakas, Yahoo!]]></description>
			<content:encoded><![CDATA[<p><img id="internal-source-marker_0.8775303885340691" src="https://lh6.googleusercontent.com/ZiBb_yxd8lpktSNqVuw4NoNs-KOYCMF2uJUJAJx-WibacqgwHDlEufgfnvPR_tFaoqLOd_23z4DaJgwAfExPF90R5rvbr0RwdHuV5IifwOgtV1XkAA" alt="" width="600px;" height="450px;" /></p>
<p><img src="https://lh6.googleusercontent.com/qHu7Q-MzFSSCCscicxX9uPxaaR2BrIuIYhfx_qg--jnJIKaERZw6WeRDlCMSMg4PTkqOeGkldFeER_rOU4c8cylYY4dRyXOkC9R_qZrxQxsxC8ITrQ" alt="" width="600px;" height="450px;" /></p>
<p><img src="https://lh4.googleusercontent.com/QPlcE1j0URxGCBNWu1kOZcUGzdbjQHRaPf7D2xFhnRRLEqhw45QkKpIO4h6ELfQOAw9PM5iecxD7Hy5IQ_j-uvStoVHaTp_qT-t53CIZYFgFjJpQxw" alt="" width="600px;" height="450px;" /></p>
<p><img src="https://lh3.googleusercontent.com/KlkxbPiZNqDpn4Q2WnNmKBBfDp-NNRDxhfqfta0T9zKcWBKuRrQEDCNXs2Fpr782p2-CzT1f2YvRI5-DQcDR5omse4YYGvi_GiCg70XiK2uYZha-Pg" alt="" width="600px;" height="450px;" /></p>
<p><img src="https://lh4.googleusercontent.com/sXu0oUzVaquaWBtvTf-TH3coKmQSvj3BPIYJvNGHALzXDg6eUCHaPf67XT62GcyuGbABQJQZDmLhpkFgW7RyencTY02eHb2e3rv6YpTjxsLijSqy5A" alt="" width="600px;" height="450px;" /></p>
<p><img src="https://lh6.googleusercontent.com/J-q9H4DHGXepARpENxheRdHaZLkIkbNK4fatKllW8qxS6FmP1keXQxsI0a9vk2_-HVvaejJHGbypj-n06Yh-J3Mx3CqrRfSOKUvFObGcVt2nZwjcaQ" alt="" width="600px;" height="450px;" /></p>
<p><img src="https://lh3.googleusercontent.com/LSdSKo06MaMiaRrr5zY2zSOpbMYDkc_EINjz_RAoPowrxKb-ErJ6k03531Qz1XWGx1ECxA1FFH9menqURazzQOVp1enh1M7RA24B4SXIGY9XX5PGEw" alt="" width="600px;" height="450px;" /></p>
<p>via <a href="http://assets.en.oreilly.com/1/event/44/Building%20Performance%20Into%20the%20New%20Yahoo_%20Homepage%20Presentation.pdf">Building Performance Into the New Yahoo! Homepage</a> by Nicholas Zakas, Yahoo!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.99css.com/?feed=rss2&amp;p=538</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>background:url(#)的性能问题</title>
		<link>http://www.99css.com/?p=528</link>
		<comments>http://www.99css.com/?p=528#comments</comments>
		<pubDate>Sat, 10 Jul 2010 04:36:25 +0000</pubDate>
		<dc:creator>ytzong</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[性能]]></category>

		<guid isPermaLink="false">http://www.99css.com/?p=528</guid>
		<description><![CDATA[很久之前写了使用 background:url(#) 解决 IE bug，原理是请求一张不存在的图片，不过写法有些问题。 写为 background:url(#) 会增加一个http请求，比如当前css的URL为 http://imgcache.qq.com/qzonestyle/project/css/xxx.css 则会多请求一次 http://imgcache.qq.com/qzonestyle/project/css/xxx.css# 和以下类似（详见解决IE6.0.2800压缩HTTP数据Bug之草记） http://imgcache.qq.com/qzonestyle/project/css/xxx.css?t=20100710.css 这样写可以避免这个问题 background: url(iesucks); &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- 亡羊补牢的分隔线 2010-7-17 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- 上面的测试过程有些问题，经过用真实环境重新测试这样搞效果更差，若调用该css的页面地址是 http://www.99css.com/ 则会先请求 http://www.99css.com/iesucks 之后301转向至 http://www.99css.com/iesucks/ 改用透明图片不太甘心，不如变态一点，直接调用该css本身，因为css已经被下载并缓存了 background: url(http://imgcache.qq.com/qzonestyle/project/css/xxx.css);]]></description>
			<content:encoded><![CDATA[<p>很久之前写了<a href="http://www.99css.com/?p=50">使用 background:url(#) 解决 IE bug</a>，原理是请求一张不存在的图片，不过写法有些问题。</p>
<p>写为</p>
<pre>background:url(#)</pre>
<p>会增加一个http请求，比如当前css的URL为</p>
<pre>http://imgcache.qq.com/qzonestyle/project/css/xxx.css</pre>
<p>则会多请求一次</p>
<pre>http://imgcache.qq.com/qzonestyle/project/css/xxx.css<strong>#</strong></pre>
<p>和以下类似（详见<a href="http://ued.taobao.com/blog/2007/03/28/%E8%A7%A3%E5%86%B3ie602800%E5%8E%8B%E7%BC%A9http%E6%95%B0%E6%8D%AEbug%E4%B9%8B%E8%8D%89%E8%AE%B0/">解决IE6.0.2800压缩HTTP数据Bug之草记</a>）</p>
<pre>http://imgcache.qq.com/qzonestyle/project/css/xxx.css?t=20100710.css</pre>
<p><del datetime="2010-07-15T03:08:34+00:00"><a href="http://twitter.com/old9/status/5994557577">这样</a>写可以避免这个问题</del></p>
<blockquote><p>background: url(iesucks);</p></blockquote>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- 亡羊补牢的分隔线 2010-7-17 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>上面的测试过程有些问题，经过用真实环境重新测试这样搞效果更差，若调用该css的页面地址是</p>
<pre>http://www.99css.com/</pre>
<p>则会先请求</p>
<pre>http://www.99css.com/iesucks</pre>
<p>之后301转向至</p>
<pre>http://www.99css.com/iesucks/</pre>
<p>改用透明图片不太甘心，不如变态一点，直接调用该css本身，因为css已经被下载并缓存了</p>
<pre>background: url(http://imgcache.qq.com/qzonestyle/project/css/xxx.css);</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.99css.com/?feed=rss2&amp;p=528</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>[招聘]UI设计师</title>
		<link>http://www.99css.com/?p=529</link>
		<comments>http://www.99css.com/?p=529#comments</comments>
		<pubDate>Tue, 29 Jun 2010 09:33:49 +0000</pubDate>
		<dc:creator>ytzong</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[招聘]]></category>

		<guid isPermaLink="false">http://www.99css.com/?p=529</guid>
		<description><![CDATA[深圳华为（有可能是其子公司） 3年以上设计经验 本科 + 英语CET-4（必需） 懂html/css/js 懂交互 待遇不错，急招！（上次招前端没好人选，后面找了外包公司，汗~） 简历至：hungjunling@huawei.com 根据电话记录整理（让他发邮件给我具体要求，说是公司有么斯限制），有疑问邮件联系]]></description>
			<content:encoded><![CDATA[<p>深圳华为（有可能是其子公司）</p>
<ol>
<li>3年以上设计经验</li>
<li>本科 + 英语CET-4（必需）</li>
<li>懂html/css/<strong>js</strong></li>
<li>懂交互</li>
</ol>
<p><strong>待遇不错，急招！</strong>（上次招前端没好人选，后面找了外包公司，汗~）</p>
<p>简历至：hungjunling@huawei.com</p>
<p>根据电话记录整理（让他发邮件给我具体要求，说是公司有么斯限制），有疑问邮件联系</p>
]]></content:encoded>
			<wfw:commentRss>http://www.99css.com/?feed=rss2&amp;p=529</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How IE9 Determines Document Mode</title>
		<link>http://www.99css.com/?p=521</link>
		<comments>http://www.99css.com/?p=521#comments</comments>
		<pubDate>Thu, 17 Jun 2010 03:53:47 +0000</pubDate>
		<dc:creator>ytzong</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[看图]]></category>

		<guid isPermaLink="false">http://www.99css.com/?p=521</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://lh4.googleusercontent.com/r3vIeJNzXptlIfQBpaK7J5I8cB8VqPFB1r6P6VEMKMS14sh4gaWnINE-uPkeMuVWXlctXVEBZsZg0GrX0EgLqm--J2UfDeMplF5x3k1uok2Lj3Ix"><img src="http://lh4.googleusercontent.com/r3vIeJNzXptlIfQBpaK7J5I8cB8VqPFB1r6P6VEMKMS14sh4gaWnINE-uPkeMuVWXlctXVEBZsZg0GrX0EgLqm--J2UfDeMplF5x3k1uok2Lj3Ix" alt="" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.99css.com/?feed=rss2&amp;p=521</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>HttpWatch 7.0 license 下载</title>
		<link>http://www.99css.com/?p=516</link>
		<comments>http://www.99css.com/?p=516#comments</comments>
		<pubDate>Mon, 07 Jun 2010 03:27:41 +0000</pubDate>
		<dc:creator>ytzong</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[工具]]></category>

		<guid isPermaLink="false">http://www.99css.com/?p=516</guid>
		<description><![CDATA[上篇提到了获得了license的事情，鉴于对现在的我和周遭的人价值不大，不如共享，注意8月29号过期！ 下载HttpWatch 7.0 license 能用最好，不能用买正版克:)]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.99css.com/?p=509">上篇</a>提到了获得了license的事情，鉴于对现在的我和周遭的人价值不大，不如共享，注意8月29号过期！</p>
<p><a href="http://www.99css.com/yt/httpwatch.lic">下载HttpWatch 7.0 license</a></p>
<p>能用最好，不能用买正版克:)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.99css.com/?feed=rss2&amp;p=516</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
