技术开发 频道

Meta CSS框架发布

  我们来看看一些大型站点是如何来解决这个问题的:

/* 一段摘抄自开心网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;

 

/* 一段摘抄自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;}

  Meta CSS框架,就是为了满足这样的一个需求而设计的一个框架。

  Meta CSS框架的实现参考了不少大型站点的css代码,分析代码里的共性而总结出来的,该框架可以整合yui css框架或者blueprints框架来使用。它的作用在于以一个明确的命名规则,提供一个通用的css类集。正如这个框架的名字Meta,它规划出最小的最通用的"元定义"。可以与目前了解的各类css框架共存。

  框架的意义,其实就是提供一个良好的可遵循的规范以及底层功能,规范代码的开发,提高开发的效率。Meta CSS也是遵循这样的一个理念,先来看一个Meta CSS框架的代码片段:

/* 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;
}

  Meta CSS框架的命名规则

  Meta CSS框架提供了一个简单而有规律的命名。

  规则1:非定义尺寸的css定义,以css属性名的首字母+属性值的首字母组合而成。例如:font-weight:bold,css类名就是fwb。text-align:center,css类名就是tac。float:left,css类名就是fl。

  规则2:定义尺寸的css,以css属性名的首字母+属性值+属性值单位的首字母。例如font-size:10px,css类名就是fs10p。border:1px solid #cccccc; css类名为b1sc。特别的,%的数值,采用percent的首2个字母pe。

  规则3:多个属性的定义,命名参考规则1与规则2,中间用-连接。例如font-size:10px,font-weight:bold。css类名就是fs10p-fwb。

  为什么要这样定义呢?有些人可能比较偏好开心网的,极致简单的,float:left,css类名是l,float:right,css类名就是 r,非常简单。简单是非常简单,但是问题在于这样的定义显得很随意,没有规则。假设它定义的font-weight:bold的css类名是fb,那么新的开发者一定要去看代码才知道定义的名称叫fb,它没办法通过一个明确的规则来知道想要的属性是什么名称,有时候他还会很干脆的另外定义一个。

  而我们规定的这个命名规则,如果想要左浮动,就可以马上得知是:fl。font-weight:bold,可以马上知道是fwb,毫无疑惑。敏捷开发的一个很重要的思想,就是约定胜于配置,meta css框架中很多css类名看起来很不优雅,甚至显得怪异,但是只要所有协同开发者了解这个约定,就可以大大减少记忆的工作量,所有的开发者都可以轻松的记住它。

  Meta CSS框架的组成

  对照w3c的手册,Meta CSS将css定义分成了几个部分,分别是:font字体,text文本,background背景,position位置,dimension元素尺寸,layout布局,margin外边距,border边框,padding内边距,other其他以及combine联合定义。

  这里概况下各个部分的定义

        font字体:定义了font-weight,text-decoration,font-size,color。

  text文本:定义了text-align,text-indent

  background背景:定义了background-color

  position位置:定义了z-index

  dimension元素尺寸:定义了width,height

  layout布局:定义了float,overflow,display。特别的,有一个额外定义的css类c,可以在多浏览器环境下实现清除浮动。常常可以在一些css代码中见到,常常也命名为clearfix。

  margin外边距:定义margin

  border边框:定义了border

  padding内边距:定义了padding

  other其他:定义了cursor

  combine联合定义:用户自行扩展定义。联合定义规定了多个属性的定义方法,比如font-weight加上font-size,定义的css类名为fs10p-fwb。
0
相关文章