<?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>肉包子的摇滚生活 &#187; Blueprints</title>
	<atom:link href="http://www.fangyuqiang.com/archives/tag/blueprints/feed" rel="self" type="application/rss+xml" />
	<link>http://www.fangyuqiang.com</link>
	<description>在通往架构师的路上努力着...</description>
	<lastBuildDate>Mon, 14 Mar 2011 03:48:39 +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>SourceForge界面大变化，YUI grid css亮相</title>
		<link>http://www.fangyuqiang.com/archives/475</link>
		<comments>http://www.fangyuqiang.com/archives/475#comments</comments>
		<pubDate>Mon, 10 Aug 2009 07:15:55 +0000</pubDate>
		<dc:creator>fangyuqiang</dc:creator>
				<category><![CDATA[Html+CSS]]></category>
		<category><![CDATA[YUI CSS]]></category>
		<category><![CDATA[Blueprints]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.fangyuqiang.com/?p=475</guid>
		<description><![CDATA[很久之前就知道SourceForge界面做了大的变化，确实变得非常的NICE，用着很爽。这2天无意中用firebug看了下，惊奇的发现居然是用YUI grid css来做的，JavaScript用的是jquery。 我也用yui做过几个项目，yui提供的快速布局工具确实可以很快的生成布局。不过总觉得有缺憾，也找不到一个很好的网站使用yui grid css做的，SourceForge确实让我惊艳了。。因为原来用yui grid做的时候，发现它的布局太死板，没办法做细节调整，后来我就投奔blueprints阵容了，不过，专业级的人物果然不一样，死板的布局一样可以做出像SourceForge现在这样强大的界面。 点击可以查看下新版的SourceForge： http://sourceforge.net/ 不过，说实话，还是blueprints更好用，它对界面布局的颗粒度更细，更自由。从blueprints提供的理念来做，理论上可以做出任意大小栅格的布局的。而这点，yui grid很难。]]></description>
			<content:encoded><![CDATA[<p>很久之前就知道SourceForge界面做了大的变化，确实变得非常的NICE，用着很爽。这2天无意中用firebug看了下，惊奇的发现居然是用<a href="http://developer.yahoo.com/yui/grids/">YUI grid css</a>来做的，JavaScript用的是jquery。<span id="more-475"></span></p>
<p>我也用yui做过几个项目，yui提供的快速布局工具确实可以很快的生成布局。不过总觉得有缺憾，也找不到一个很好的网站使用yui grid css做的，SourceForge确实让我惊艳了。。因为原来用yui grid做的时候，发现它的布局太死板，没办法做细节调整，后来我就投奔<a href="http://www.blueprintcss.org/">blueprints</a>阵容了，不过，专业级的人物果然不一样，死板的布局一样可以做出像SourceForge现在这样强大的界面。</p>
<p>点击可以查看下新版的SourceForge：<br />
<a href="http://sourceforge.net/">http://sourceforge.net/</a></p>
<p>不过，说实话，还是blueprints更好用，它对界面布局的颗粒度更细，更自由。从blueprints提供的理念来做，理论上可以做出任意大小栅格的布局的。而这点，yui grid很难。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fangyuqiang.com/archives/475/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网站案例</title>
		<link>http://www.fangyuqiang.com/showcase</link>
		<comments>http://www.fangyuqiang.com/showcase#comments</comments>
		<pubDate>Fri, 03 Jul 2009 01:39:28 +0000</pubDate>
		<dc:creator>fangyuqiang</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[Blueprints]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[外包]]></category>

		<guid isPermaLink="false">http://fangyuqiang.com.fb6l.8-host.com/?page_id=283</guid>
		<description><![CDATA[这些项目都很久了，没啥代表性了，留着做纪念。 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; 这里列举的是个人做的部分案例展示。项目都比较早了。基本上做到了以下几点： 多浏览器兼容。IE6，7，8。firefox，opera，safari，chrome等主流浏览器都能得到几乎一致的表现。 w3c标准。代码均以符合w3c标准为基础。 良好的SEO（搜索引擎优化）。项目设计制作均充分考虑SEO的需求，并加入各类SEO辅助工具，在SEO方面都有不错的成效。 良好的前端优化。前端开发优化是本人的主要工作之一，所以设计的项目在前端性能上都有较突出表现。 365517二手客车 网站地址：http://www.365517.com 案例介绍：福州某二手客车公司网站，09年12月中旬刚上线。。 卫通卫浴 网站地址：http://www.vepoo.net/index.php 案例介绍：本案例客户方已经有后台以及网站，但是不满意网站本身的设计，寻找广告公司重新设计了界面，然后将PSD设计稿交由我来实现。本案例采用yui css框架实现，并做了大量SEO工作。最佳状态时候搜索主要关键字出现在百度的第一页，50%的页面被百度收录，70%的页面被google收录。(目前由于客户执意不停的进行修改网站结构，排名与收录情况有所下降） 福建广华工贸有限公司 网站地址：http://www.fjghgm.com/ 案例介绍：自己一位亲戚朋友的网站，后台程序采用WordPress，由于建站伊始，网站内容还不够丰富。 泉州千禧礼仪庆典公司 网站地址：http://www.qzqxqd.com/ 案例介绍：婚庆网站。后台程序采用DedeCms，目前国内比较热门的一个CMS，前台界面采用yui css框架实现。 广告公司网站 网站地址：暂未上线 案例介绍：福建某广告公司。模仿未来广告公司网站实现，但是未来广告公司采用的是flash制作，本案例完全采用DIV+CSS实现，比起flash有着非常良好的SEO效果。后台程序采用WordPress，前台界面采用blueprints css框架实现。]]></description>
			<content:encoded><![CDATA[<p>这些项目都很久了，没啥代表性了，留着做纪念。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>这里列举的是个人做的部分案例展示。项目都比较早了。基本上做到了以下几点：</p>
<ul>
<li><strong>多浏览器兼容</strong>。IE6，7，8。firefox，opera，safari，chrome等主流浏览器都能得到几乎一致的表现。</li>
<li><strong>w3c标准</strong>。代码均以符合w3c标准为基础。</li>
<li> <strong>良好的SEO（搜索引擎优化）</strong>。项目设计制作均充分考虑SEO的需求，并加入各类SEO辅助工具，在SEO方面都有不错的成效。</li>
<li><strong>良好的前端优化</strong>。前端开发优化是本人的主要工作之一，所以设计的项目在前端性能上都有较突出表现。</li>
</ul>
<h3>365517二手客车</h3>
<div id="attachment_342" class="wp-caption alignleft" style="width: 310px"><img class="size-medium wp-image-709" title="二手客车 - 福州二手客车 - 二手客车出售,二手客车购买,二手客车供应,二手客车求购,二手客车广告 - 福建云力贝汽车贸易有限公司_1261387053358" src="http://www.fangyuqiang.com/wp-content/uploads/2009/07/二手客车-福州二手客车-二手客车出售二手客车购买二手客车供应二手客车求购二手客车广告-福建云力贝汽车贸易有限公司_1261387053358-203x300.png" alt="二手客车 - 福州二手客车 - 二手客车出售,二手客车购买,二手客车供应,二手客车求购,二手客车广告 - 福建云力贝汽车贸易有限公司_1261387053358" width="300" height="443" /></p>
<p><p class="wp-caption-text">二手客车 - 福建云力贝汽车贸易有限公司</p></div>
<ul>
<li>网站地址：<a href="http://www.365517.com">http://www.365517.com</a></li>
<li>案例介绍：福州某二手客车公司网站，09年12月中旬刚上线。。</li>
</ul>
<hr />
<h3>卫通卫浴</h3>
<div id="attachment_342" class="wp-caption alignleft" style="width: 310px"><img class="size-medium wp-image-342" title="卫通中国—卫通卫浴建材有限公司—中国南部营销中心_1246693636911" src="http://fangyuqiang.com.fb6l.8-host.com/wp-content/uploads/2009/07/卫通中国—卫通卫浴建材有限公司—中国南部营销中心_1246693636911-300x284.png" alt="卫通中国—卫通卫浴建材有限公司—中国南部营销中心网站" width="300" height="284" /><p class="wp-caption-text">卫通中国—卫通卫浴建材有限公司—中国南部营销中心网站</p></div>
<ul>
<li>网站地址：<a href="http://www.vepoo.net/index.php">http://www.vepoo.net/index.php</a></li>
<li>案例介绍：本案例客户方已经有后台以及网站，但是不满意网站本身的设计，寻找广告公司重新设计了界面，然后将PSD设计稿交由我来实现。本案例采用yui css框架实现，并做了大量SEO工作。最佳状态时候搜索主要关键字出现在百度的第一页，50%的页面被百度收录，70%的页面被google收录。(目前由于客户执意不停的进行修改网站结构，排名与收录情况有所下降）</li>
</ul>
<hr />
<h3>福建广华工贸有限公司</h3>
<div id="attachment_353" class="wp-caption alignleft" style="width: 248px"><img class="size-medium wp-image-353" title="上杭广华工贸有限公司_1246698731423" src="http://fangyuqiang.com.fb6l.8-host.com/wp-content/uploads/2009/07/上杭广华工贸有限公司_1246698731423-238x300.png" alt="上杭广华工贸有限公司" width="238" height="300" /><p class="wp-caption-text">上杭广华工贸有限公司</p></div>
<ul>
<li>网站地址：<a href="http://www.fjghgm.com/">http://www.fjghgm.com/</a></li>
<li>案例介绍：自己一位亲戚朋友的网站，后台程序采用WordPress，由于建站伊始，网站内容还不够丰富。</li>
</ul>
<hr />
<h3>泉州千禧礼仪庆典公司</h3>
<div id="attachment_352" class="wp-caption alignleft" style="width: 206px"><img class="size-medium wp-image-352" title="千禧礼仪庆典_1246698587016" src="http://fangyuqiang.com.fb6l.8-host.com/wp-content/uploads/2009/07/千禧礼仪庆典_1246698587016-196x300.png" alt="千禧礼仪庆典" width="196" height="300" /><p class="wp-caption-text">千禧礼仪庆典</p></div>
<ul>
<li>网站地址：<a href="http://www.qzqxqd.com/">http://www.qzqxqd.com/</a></li>
<li>案例介绍：婚庆网站。后台程序采用DedeCms，目前国内比较热门的一个CMS，前台界面采用yui css框架实现。</li>
</ul>
<hr />
<h3>广告公司网站</h3>
<div id="attachment_354" class="wp-caption alignleft" style="width: 310px"><br />
<img class="alignleft size-medium wp-image-354" title="未来广告_1246698824004" src="http://fangyuqiang.com.fb6l.8-host.com/wp-content/uploads/2009/07/未来广告_1246698824004-247x300.png" alt="未来广告_1246698824004" width="300" height="300" /><p class="wp-caption-text">未来广告</p></div>
<ul>
<li>网站地址：暂未上线</li>
<li>案例介绍：福建某广告公司。模仿未来广告公司网站实现，但是未来广告公司采用的是flash制作，本案例完全采用DIV+CSS实现，比起flash有着非常良好的SEO效果。后台程序采用WordPress，前台界面采用blueprints css框架实现。</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.fangyuqiang.com/showcase/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Meta CSS框架</title>
		<link>http://www.fangyuqiang.com/metacss</link>
		<comments>http://www.fangyuqiang.com/metacss#comments</comments>
		<pubDate>Thu, 02 Jul 2009 15:00:12 +0000</pubDate>
		<dc:creator>fangyuqiang</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[Blueprints]]></category>
		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://fangyuqiang.com.fb6l.8-host.com/?page_id=272</guid>
		<description><![CDATA[背景 Meta CSS是一个很简单的CSS框架。可以点这里(下载)先一睹为快。 在深入介绍之前，我们来考虑几个web开发者非常容易遇到的问题： 同样的一个款式的按钮，有些页面它要在左边，但是有些页面要在右边 同样作用的一段提示文字，有些地方字体要大号，有些却要小号 同样风格的一段文字，有些要红色，有些却要绿色 这样的状况是相当频繁的。对此，通常有4种解决方法： 每种不同款式，定义一个css。按钮A一个css，按钮B虽然长得跟A一样，但是在右边，那就copy下A的css代码，然后改成在右边。 .a{/* 很多样式定义 */} .b{/* 很多样式定义 */ text-align:center;} .c{/* 很多样式定义 */ text-align:right;} &#60;div class="a"&#62;按钮A&#60;/div&#62; &#60;div class="b"&#62;按钮B&#60;/div&#62; &#60;div class="c"&#62;按钮C&#60;/div&#62; 针对不同地方，利用css层级覆盖来实现。比如按钮A设定css，然后对于特别的页面，设定特别的css来覆盖 .a{/* 很多样式定义 */} #s1 .a{text-align:center;} #s2 .a{text-align:right;} &#60;div class="a"&#62;按钮A&#60;/div&#62; &#60;div id="s1"&#62;&#60;div class="a"&#62;按钮B&#60;/div&#62;&#60;/div&#62; &#60;div id="s2"&#62;&#60;div class="a"&#62;按钮C&#60;/div&#62;&#60;/div&#62; 利用css组合来实现。如上面的代码片段，设定css基础类，然后进行组合。对于按钮A，它的class为x，在右边的按钮B，它的class为x tar，对于B来说，它的样式就是x与tar组合起来的。 .a{/* 很多样式定义 */} .tac{text-align:center;} .tar{text-align:right;} &#60;div class="a"&#62;按钮A&#60;/div&#62; &#60;div class="a tac"&#62;按钮B&#60;/div&#62; &#60;div [...]]]></description>
			<content:encoded><![CDATA[<h3>背景</h3>
<p>Meta CSS是一个很简单的CSS框架。可以点<a href="http://www.fangyuqiang.com/wp-content/uploads/2009/07/metacss.css">这里(下载)</a>先一睹为快。</p>
<p>在深入介绍之前，我们来考虑几个web开发者非常容易遇到的问题：</p>
<ul>
<li>同样的一个款式的按钮，有些页面它要在左边，但是有些页面要在右边</li>
<li>同样作用的一段提示文字，有些地方字体要大号，有些却要小号</li>
<li>同样风格的一段文字，有些要红色，有些却要绿色</li>
</ul>
<p>这样的状况是相当频繁的。对此，通常有4种解决方法：</p>
<ol>
<li>每种不同款式，定义一个css。按钮A一个css，按钮B虽然长得跟A一样，但是在右边，那就copy下A的css代码，然后改成在右边。
<pre class="css" title="code">.a{/* 很多样式定义 */}
.b{/* 很多样式定义 */ text-align:center;}
.c{/* 很多样式定义 */ text-align:right;}
&lt;div class="a"&gt;按钮A&lt;/div&gt;
&lt;div class="b"&gt;按钮B&lt;/div&gt;
&lt;div class="c"&gt;按钮C&lt;/div&gt;</pre>
</li>
<li>针对不同地方，利用css层级覆盖来实现。比如按钮A设定css，然后对于特别的页面，设定特别的css来覆盖</li>
<pre class="css" title="code">.a{/* 很多样式定义 */}
#s1 .a{text-align:center;}
#s2 .a{text-align:right;}
&lt;div class="a"&gt;按钮A&lt;/div&gt;
&lt;div id="s1"&gt;&lt;div class="a"&gt;按钮B&lt;/div&gt;&lt;/div&gt;
&lt;div id="s2"&gt;&lt;div class="a"&gt;按钮C&lt;/div&gt;&lt;/div&gt;</pre>
<li><strong>利用css组合来实现。如上面的代码片段，设定css基础类，然后进行组合。对于按钮A，它的class为x，在右边的按钮B，它的class为x tar，对于B来说，它的样式就是x与tar组合起来的。</strong>
<pre class="css" title="code">.a{/* 很多样式定义 */}
.tac{text-align:center;}
.tar{text-align:right;}
&lt;div class="a"&gt;按钮A&lt;/div&gt;
&lt;div class="a tac"&gt;按钮B&lt;/div&gt;
&lt;div class="a tar"&gt;按钮C&lt;/div&gt;</pre>
</li>
<li>直接内嵌style来解决。
<pre class="css" title="code">.a{/* 很多样式定义 */}
&lt;div class="a"&gt;按钮A&lt;/div&gt;
&lt;div class="a" style="text-align:center"&gt;按钮B&lt;/div&gt;
&lt;div class="a" style="text-align:right"&gt;按钮C&lt;/div&gt;</pre>
</li>
</ol>
<p>再来分析下4种方式各自的优缺点：</p>
<ol>
<li>每种不同款式，定义一个css。随着代码量变大，css将会变得越来越难维护。<strong>当你需要修改一个按钮风格的时候，所有同样风格的按钮都要改过</strong>。你copy到那里，哪里就得改，很容易遗漏。并且代码量也会相对更大，很多可重复利用的资源没有利用起来。</li>
<li>利用css层级覆盖来实现。利用css选择符的优先级来覆盖是很好的做法，也是很常用的做法。不过在很多情况下，例如<strong>大量的动态页面，我们没有办法完全预知定义的css的id或者类名，而无法定义特别样式。在一些可以控制的情况下，定义太多特殊类名用来区分，又会造成大量后期维护的困难。</strong></li>
<li>良好的运用css组合方式，可以比较妥善的解决上面的2个问题。首先，<strong>公用样式都被提取了，你修改一个按钮，只需要改公共的部分</strong>。其次，不需要绞 尽脑汁去想一个不会冲突的css类名，<strong>遵循组合的规则</strong>就可以了。当然，这种方法也有缺点，较为复杂的组合需要代码作者自己熟悉覆盖的规则，在css代码里 面并不知道html页面拿哪一些规则拿来进行组合，修改一个规则可能导致调用css的地方出问题。</li>
<li>内嵌style优点就是简单快速。缺点也很明显，不仅写起来有点麻烦，代码也难看，维护性也不好。很重要的一点，到处都是style会让人BS的，觉得你这前端div+css用得也忒不好了。所以代码洁癖的人往往宁可定义一个新样式，也不愿意页面有一个style。</li>
</ol>
<p>我们来看看一些大型站点是如何来解决这个问题的：</p>
<pre class="css" title="code">/* 一段摘抄自开心网kaixin001.com的css代码 */
.l{float:left;}.r{float:right; clear:right;}.c{clear:both;}
.tal{text-align:left;}.tar{text-align:right;}.tac{text-align:center;}
.c0,a.c0{color: #000; font-family:Arial;}
.c6,a.c6{color:#666; font-family:Arial;</pre>
<pre class="css" title="code">/* 一段摘抄自163.com的css代码 */
/* Font  */
.fB {font-weight: bold;}
.f12px{ font-size:12px;}
/* Other */
.left{ float: left;}
.right{ float: right;}
.clear{ clear: both; font-size:1px; width:1px; height:0; visibility: hidden; }
.clearfix:after{content:"."; display:block; height: 0; clear: both; visibility: hidden;} /* only FF */
.hidden {display: none;}
.blank3{ height:3px; clear:both;display:block; font-size:1px;overflow:hidden;}</pre>
<p>经常做前端开发的童鞋自己的开发也经常有这样的做法，但是也许并没有总结跟提取。不了解前端开发的人可能就比较纳闷，就这样一大堆属性的css定义，有什么用啊？跟用style有什么区别吗？</p>
<p>从上面2份css代码中，我们可以看到前端设计师经常会提取一些只有一个属性的css类，用来做组合。以163的为例，它有一个left的类，是左浮动，开心网更简单，是l。如果一个按钮正常情况下是不浮动的，但是有些地方它要左浮动，就只要在元素的class上面加一个left或者l，通过这样的组合来达到目的。</p>
<p><strong>Meta CSS框架，就是为了满足这样的一个需求而设计的一个框架。</strong></p>
<p>Meta CSS框架的实现参考了不少大型站点的css代码，分析代码里的共性而总结出来的，<strong>该框架可以整合<a href="http://developer.yahoo.com/yui/grids/" target="_blank">yui css</a>框架或者<a href="http://www.blueprintcss.org/" target="_blank">blueprints</a>框架来使用</strong>。它的作用在于以一个明确的命名规则，提供一个通用的css类集。正如这个框架的名字Meta，它规划出最小的最通用的”元定义”。可以与目前了解的各类css框架共存。</p>
<p>框架的意义，其实就是提供一个<strong>良好的可遵循的规范以及底层功能，规范代码的开发，提高开发的效率</strong>。Meta CSS也是遵循这样的一个理念，<a href="http://www.fangyuqiang.com/wp-content/uploads/2009/07/metacss.css" target="_self">查看完整版本</a>，先来看一个Meta CSS框架的代码片段：</p>
<pre class="css" title="code">/* Font  */
.fwb {
 font-weight: bold;
}
.fwn{
 font-weight: normal;
}
.tdn{
 text-decoration: none;
}
.tdu{
 text-decoration: underline;
}
.tdl{
 text-decoration: line-through;
}
.fs10p{
 font-size: 10px;
}
.fs11p{
 font-size: 11px;
}</pre>
<h3>Meta CSS框架的命名规则</h3>
<p>Meta CSS框架提供了一个简单而有规律的命名。</p>
<p>规则1：<strong>非</strong><strong>定义</strong><strong>尺寸的css定义，以css属性名的首字母+属性值的首字母组合而成</strong>。例如font-weight:bold，css类名就是fwb。text-align:center，css类名就是tac。float:left，css类名就是fl。</p>
<p>规则2：<strong>定义尺寸的css，以css属性名的首字母+属性值+属性值单位的首字母</strong>。例如font-size:10px，css类名就是fs10p。border:1px solid #cccccc; css类名为b1sc。<strong>特别的，%的数值，采用percent的首2个字母pe。</strong></p>
<p>规则3：<strong>多个属性的定义，命名参考规则1与规则2，中间用-连接</strong>。例如font-size:10px,font-weight:bold。css类名就是fs10p-fwb。</p>
<p>为什么要这样定义呢？有些人可能比较偏好开心网的，极致简单的，float:left，css类名是l，float:right，css类名就是r，非常简单。简单是非常简单，但是问题在于这样的定义显得很随意，没有规则。假设它定义的font-weight:bold的css类名是fb，那么新的开发者一定要去看代码才知道定义的名称叫fb，<strong>它没办法通过一个明确的规则来知道想要的属性是什么名称，有时候他还会很干脆的另外定义一个。</strong></p>
<p>而我们规定的这个命名规则，如果想要左浮动，就可以马上得知是：fl。font-weight:bold，可以马上知道是fwb，毫无疑惑。敏捷开发的一个很重要的思想，就是<strong>约定胜于配置，</strong><strong>meta css框架中很多css类名看起来很不优雅，甚至显得怪异，但是只要所有协同开发者了解这个约定，就可以大大减少记忆的工作量，所有的开发者都可以轻松的记住它。</strong></p>
<h3>Meta CSS框架的组成</h3>
<p>对照w3c的手册，Meta CSS将css定义分成了几个部分，分别是：font字体，text文本，background背景，position位置，dimension元素尺寸，layout布局，margin外边距，border边框，padding内边距，other其他以及combine联合定义。</p>
<p>具体的内容可以查看：<a href="http://www.fangyuqiang.com/wp-content/uploads/2009/07/metacss.css" target="_blank">metacss.css</a>，这里概况下各个部分的定义：</p>
<ul>
<li>font字体：定义了font-weight，text-decoration，font-size，color。</li>
<li>text文本：定义了text-align，text-indent</li>
<li>background背景：定义了background-color</li>
<li>position位置：定义了z-index</li>
<li>dimension元素尺寸：定义了width，height</li>
<li>layout布局：定义了float，overflow，display。特别的，有一个额外定义的css类c，可以在多浏览器环境下实现清除浮动。常常可以在一些css代码中见到，常常也命名为clearfix。</li>
<li>margin外边距：定义margin</li>
<li>border边框：定义了border</li>
<li>padding内边距：定义了padding</li>
<li>other其他：定义了cursor</li>
<li>combine联合定义：用户自行扩展定义。联合定义规定了多个属性的定义方法，比如font-weight加上font-size，定义的css类名为fs10p-fwb。</li>
</ul>
<h3>Meta CSS框架扩展与裁减</h3>
<p>Meta CSS说白了本质上就是一个css文件而已，要进行改动是一件很容易的事情，任何开发者都可以随意的往这个css文件里面添加或者删除任意属性与定义。<strong>随意的添加或删除当然不是我们希望看到的结果，遵循框架的约定进行增删改，才是真正意义上的扩展与裁减。</strong></p>
<p><strong>注意：根据你自己的项目，对Meta CSS进行扩展与裁减是非常正常的也是很有必要的。<br />
</strong></p>
<p><strong>扩展Meta CSS的方式很简单，就是遵循命名规则，添加新的css类定义。</strong>假设你要增加一个margin是20px的定义，默认框架中是margin:10px，你就可以添加一个m20p的css类就可以了。具体可以查看Meta CSS文件中的注释。</p>
<p><strong>裁减Meta CSS同样简单，删除文件中你确实不需要用到的属性就可以了。</strong>大部分时候，默认的一些字体，内外边距之类的定义往往不一定符合你的需求。</p>
<h3>Meta CSS 使用方法</h3>
<p>从语法上，你当然可以通过class=”fwb tar mr10p pt20p”来创建一个加粗的，右对齐的，右内边距10px，上外边距20px的元素，但是从框架本身的意义来说，这不是最佳的适用环境。Meta CSS框架适用的环境是：</p>
<ol>
<li><strong>的确是单一属性的定义。</strong>例如只是 class=”fwb”，加粗一个元素。</li>
<li><strong>对某一个css定义给出特殊情况的补充。</strong>参考开头部分提到的<a href="#e3">例子3</a>。</li>
</ol>
<p>代码中使用的范例：</p>
<pre class="html" title="code">&lt;style type="text/css"&gt;
	.fwb{
		font-weight:bold;
	}
	.tar{
		text-align:right;
	}
	.div1{
		border:1px solid #ccc;
		padding:15px;
		color:green;
		width:200px;
		margin-bottom:20px;
	}
&lt;/style&gt;
&lt;div id="d1" class="div1"&gt;
	第一个div
&lt;/div&gt;
&lt;div id="d2" class="div1 fwb"&gt;
	第二个div，字体加粗
&lt;/div&gt;
&lt;div id="d3" class="div1 tar"&gt;
	第三个div，右对齐
&lt;/div&gt;</pre>
<p>基本使用方法：<a href="http://www.fangyuqiang.com/wp-content/uploads/2009/07/metacss.css">下载metacss文件</a>，放到你的css文件夹中，可以采用形如</p>
<pre>&lt;link rel="stylesheet" href="css/metacss<code>.css" type="text/css" media="screen"&gt;
</code></pre>
<p>这样的css引用语句。你可以将metacss中所有的css定义copy到你的css文件中合并到一起，所有的css文件可以怎么做，你都可以怎么做。</p>
<h3>Meta CSS框架的局限性</h3>
<p>css优先级的影响，你不能保证定义总会生效，如果之前的css类已经包含某些要覆盖的定义，则有可能因为优先级的关系，不能生效。我们稍微修改下上面的例子：</p>
<pre class="html" title="code">&lt;style type="text/css"&gt;
	.fwb{
		font-weight:bold;
	}
	.tar{
		text-align:right;
	}
	.div1{
		border:1px solid #ccc;
		padding:15px;
		color:green;
		width:200px;
		margin-bottom:20px;
		text-align:left; /* 更高优先级，无法被tar覆盖 */
}
&lt;/style&gt;
&lt;div id="d1" class="div1"&gt;
	第一个div
&lt;/div&gt;
&lt;div id="d2" class="div1 fwb"&gt;
	第二个div，字体加粗
&lt;/div&gt;
&lt;div id="d3" class="div1 tar"&gt;
	第三个div，预期右对齐，但是事实上不会生效。
&lt;/div&gt;</pre>
<p>像这个例子里，.div1的text-align有比tar更高的优先级，所以用css组合这种方式就会不起作用。所以在应用框架的时候需要注意这一点。关于css优先级的讨论超出本文的范围，可以自己google一番。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fangyuqiang.com/metacss/feed</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
	</channel>
</rss>

