<?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>Kily&#039;s Blog</title>
	<atom:link href="http://www.keelii.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.keelii.com</link>
	<description>calls me kily</description>
	<lastBuildDate>Fri, 03 Feb 2012 08:22:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>再一次，更换主题</title>
		<link>http://www.keelii.com/one-more-time-new-theme-shufry/</link>
		<comments>http://www.keelii.com/one-more-time-new-theme-shufry/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 06:44:29 +0000</pubDate>
		<dc:creator>kily</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://www.keelii.com/?p=1731</guid>
		<description><![CDATA[咋一看离上次写博文（2011年10月4日）已经三个多月了，去年博客的更新频率显然是跟不上了，工作忙是一方面，另一方面也没发现有好的东西分享也就没怎么更新了。有可能的话今年工作走上正轨就会正常更新起来，换新主题算是个开始吧。 说下新主题吧，其实也没什么新主题摒弃了一些复杂无用的东西，追求简单、直接的表达方式，算是从Mac上学到的些东西吧。有一点要给大家道个歉：本站所有的友情链接我都取消了，我留在您站上的链接请自便哟。主要还是想静下心来写写字，不想给博客附加太多的东西，简简单单随笔而已。如果无意伤害了你那么抱歉。 新主题将不再支持IE9以下的浏览器，不是我不想支持，实在是没理由让我这么做了。web标准已经普及，是该做点事情提醒大家了。新主题是基于WordPress默认主题修改过来的，完全开源。如果你比较喜欢这个主题，请去我的github主页clone一份自用，Logo字体是Mac上默认的san-serif字体，请自行修改，如非必须请勿修改页脚文字。Github地址是： https://github.com/keelii/shufry PS.新主题正在测试完善细节中，有同学发现bug的话及时提醒我哈。 放出一张Mac下的缩略图，话说mac下感觉还是不错的^!^]]></description>
			<content:encoded><![CDATA[<p>咋一看离上次写博文（2011年10月4日）已经三个多月了，去年博客的更新频率显然是跟不上了，工作忙是一方面，另一方面也没发现有好的东西分享也就没怎么更新了。有可能的话今年工作走上正轨就会正常更新起来，换新主题算是个开始吧。</p>
<p>说下新主题吧，其实也没什么新主题摒弃了一些复杂无用的东西，追求简单、直接的表达方式，算是从Mac上学到的些东西吧。有一点要给大家道个歉：<span style="color: #ff0000;">本站所有的友情链接我都取消了，我留在您站上的链接请自便哟</span>。主要还是想静下心来写写字，不想给博客附加太多的东西，简简单单随笔而已。如果无意伤害了你那么抱歉。</p>
<p>新主题将<strong>不再支持</strong>IE9以下的浏览器，不是我不想支持，实在是没理由让我这么做了。web标准已经普及，是该做点事情提醒大家了。新主题是基于WordPress默认主题修改过来的，完全开源。如果你比较喜欢这个主题，请去我的github主页clone一份自用，Logo字体是Mac上默认的san-serif字体，请自行修改，如非必须请勿修改页脚文字。Github地址是：</p>
<blockquote><p><a href="https://github.com/keelii/shufry" target="_blank">https://github.com/keelii/shufry</a></p></blockquote>
<p>PS.新主题正在测试完善细节中，有同学发现bug的话及时提醒我哈。</p>
<p>放出一张Mac下的缩略图，话说mac下感觉还是不错的^!^</p>
<p style="text-align: center;"><a href="http://www.keelii.com/one-more-time-new-theme-shufry/%e5%b1%8f%e5%b9%95%e5%bf%ab%e7%85%a7-2012-02-03-%e4%b8%8b%e5%8d%882-15-32/" rel="attachment wp-att-1752"><img class="aligncenter  wp-image-1752" title="new theme shufry" src="http://www.keelii.com/wp-content/uploads/2012/02/屏幕快照-2012-02-03-下午2.15.32.png" alt="" width="700" height="438" data-pinit="registered" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.keelii.com/one-more-time-new-theme-shufry/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>三星Galaxy S Ⅱ(i9100)入手一月使用感受</title>
		<link>http://www.keelii.com/galaxy-s-2/</link>
		<comments>http://www.keelii.com/galaxy-s-2/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 05:44:30 +0000</pubDate>
		<dc:creator>kily</dc:creator>
				<category><![CDATA[生活的事儿]]></category>
		<category><![CDATA[galaxy]]></category>
		<category><![CDATA[galaxy s2]]></category>
		<category><![CDATA[i9100]]></category>

		<guid isPermaLink="false">http://www.keelii.com/?p=1693</guid>
		<description><![CDATA[话说离我丢i9000也用很长时间了，一个月前我再次入手了港版的Galaxy S Ⅱ(i9100)这款号称Android机皇的三星旗舰智能机。下面我就使用一个月的感觉和大家分享下，先晒下兔子： 版本：港版水货I9100 时间：2011年8月产 价格：￥3610 （仅供参考） 系统：港版最新Android2.3.5+基带版本XXXKI3+安智网春哥精简版（刚刷过，体验中&#8230;） &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; 一. Galaxy S Ⅱ版本选择 市面上的智能机型版本非常之多，就Galaxy S Ⅱ来说就有：欧版、港版、亚太版、美版、韩版。国内发行的有国行、联通定制版、移动定制版等。这对于新手来说会有点晕。其实主要的差别就在于：硬件差异（是否缩水）、ROM是否通刷、是否正品行货（有售后保证）、价格差异。 1. 硬件差异 比如美版的Galaxy S Ⅱ是单核1.2GHz的CPU、4.5英寸的Super Amoled Plus屏幕以及1750mA电池，而标配（欧版、港版等）则是双核的1.2GHzCPU、4.3英寸Super Amoled Plus屏幕；韩版的则多一根天线。 2. ROM是否通刷 由于Galaxy S Ⅱ的版本众多，各地发行的官方ROM也不尽相同。一般来说。欧版、港版、亚太版的是通刷机型，也就是说可以互刷。比如：港版的官方没出2.3.5的ROM就可以先刷欧版的最新ROM。韩版就不能通刷，只能使用出厂ROM（淘宝有店主可以刷、具体情况我不清楚）。 3. 是否正品行货 国内发布的都属正品行货，比如：国行Galaxy S Ⅱ、联通定制版、移动定制版。购买之后有正规发票且可以享受三星售后服务，其它水货版没有。而港版行货、欧版行货则需要海外代购。 4. 价格差异 一般来说三星的机器韩版最便宜（棒子很聪明^!^），当时（我购机的时候）的韩版i9000大概价位在3200多一点。其次是欧水3400左右。港水3600左右。港行4300左右。国行的机器可以去京东、卓越上查。 我选择港水的原因大概就是原生支持中文、ROM通刷且价格适中。 二. 入手渠道 &#8230; <a href="http://www.keelii.com/galaxy-s-2/">继续阅读 <span class="meta-nav">»</span></a>]]></description>
			<content:encoded><![CDATA[<p>话说离我丢i9000也用很长时间了，一个月前我再次入手了港版的Galaxy S Ⅱ(i9100)这款号称Android机皇的三星旗舰智能机。下面我就使用一个月的感觉和大家分享下，先晒下兔子：</p>
<blockquote><p>版本：港版水货I9100<br />
时间：2011年8月产<br />
价格：￥3610 （仅供参考）<br />
系统：港版最新Android2.3.5+基带版本XXXKI3+安智网春哥精简版（刚刷过，体验中&#8230;）</p>
</blockquote>
<p><span id="more-1693"></span></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<h3><span style="color: #0000ff;"><strong>一. Galaxy S Ⅱ版本选择</strong></span></h3>
<p>市面上的智能机型版本非常之多，就Galaxy S Ⅱ来说就有：欧版、港版、亚太版、美版、韩版。国内发行的有国行、联通定制版、移动定制版等。这对于新手来说会有点晕。其实主要的差别就在于：硬件差异（是否缩水）、ROM是否通刷、是否正品行货（有售后保证）、价格差异。</p>
<p><strong>1. 硬件差异</strong></p>
<p>比如美版的Galaxy S Ⅱ是单核1.2GHz的CPU、4.5英寸的Super Amoled Plus屏幕以及1750mA电池，而标配（欧版、港版等）则是双核的1.2GHzCPU、4.3英寸Super Amoled Plus屏幕；韩版的则多一根天线。</p>
<p><strong>2. ROM是否通刷</strong></p>
<p>由于Galaxy S Ⅱ的版本众多，各地发行的官方ROM也不尽相同。一般来说。欧版、港版、亚太版的是通刷机型，也就是说可以互刷。比如：港版的官方没出2.3.5的ROM就可以先刷欧版的最新ROM。韩版就不能通刷，只能使用出厂ROM（淘宝有店主可以刷、具体情况我不清楚）。</p>
<p><strong>3. 是否正品行货</strong></p>
<p>国内发布的都属正品行货，比如：国行Galaxy S Ⅱ、联通定制版、移动定制版。购买之后有正规发票且可以享受三星售后服务，其它水货版没有。而港版行货、欧版行货则需要海外代购。</p>
<p><strong>4. 价格差异</strong></p>
<p>一般来说三星的机器韩版最便宜（棒子很聪明^!^），当时（我购机的时候）的韩版i9000大概价位在3200多一点。其次是欧水3400左右。港水3600左右。港行4300左右。国行的机器可以去京东、卓越上查。</p>
<p>我选择港水的原因大概就是<span style="color: #ff0000;">原生支持中文、ROM通刷且价格适中。</span></p>
<h3><span style="color: #0000ff;"><strong>二. 入手渠道</strong></span></h3>
<p>网购大致三种：京东-卓越-新蛋（行货去这里）、淘宝（水行皆可）、团购（不建议，你懂的）</p>
<p>囊中羞涩就买水货吧，淘宝买家我选择小梅家，这个不解释。淘宝网I9000销量最高。虽然有很多买家反馈质量不好甚至假货。但大多是枪手。就我入手的这款9100来说应该是货真价实的港水。提醒大家淘宝入手安全系数不高，需提高警惕（至少混机锋、安智一个月^!^）被骗的大多是外行不懂没研究过。要是你一口气能背出9100的配置和版本差异想必也没人能骗过你。严重提醒收货时要多检查下，看是是否是翻新机等。鉴别方法网上都有，大家自己去看吧！</p>
<h3><span style="color: #0000ff;"><strong>三. 详细体验</strong></span></h3>
<p><strong>1-1. 软件系统ROM</strong></p>
<p>港版官方2.3.3ROM我用了一个月感觉挺不错的。系统很稳定，界面流畅的一塌糊涂。几乎不用任何第三方优化ROM或工具，这一点比9000时代的各种ROM各种优化模式来说好多了，至少对于小白用户来说足够用了。</p>
<p><strong>1-2. 软件UI界面</strong></p>
<p>三星自家的TouchWiz UI 4界面在用户体验上可以说是个很大的进步。流畅、顺滑的操作体验可以让你抛弃第三方Lanucher。</p>
<p><strong>2. 硬件CPU</strong></p>
<p>Galaxy S Ⅱ标配1.2GHz的自家Exynos 4210(猎户座)双核处理器。各种无压力，游戏、视频通吃。据说Galaxy S Ⅲ要出自家研制的2GHz四核处理器。震惊！！！</p>
<p>小提示：市面上的Android机大多是Nvdia Tegra2处理器。一些游戏也是基于它开发的，跑在i9100 Exynos 4210上会产生不兼容的情况。爱玩游戏的同学请三思。</p>
<p><strong>3. 硬件内存</strong></p>
<p>1Gb RAM + <span style="color: #ff0000;">机身16G内存</span>。我手机上目前大概有52个软件，完美运行无压力。值得一提的是i9100是机身16Gb的内存。可以扩展至32Gb。</p>
<p><strong>4. 屏幕</strong></p>
<p>4.5英寸的Super Amoled Plus屏幕，除了比不了ip4屏幕的细腻外可以秒杀任何一款手机屏幕。无论是色还原、可视角度、分辨率都出色到另人发指。</p>
<p><strong>5. 照片视频</strong></p>
<p>标配800万像素带闪光灯+前置200万摄像头。出色的自动聚焦以及各种软件处理使得你可以把i9100当成一个卡片机使。高清视频播放更是快的难以至信。1080p的高清视频瞬间定位能让你感觉到猎户座的巨大魅力。</p>
<p>实物拍摄：</p>
<p>非实际像素(3264*2448)，PS缩小过(800*600)JPG-80。</p>
<p><a href="http://www.keelii.com/wp-content/uploads/2011/10/2011-10-02-13.38a.jpg"><img class="size-full wp-image-1694 aligncenter" title="2011-10-02-13.38a" src="http://www.keelii.com/wp-content/uploads/2011/10/2011-10-02-13.38a.jpg" alt="点击查看大图" width="480" height="360" data-pinit="registered" /></a></p>
<p style="text-align: center;"><em>香山某草</em></p>
<p><a href="http://www.keelii.com/wp-content/uploads/2011/10/2011-09-03-18.45.16.jpg"><img class="size-full wp-image-1695 aligncenter" title="2011-09-03-18.45.16" src="http://www.keelii.com/wp-content/uploads/2011/10/2011-09-03-18.45.16.jpg" alt="点击查看大图" width="480" height="640" data-pinit="registered" /></a></p>
<p style="text-align: center;"><em>鸟巢灯</em></p>
<p><a href="http://www.keelii.com/wp-content/uploads/2011/10/2011-09-23-18.31.16.jpg"><img class="size-full wp-image-1696 aligncenter" title="2011-09-23-18.31.16" src="http://www.keelii.com/wp-content/uploads/2011/10/2011-09-23-18.31.16.jpg" alt="点击查看大图" width="480" height="360" data-pinit="registered" /></a></p>
<p style="text-align: center;"><em>某人生日</em></p>
<p><strong>6. 待机</strong></p>
<p>额~这个基本上是个杯具。1650mA的电池也只能抗我一天半的使用。核心在于那个万恶又艳丽无比的屏幕。</p>
<p><strong>总结</strong></p>
<p>凭着我对三星两款Galaxy S机型(i9000,i9100)的使用来说。我觉得：如果说i9000是为发烧友准备的的一部“刷机王”手机的话，那么i9100才是一部真正给大众用的手机。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.keelii.com/galaxy-s-2/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>前端开发利器vim</title>
		<link>http://www.keelii.com/perfect-editor-vim/</link>
		<comments>http://www.keelii.com/perfect-editor-vim/#comments</comments>
		<pubDate>Fri, 17 Jun 2011 11:01:21 +0000</pubDate>
		<dc:creator>kily</dc:creator>
				<category><![CDATA[web前端关注]]></category>
		<category><![CDATA[网页制作相关]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.keelii.com/perfect-editor-vim/</guid>
		<description><![CDATA[老早就听大湿们说vim是真正的程序员用的编辑器，我也是经过无数次的“使用-放弃-使用-放弃”之后，最终选择了vim这个神器。综合起来我用到的vim功能并且觉得好用的有以下几条： &#160; 1. 界面美观、轻巧、系统资源损耗小 2. 跨平台，Windows下的Gvim , Linux下的vi , Mac下的mac vim 3. 主题风格超级多（http://code.google.com/p/vimcolorschemetest/），我用monokai , 很经典、很酷 4. 代码自动补全+zencoding可以说是完美了 不幸的是vim的可定制性太高，很多参数设置都是需要手动配置的。而且Windows下用vim会出现一些问题，多数是因为用户不会配置.vimrc文件，一个设置就可能让你放弃vim。比如： 1. vim字体不好看 2. vim文件格式 3. vim的三种模式：命令、可视、插入 4. vim快捷键设置。 5. 。。。 很多新手可能会因为这些问题放弃使用vim。我建议先看看善用佳软博客的我这样使用VIM。 不过我有一个自己觉得好用的版本，是依照我个人习惯设置过来的。放出个压缩包给大家，大家可以参考下。使用方法如下： 1. 先下载gvim7.2的版本安装，点这里 2. 解压的我包到vim安装目录 3. 安装YaHei.Consolas字体（强烈建议安装） 我用的vim7.2：下载地址 YaHei.Consolas字体：下载地址 更新：adam的VIM视频教程很强大，强烈建议学习研究。地址： http://bbs.yuyadong.com/read.php?tid=3930]]></description>
			<content:encoded><![CDATA[<p><img style="display: inline; border-width: 0px;" title="vim" src="http://www.keelii.com/wp-content/uploads/2011/06/vim.jpg" border="0" alt="vim" width="504" height="204" /></p>
<p>老早就听大湿们说vim是真正的程序员用的编辑器，我也是经过无数次的“使用-放弃-使用-放弃”之后，最终选择了vim这个神器。综合起来我用到的vim功能并且觉得好用的有以下几条：</p>
<p><span id="more-1683"></span></p>
<p>&nbsp;</p>
<ul>
<li>1. 界面美观、轻巧、系统资源损耗小</li>
<li>2. 跨平台，Windows下的Gvim , Linux下的vi , Mac下的mac vim</li>
<li>3. 主题风格超级多（<a title="http://code.google.com/p/vimcolorschemetest/" href="http://code.google.com/p/vimcolorschemetest/">http://code.google.com/p/vimcolorschemetest/</a>），我用monokai , 很经典、很酷</li>
<li>4. 代码自动补全+zencoding可以说是完美了</li>
</ul>
<p><a href="http://www.keelii.com/wp-content/uploads/2011/06/277705626.png"><img style="display: inline; border-width: 0px;" title="点击查看大图" src="http://www.keelii.com/wp-content/uploads/2011/06/277705626_thumb.png" border="0" alt="点击查看大图" width="244" height="146" /></a></p>
<p>不幸的是vim的可定制性太高，很多参数设置都是需要手动配置的。而且Windows下用vim会出现一些问题，多数是因为用户不会配置.vimrc文件，一个设置就可能让你放弃vim。比如：</p>
<ul>
<li>1. vim字体不好看</li>
<li>2. vim文件格式</li>
<li>3. vim的三种模式：命令、可视、插入</li>
<li>4. vim快捷键设置。</li>
<li>5. 。。。</li>
</ul>
<p>很多新手可能会因为这些问题放弃使用vim。我建议先看看<strong>善用佳软</strong>博客的<a href="http://xbeta.info/my-gvim.htm" target="_blank">我这样使用VIM</a>。</p>
<p>不过我有一个自己觉得好用的版本，是依照我个人习惯设置过来的。放出个压缩包给大家，大家可以参考下。使用方法如下：</p>
<ul>
<li>1. 先下载gvim7.2的版本安装，<a href="http://dl.pconline.com.cn/html_2/1/117/id=39977&amp;pn=0.html" target="_blank">点这里</a></li>
<li>2. 解压的我包到vim安装目录</li>
<li>3. 安装YaHei.Consolas字体（强烈建议安装）</li>
</ul>
<p>我用的vim7.2：<a href="http://dl.dbank.com/c0mqmuphlj" target="_blank">下载地址</a></p>
<p>YaHei.Consolas字体：<a href="http://dl.dbank.com/c0yklp0wrd" target="_blank">下载地址</a></p>
<p>更新：adam的VIM<span style="color: #ff0000;"><strong>视频教程</strong></span>很强大，强烈建议学习研究。地址：</p>
<p><a href="http://bbs.yuyadong.com/read.php?tid=3930" target="_blank">http://bbs.yuyadong.com/read.php?tid=3930</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.keelii.com/perfect-editor-vim/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>CSS类名class用下划线&#8221;_&#8221;还是减号&#8221;-&#8221;</title>
		<link>http://www.keelii.com/css-class-naming-method/</link>
		<comments>http://www.keelii.com/css-class-naming-method/#comments</comments>
		<pubDate>Sat, 07 May 2011 06:23:18 +0000</pubDate>
		<dc:creator>kily</dc:creator>
				<category><![CDATA[CSS相关]]></category>
		<category><![CDATA[web前端关注]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://www.keelii.com/css-class-naming-method/</guid>
		<description><![CDATA[其实这个问题早先已经有人讨论过了，但是没有定论。一个人写代码的时候爱咋样咋样，但量在团队合作的时候就会出现问题，一般来说都会制定相应的标准来保证代码风格的一致性。 关于CSS类名的命名方式大致有三种： 1. 下划线，即：class=”main_nav” 2. 减　号，即：class=”main-nav” 3. 驼峰式，即：class=”mainNav” 三种方法各有利利弊，我大概总结了下面几点： 1.下划线 优点：和程序兼容性好，因为所有程序语言里的变量命名都可以用下划线。 缺点：生硬难看，多余一个字符。 2.减号 优点：与CSS代码原生匹配，比如：text-align:center; 视觉上有一致性，也很美观。 缺点：用减号分割的字符一般的文本编辑器会认为它是两个字符，从而影响“双击选中”操作，另外在程序里减号是变量的运算符，可能会造程序书写困难。 3.驼峰式 优点：符合编程语言命名规范，节省1个字节 缺点：XHTML规定都是小写，用某些代码整理工具可能会误把类名全部转化成小写 大家如果觉得有什么要补充的可以讨论下，个人还是喜欢减号多一点。因为比较原生嘛！]]></description>
			<content:encoded><![CDATA[<p>其实这个问题早先已经有人讨论过了，但是没有定论。一个人写代码的时候爱咋样咋样，但量在团队合作的时候就会出现问题，一般来说都会制定相应的标准来保证代码风格的一致性。</p>
<p>关于CSS类名的命名方式大致有三种：</p>
<ul>
<li>1. 下划线，即：class=”main_nav”</li>
<li>2. 减　号，即：class=”main-nav”</li>
<li>3. 驼峰式，即：class=”mainNav”</li>
</ul>
<p>三种方法各有利利弊，我大概总结了下面几点：</p>
<h2>1.下划线</h2>
<p><strong>优点：</strong>和程序兼容性好，因为所有程序语言里的变量命名都可以用下划线。</p>
<p><strong>缺点：</strong>生硬难看，多余一个字符。</p>
<h2>2.减号</h2>
<p><strong>优点：</strong>与CSS代码原生匹配，比如：text-align:center; 视觉上有一致性，也很美观。</p>
<p><strong>缺点：</strong>用减号分割的字符一般的文本编辑器会认为它是两个字符，从而影响“双击选中”操作，另外在程序里减号是变量的运算符，可能会造程序书写困难。</p>
<h2>3.驼峰式</h2>
<p><strong>优点：</strong>符合编程语言命名规范，节省1个字节</p>
<p><strong>缺点：</strong>XHTML规定都是小写，<del>用某些代码整理工具可能会误把类名全部转化成小写</del></p>
<p>大家如果觉得有什么要补充的可以讨论下，个人还是喜欢减号多一点。因为比较原生嘛！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.keelii.com/css-class-naming-method/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>招聘前端开发工程师（帮忙）</title>
		<link>http://www.keelii.com/job-opportunity/</link>
		<comments>http://www.keelii.com/job-opportunity/#comments</comments>
		<pubDate>Fri, 15 Apr 2011 08:18:58 +0000</pubDate>
		<dc:creator>kily</dc:creator>
				<category><![CDATA[web前端关注]]></category>
		<category><![CDATA[招聘]]></category>

		<guid isPermaLink="false">http://www.keelii.com/job-opportunity/</guid>
		<description><![CDATA[好吧！沉默了一阵子的总算能有机会写写博客了，最近也是为了工作的事情忙里忙外。现在帮朋友发一则招聘信息。是我特别想去但没有去了的一次机会，如果有意应聘的同学们可抓紧哦。 具体要求如下（http://www.douguo.com/hr.html）： 职位名称：前端开发工程师 招聘人数：1名 岗位职责： &#160; 1. 负责豆果网web产品的前端开发及维护工作； &#160; 2. 负责web产品前端相关技术的规范标准。 任职条件： &#160; 1. 热爱前端开发、喜欢钻研各类互联网应用； &#160; 2. 2年以上前端开发经验，熟悉web标准化，性能优化方法，有成功案例； &#160; 3. 熟悉CSS，JS框架，有较强的学习能力； &#160; 4. 熟悉PHP/Actionscript优先。 多说一句，如果你是迫于生计想找一份工作那么这工作未必适合，如果你对前端充满激情并渴望有一片能挥洒自己青春的地方，那么这份工作将非常适合你。 关于豆果你还可以看看以下信息了解更多 http://fairyfish.net/2011/03/22/douguo/ http://tech.qq.com/a/20110304/000171.htm 联系方式： 直接发送简历到：hr@douguo.com 或者联系我：keeliizhou@gmail.com]]></description>
			<content:encoded><![CDATA[<p>好吧！沉默了一阵子的总算能有机会写写博客了，最近也是为了工作的事情忙里忙外。现在帮朋友发一则招聘信息。是我特别想去但没有去了的一次机会，如果有意应聘的同学们可抓紧哦。 </p>
<p><span id="more-1676"></span>
</p>
<p>具体要求如下（<a href="http://www.douguo.com/hr.html）：">http://www.douguo.com/hr.html</a>）：</p>
<p><strong>职位名称</strong>：前端开发工程师     <br /><strong>招聘人数</strong>：1名     <br /><strong>岗位职责</strong>： </p>
<p>&#160; 1. 负责豆果网web产品的前端开发及维护工作；    <br />&#160; 2. 负责web产品前端相关技术的规范标准。 </p>
<p><strong>任职条件</strong>： </p>
<p>&#160; 1. 热爱前端开发、喜欢钻研各类互联网应用；    <br />&#160; 2. 2年以上前端开发经验，熟悉web标准化，性能优化方法，有成功案例；     <br />&#160; 3. 熟悉CSS，JS框架，有较强的学习能力；     <br />&#160; 4. 熟悉PHP/Actionscript优先。     </p>
<p>多说一句，如果你是迫于生计想找一份工作那么这工作未必适合，如果你对前端充满激情并渴望有一片能挥洒自己青春的地方，那么这份工作将非常适合你。 </p>
<p>关于豆果你还可以看看以下信息了解更多 </p>
<p><a href="http://fairyfish.net/2011/03/22/douguo/">http://fairyfish.net/2011/03/22/douguo/</a>     <br /><a href="http://tech.qq.com/a/20110304/000171.htm">http://tech.qq.com/a/20110304/000171.htm</a></p>
<p>联系方式：    <br />直接发送简历到：hr@douguo.com     <br />或者联系我：keeliizhou@gmail.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.keelii.com/job-opportunity/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>面向对象的JavaScript文字滚动效果</title>
		<link>http://www.keelii.com/js-oop-scrolltext/</link>
		<comments>http://www.keelii.com/js-oop-scrolltext/#comments</comments>
		<pubDate>Sun, 20 Feb 2011 09:21:44 +0000</pubDate>
		<dc:creator>kily</dc:creator>
				<category><![CDATA[JavaScript学习]]></category>

		<guid isPermaLink="false">http://www.keelii.com/js-oop-scrolltext/</guid>
		<description><![CDATA[看CJ的JavaScript教程到滚动文字效果那节，觉得很受用。大致修改了下放上来和大家分享。类似于门户网站上面的文字滚动效果，如有类同纯属虚构^!^ HTML： &#60;h1 id="title"&#62;This a H1 Title, isn't it?&#60;/h1&#62; &#60;div class="clear"&#62;&#60;/div&#62; &#60;input type="button" id="btn-1" value="开始" /&#62; &#60;input type="button" id="btn-2" value="结束" /&#62; 木有什么好说的，主要看JS。 JavaScript: window.onload = function () { var getID = function (id) { return document.getElementById(id) }, startBtn = getID("btn-1"), &#8230; <a href="http://www.keelii.com/js-oop-scrolltext/">继续阅读 <span class="meta-nav">»</span></a>]]></description>
			<content:encoded><![CDATA[<p>看<a href="http://www.keelii.com/js-regular-expression-learning-part-one/" target="_blank">CJ</a>的JavaScript教程到滚动文字效果那节，觉得很受用。大致修改了下放上来和大家分享。类似于门户网站上面的文字滚动效果，如有类同纯属虚构^!^</p>
<p><strong>HTML：</strong></p>
<pre>&lt;h1 id="title"&gt;This a H1 Title, isn't it?&lt;/h1&gt;
&lt;div class="clear"&gt;&lt;/div&gt;
&lt;input type="button" id="btn-1" value="开始" /&gt;
&lt;input type="button" id="btn-2" value="结束" /&gt;</pre>
<p>木有什么好说的，主要看JS。</p>
<p><span id="more-1670"></span></p>
<p><strong>JavaScript:</strong></p>
<pre>window.onload = function () {
	var getID = function (id) {
			return document.getElementById(id)
		},
		startBtn = getID("btn-1"),
		stopBtn = getID("btn-2"),
		H1 = getID("title");

	function ScrollText(s, ele, t) {
		/**
		 * 创建一个文字滚动对象
		 * s (要滚动的文字)
		 * ele (HTML节点对象)
		 * t (滚动时间隔)
		 */
		this.s = s.split(""); //将传入字符串分割成数组
		this.ele = ele;
		this.t = t || 300; //默认值为300毫秒
	}
	ScrollText.prototype = {
		start: function () { //开始滚动方法
			var s = this.s,
				ele = this.ele;
			//alert(s.shift());
			clearInterval(this.interval);
			this.interval = setInterval(function () {
				s.push(s.shift()); //将字符串数组第一个字符剪切并添加到数组末尾
				//类似挤牙膏^!^
				ele.innerHTML = s.join("");
			}, this.t);
		},
		stop: function () { //结束滚动方法
			clearInterval(this.interval);
		}
	}

	var st = new ScrollText("这是可以设置的滚动文字哦！", H1, 500);

	//“实例化”对象
	startBtn.onclick = function () {
		st.start();
	};
	stopBtn.onclick = function () {
		st.stop();
	}

}</pre>
<p>该说的都在注释里。好吧，不想看代码 看什么？看Demo呀！<a href="http://www.keelii.com/learning/js-learning/js-oop-scrolltext.html" target="_blank">点击这里查看</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.keelii.com/js-oop-scrolltext/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>新的一年，新的开始</title>
		<link>http://www.keelii.com/new-year-new-beginning/</link>
		<comments>http://www.keelii.com/new-year-new-beginning/#comments</comments>
		<pubDate>Sat, 12 Feb 2011 05:08:27 +0000</pubDate>
		<dc:creator>kily</dc:creator>
				<category><![CDATA[生活的事儿]]></category>
		<category><![CDATA[过年]]></category>

		<guid isPermaLink="false">http://www.keelii.com/new-year-new-beginning/</guid>
		<description><![CDATA[好吧！既然过年就得说说这吭爹的春运了，回北京哥买到了长达26小时行程的站票一张（汉中-北京），回北京搞得脚肿脸青的。丫的这辈子都不买站票了。 你丫铁道部少发行一张站票会死啊， 你们晚上一天班晚走一天会死啊， 补卧铺，补你妹。活该你没买到坐票。 那谁谁上火车之前先上一趟厕所会死啊， 那谁谁少卖一瓶水，少卖个手电筒你会死啊， 大哥，大叔 包都是你的多少倍了？不学蚂蚁会死啊， 妹子，上车上不来就算了吧，活该你上来下不去。 你丫列车长，那么多人，那么高温，不开暖气你会死啊。 那谁谁少放一遍《爱情买卖》你会死呀， …… 新的一年，准备辞职找份新工作。希望今看能够学到更多的知识与大家分享！同时也要求工作啦！]]></description>
			<content:encoded><![CDATA[<p>好吧！既然过年就得说说这吭爹的春运了，回北京哥买到了长达26小时行程的站票一张（汉中-北京），回北京搞得脚肿脸青的。丫的这辈子都不买站票了。</p>
<p>你丫铁道部少发行一张站票会死啊，</p>
<p>你们晚上一天班晚走一天会死啊，</p>
<p>补卧铺，补你妹。活该你没买到坐票。</p>
<p>那谁谁上火车之前先上一趟厕所会死啊，</p>
<p>那谁谁少卖一瓶水，少卖个手电筒你会死啊，</p>
<p>大哥，大叔 包都是你的多少倍了？不学蚂蚁会死啊，</p>
<p>妹子，上车上不来就算了吧，活该你上来下不去。</p>
<p>你丫列车长，那么多人，那么高温，不开暖气你会死啊。</p>
<p>那谁谁少放一遍《爱情买卖》你会死呀，</p>
<p>……</p>
<p>新的一年，准备辞职找份新工作。希望今看能够学到更多的知识与大家分享！同时也要求工作啦！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.keelii.com/new-year-new-beginning/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Eclipse中用SVN简单部署你的项目</title>
		<link>http://www.keelii.com/build-project-in-eclipse-with-svn/</link>
		<comments>http://www.keelii.com/build-project-in-eclipse-with-svn/#comments</comments>
		<pubDate>Sat, 18 Dec 2010 08:33:34 +0000</pubDate>
		<dc:creator>kily</dc:creator>
				<category><![CDATA[web前端关注]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.keelii.com/build-project-in-eclipse-with-svn/</guid>
		<description><![CDATA[在实际的项目开发总会遇到一些问题，比如多人协作coding的时候更新版本不统一。简单说就是： 当你在修改代码的时间可能其它人也在修改，为了避免更新版本时出现混乱，我们会用到SVN也是是版本管理。 理论知识：SVN ，subversion 神马SVN服务器，客户端的就不多说了，自己去查，我主要给大家说说如何在Eclipse中用SVN。 一、SVN服务器 我们可以选择GoogleCode提供的。当然前提是你知道Open Source的意思，也就是说项目的源代码是以你选择的某种开源协议放在Google服务器上的。不放心的可以自己在本地搭建SVN服务器，建议新手用这个VisualSVN(即有图形界面的SVN服务器端) 1.打开http://code.google.com/hosting/createProject按自己的需要创建一个项目，不过要记住在Version control system里面选择Subversion就行。 2.创建完成后点击导航栏上面的“Source”项目，这里Google会给出项目提交的SVN库(repo)地址，比如我的是：https://kily-wordpress-theme.googlecode.com/svn/trunk/。点击下面的google.com password进入设置界面，记下Google自动为你生成的SVN链接密码。 二、SVN客户端 这一步我们不需要自己建客户端，因为我们要用Eclipse的一个插件，其实也算是SVN客户端，唠叨了？囧~如果你没有Eclipse的话也可以试试这个SVN客户端：Tortoisesvn 1.在Eclipse中点击“帮助-添加一个新插件”（help-install new software）输入Eclipse插件subeclipse的更新地址：http://subclipse.tigris.org/update_1.6.x安装完成后重启Eclipse。 2.在Eclipse中调出SVN视图：window - show view – other – SVN - SVN资源库。右键新建一个SVN资源库。URL填第二步中Google给的地址。下一步直到完成。 3.在Eclipse的项目视图中右键一个项目-Team – ShareProject - SVN一路下一步。不过别忘写初始导入的注释。 4.提交(commit)你的项目并加上注释，右键项目-team-提交(commin)即可。提示你输入用户名时就填你Google账号地址比如：keeliizhou@gmail.com密码用第二步Google为你自动生成的登陆。好了你的项目已经在Google的服务器上了。接下来就试着更新下版本吧。 三、使用版本更新及对比 改动项目里面任何一个文件的源代码。比如多加一行。保存后commit到SVN服务器并写下改动注释。 右键那个文件compareWith - 与分支/标记进行比较。选择以前的那个版本确定。你就能很清晰的发现两个版本之间的异同了！]]></description>
			<content:encoded><![CDATA[<p>在实际的项目开发总会遇到一些问题，比如多人协作coding的时候更新版本不统一。简单说就是：</p>
<p>当你在修改代码的时间可能其它人也在修改，为了避免更新版本时出现混乱，我们会用到SVN也是是版本管理。</p>
<p>理论知识：<a title="百那个度一下SVN，你就晓得！" href="http://baike.baidu.com/view/183128.htm" target="_blank">SVN</a> ，<a title="SVN的缩写" href="http://baike.baidu.com/view/429581.htm" target="_blank">subversion</a></p>
<p>神马SVN服务器，客户端的就不多说了，自己去查，我主要给大家说说如何在Eclipse中用SVN。</p>
<p>  <span id="more-1664"></span><br />
<h3>一、SVN服务器</h3>
<p>我们可以选择GoogleCode提供的。当然前提是你知道Open Source的意思，也就是说项目的源代码是以你选择的某种开源协议放在Google服务器上的。不放心的可以自己在本地搭建SVN服务器，建议新手用这个<a title="Windows下的非免费SVN服务器" href="http://www.onlinedown.net/soft/89603.htm" target="_blank">VisualSVN</a>(即有图形界面的SVN服务器端)</p>
<p>1.打开<a title="http://code.google.com/hosting/createProject" href="http://code.google.com/hosting/createProject">http://code.google.com/hosting/createProject</a>按自己的需要创建一个项目，不过要记住在Version control system里面选择Subversion就行。</p>
<p>2.创建完成后点击导航栏上面的“Source”项目，这里Google会给出项目提交的SVN库(repo)地址，比如我的是：<tt><a href="https://kily-wordpress-theme.googlecode.com/svn/trunk/">https://kily-wordpress-theme.googlecode.com/svn/trunk/</a>。点击下面的google.com password进入设置界面，记下Google自动为你生成的SVN链接密码。</tt></p>
<h3><tt>二、SVN客户端</tt></h3>
<p><tt>这一步我们不需要自己建客户端，因为我们要用Eclipse的一个插件，其实也算是SVN客户端，唠叨了？囧~如果你没有Eclipse的话也可以试试这个SVN客户端：<a title="免费的SVN客户端" href="http://tortoisesvn.tigris.org/" target="_blank">Tortoisesvn</a></tt></p>
<p><tt>1.在Eclipse中点击“帮助-添加一个新插件”（help-install new software）输入Eclipse插件<a title="相当于SVN客户端" href="http://subclipse.tigris.org/" target="_blank">subeclipse</a>的更新地址：<a href="http://subclipse.tigris.org/update_1.6.x">http://subclipse.tigris.org/update_1.6.x</a>安装完成后重启Eclipse。</tt></p>
<p><tt>2.在Eclipse中调出SVN视图：window - show view – other – SVN - SVN资源库。右键新建一个SVN资源库。URL填第二步中Google给的地址。下一步直到完成。</tt></p>
<p><tt>3.在Eclipse的项目视图中右键一个项目-Team – ShareProject - SVN一路下一步。不过别忘写初始导入的注释。</tt></p>
<p><tt>4.提交(commit)你的项目并加上注释，右键项目-team-提交(commin)即可。提示你输入用户名时就填你Google账号地址比如：<a href="mailto:keeliizhou@gmail.com">keeliizhou@gmail.com</a>密码用第二步Google为你自动生成的登陆。好了你的项目已经在Google的服务器上了。接下来就试着更新下版本吧。</tt></p>
<h3><tt>三、使用版本更新及对比</tt></h3>
<p><tt>改动项目里面任何一个文件的源代码。比如多加一行。保存后commit到SVN服务器并写下改动注释。</tt></p>
<p><tt>右键那个文件compareWith - 与分支/标记进行比较。选择以前的那个版本确定。你就能很清晰的发现两个版本之间的异同了！</tt></p>
]]></content:encoded>
			<wfw:commentRss>http://www.keelii.com/build-project-in-eclipse-with-svn/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>WordPress3.0无限级分类下拉菜单制作方法(有不足)</title>
		<link>http://www.keelii.com/wordpress-wp-nav-menu/</link>
		<comments>http://www.keelii.com/wordpress-wp-nav-menu/#comments</comments>
		<pubDate>Sat, 04 Dec 2010 02:30:24 +0000</pubDate>
		<dc:creator>kily</dc:creator>
				<category><![CDATA[CSS相关]]></category>
		<category><![CDATA[JavaScript学习]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.keelii.com/wordpress-wp-nav-menu/</guid>
		<description><![CDATA[帮朋友做个小导航时用到了下拉菜单，话说WordPress3.0以上版本的”wp_nav_menu()”真是好用，加上主题自定义菜单的设置简直可以说是完美的网站导航。 涉及到下拉菜单制作的方法最核心的还是鼠标移动到上面的处理。下面是调用wp_nav_menu()函数后的HTML结构(做解释用)： &#60;div class="menu-菜单名-container"&#62; &#60;ul class="menu" id="menu-菜单名"&#62; &#60;li class="menu-tiem"&#62; &#60;a href="#"&#62;菜单项目1&#60;/a&#62; &#60;ul class="sub-menu"&#62; &#60;li&#62;&#60;a href="#"&#62;子菜单项目1-1&#60;/a&#62;&#60;/li&#62; &#60;li&#62;&#60;a href="#"&#62;子菜单项目1-2&#60;/a&#62;&#60;/li&#62; ... &#60;/ul&#62; &#60;/li&#62; &#60;li&#62;&#60;a href="#"&#62;菜单项目2&#60;/a&#62;&#60;/li&#62; &#60;/ul&#62; &#60;/div&#62; 这是一种很经典很优雅的导航HTML代码，在IE6以上以及标准浏览器中要实现下拉效果只用一句CSS就能搞定。比如下面的示例代码(可自定义)： .menu li a { float:left; height:35px; width:100px;/*菜单高度与宽度*/ line-height:35px; text-align:center;  color:#ccc; text-align:center; } .menu li { &#8230; <a href="http://www.keelii.com/wordpress-wp-nav-menu/">继续阅读 <span class="meta-nav">»</span></a>]]></description>
			<content:encoded><![CDATA[<p>帮朋友做个小导航时用到了下拉菜单，话说WordPress3.0以上版本的”wp_nav_menu()”真是好用，加上主题自定义菜单的设置简直可以说是完美的网站导航。</p>
<p>涉及到下拉菜单制作的方法最核心的还是鼠标移动到上面的处理。下面是调用wp_nav_menu()函数后的HTML结构(做解释用)：</p>
<p><span id="more-1659"></span></p>
<pre>&lt;div class="menu-菜单名-container"&gt;
	&lt;ul class="menu" id="menu-菜单名"&gt;
		&lt;li class="menu-tiem"&gt;
			&lt;a href="#"&gt;菜单项目1&lt;/a&gt;
			&lt;ul class="sub-menu"&gt;
				&lt;li&gt;&lt;a href="#"&gt;子菜单项目1-1&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a href="#"&gt;子菜单项目1-2&lt;/a&gt;&lt;/li&gt;
				...
			&lt;/ul&gt;
		&lt;/li&gt;
		&lt;li&gt;&lt;a href="#"&gt;菜单项目2&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
&lt;/div&gt;</pre>
<p>这是一种很经典很优雅的导航HTML代码，在IE6以上以及标准浏览器中要实现下拉效果只用一句CSS就能搞定。比如下面的示例代码(可自定义)：</p>
<pre>.menu li a { float:left; height:35px; width:100px;/*菜单高度与宽度*/ line-height:35px; text-align:center;  color:#ccc; text-align:center; }
.menu li { float:left; height:1%; background:#000; }
.menu-sjys-container { position:absolute; z-index:1000;}
.menu li ul li { clear:both; border-bottom:1px solid #333; border-right:none;  }
.menu-item  { position:relative; border-right:1px dotted #333; }
.menu-item:hover&gt;.sub-menu{ display:block; <span style="color: #ff0000;">/*下拉效果只用到这一段代码*/</span> }
.sub-menu { position:relative; left:1px; margin:0; z-index:101; display:none;<span style="color: #ff0000;">/*一般情况下隐藏子菜单*/</span> }
.sub-menu ul.sub-menu { position:absolute; left:100px; top:0;}</pre>
<p>上面的这两段代码在IE6以上以及标准浏览器中表现的很完美，原因是IE6这种老浏览器还不支持任何标签的伪类属性，即htmlTag:hover。所以为了兼容我们又不得不用JS来实现(纯CSS亦可)。我大概写了一段JS可以勉强达到效果，但不知道为什么在IE中切换菜单时会有闪动的感觉，这个得求教JS高手了哈。</p>
<pre><span style="color: #ff0000;">&lt;!--[if lt IE 7]&gt; </span>&lt;script type="text/javascript"&gt;
//&lt;![CDATA[
/*导航联动效果*/
(function () {
	function getElementsByClass(searchClass, node, tag) {
		var classElements = new Array();
		if (node == null) node = document;
		if (tag == null) tag = '*';
		var els = node.getElementsByTagName(tag);
		var elsLen = els.length;
		var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)");
		for (i = 0, j = 0; i &lt; elsLen; i++) {
			if (pattern.test(els[i].className)) {
				classElements[j] = els[i];
				j++;
			}
		}
		return classElements;
	}
	function hoverSubMenu(node, flag) {
		node.onmouseover = function () {
			var subMenu = getElementsByClass("sub-menu", this)[0];
			if (subMenu) {
				subMenu.style.display = "block";
			}
		}
		node.onmouseleave = function () {
			var subMenu = getElementsByClass("sub-menu", this)[0];
			if (subMenu) {
				subMenu.style.display = "none";
			}
		}
	}
	var menuItems = getElementsByClass("menu-item");
	for (var i = 0; i &lt; menuItems.length; i++) {
		hoverSubMenu(menuItems[i], i);
	}
})();
//]]&gt;
&lt;/script&gt;
<span style="color: #ff0000;">&lt;![endif]—&gt;</span></pre>
<p><span style="text-decoration: line-through;">问题应该出在不同浏览器对JS中onmouseover事件处理的方法上。但我还没有弄清楚，希望有“大湿”指导下哈。</span></p>
<p>问题在于W3C对onmouseout事件处理方法不是很理想，微软IE支持的onmouseleave方法确可以正常工作。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.keelii.com/wordpress-wp-nav-menu/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>CSS分组（多元素）选择器使用小记</title>
		<link>http://www.keelii.com/css-group-sector-learning/</link>
		<comments>http://www.keelii.com/css-group-sector-learning/#comments</comments>
		<pubDate>Sat, 20 Nov 2010 04:36:52 +0000</pubDate>
		<dc:creator>kily</dc:creator>
				<category><![CDATA[CSS相关]]></category>
		<category><![CDATA[网页制作相关]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[选择器]]></category>

		<guid isPermaLink="false">http://www.keelii.com/css-group-sector-learning/</guid>
		<description><![CDATA[从来都不要认为一件事情简单就不去仔细研究，CSS本身是比较简的但要想完全凌驾其上也不是一朝一夕的事，平常做页面时就要多做总结，积累才是学习的最好方法。 正题： 在我们写CSS时遇到两个选择器不同规则相同的情况大多会用到多元素选择器，因为这样在某种情况下会少写一条相同的规则，比如： #display-block{ display:block; } .display-block{ display:block; } 合并为： #display-block, .display-block{ display:block; } 这个地球人都知道？往下看… 毫无疑问上面这种方法大大的精简了代码，但是在实际操作中我发现并非所有的情况都如我所愿。比如： #display-block{ display:block; color:red; } .display-block{ display:block; color:black; } 合并为： #display-block{ color:red; } .display-block{ color:black; } #display-block, .display-block{ display:block; } 对比一下这两段代码，你会发现下面合并过的比上面没合并的多了大约18个字符，换句话说就是合并并没有达到精简代码的效果，反而比原来的还长了。 总结一：当某选择器有单一CSS规则时，用分组选择器会达到精简代码的作用。 再来看一种情况： #f1{ display:block; &#8230; <a href="http://www.keelii.com/css-group-sector-learning/">继续阅读 <span class="meta-nav">»</span></a>]]></description>
			<content:encoded><![CDATA[<p>从来都不要认为一件事情简单就不去仔细研究，CSS本身是比较简的但要想完全凌驾其上也不是一朝一夕的事，平常做页面时就要多做总结，积累才是学习的最好方法。</p>
<p>正题：</p>
<p>在我们写CSS时遇到两个选择器不同规则相同的情况大多会用到多元素选择器，因为这样在某种情况下会少写一条相同的规则，比如：</p>
<pre>
#display-block{ display:block; }
.display-block{ display:block; }</pre>
<p>合并为：</p>
<pre>
#display-block, .display-block{ display:block; }</pre>
<p>这个地球人都知道？往下看…<br />
毫无疑问上面这种方法大大的精简了代码，但是在实际操作中我发现并非所有的情况都如我所愿。比如：</p>
<pre>
#display-block{ display:block; color:red; }
.display-block{ display:block; color:black; }</pre>
<p>合并为：</p>
<pre>
#display-block{ color:red; }
.display-block{ color:black; }
#display-block, .display-block{ display:block; }</pre>
<p>对比一下这两段代码，你会发现下面合并过的比上面没合并的多了大约18个字符，换句话说就是合并并没有达到精简代码的效果，反而比原来的还长了。</p>
<p><span style="color: #0000ff;">总结一</span>：<strong>当某选择器有单一CSS规则时，用分组选择器会达到精简代码的作用。</strong></p>
<p>再来看一种情况：</p>
<pre>
<span style="color: #ff0000;">#f1{</span> display:block; <span style="color: #ff0000;">color:red; }</span>
<span style="color: #ff0000;">#f2{</span> display:block; <span style="color: #ff0000;">color:black; }</span></pre>
<p>合并为：</p>
<pre>
<span style="color: #ff0000;">#f1{ color:red; }</span>
<span style="color: #ff0000;">#f2{ clor:black; }</span>
#f1,#f2{ display:block; }</pre>
<p>对比一下合并后大概节省了7个字符。</p>
<p><span style="color: #0000ff;">总结二</span>：<strong>当N个（短）选择器下含有至少1条相同CSS规则，用分组选择器优化其中<span style="color: #ff0000;">某条</span>规则时可能会达到效果。</strong></p>
<p>能否达到效果要看其中的“短”和“某条”的字符长度。用个小学生方程吧：设它俩字符长度为X，Y 那么：</p>
<p>当 Y*N&gt;X*N+(N-1)+2+Y 时，<strong>总结二</strong>成立。否则不成立。</p>
<p>解释：</p>
<ul>
<li>N-1表示分组选择器之间的“,”</li>
<li>2表示多出来的“{}”</li>
</ul>
<p>好了！一个简单的结论出来了哈。不过貌似没多大意义，也只做折腾罢了。匆深究^!^</p>
<p>附：<a href="http://www.cssforest.org/blog/" target="_blank">CSS森林</a>博客作者制作的CSS压缩工具：<a href="http://dl.dbank.com/c0t3lyax9g" target="_blank">mergeCSS</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.keelii.com/css-group-sector-learning/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
	</channel>
</rss>

