精简CSS(二)

2008-02-29

在同一个站点的CSS文件中,不可避免的会出现不同的ID或Class却有一部分相同的属性,如果将这些ID或Class逐个分开来写的话,在CSS文件里无疑会生成重复代码,而我们要尽量的精简CSS文件的大小,那么“消灭”这部分重复的代码就变得势在必行。

看下面一段CSS代码:

#header{margin:10px 15px;background:#333 url(Images/header.jpg);}
#content{margin:10px 15px;padding:10px;background:#999;}
#copyright{margin:10px 15px;border:1px solid #f00;}

在上面的三个ID中都有一个相同的属性“margin:10px 15px;”,如果就这样分开来写的话,这三个ID之间将保持各自独立的关系,但却生成了重复的代码,而我们可以将其写成如下格式:

#header,#content,#copyright{margin:10px 15px;}
#header{background:#333 url(Images/header.jpg);}
#content{padding:10px;background:#999;}
#copyright{border:1px solid #f00;}

将上面的ID换成Class也是一样的。这样写我们就成功的将重复代码“消灭”掉了。但是如果这里具有相同的属性的ID或Class过多的话,难免会造成代码可读性降到很低很低,所以除此之外当具有相同属性的都是Class时还有另外的一种写法:

.main{margin:10px 15px;}
.header{background:#333 url(Images/header.jpg);}
.content{padding:10px;background:#999;}
.copyright{border:1px solid #f00;}

当然这种写法时,调用时的写法也与平常不一样。

<div class=”header main”></div>
<div class=”content main”></div>
<div class=”copyright main”></div>

这样的写法同样可以达到效果,并且也不会再怕具有相同属性的Class多而造成代码可读性差的问题,但值得注意的一点就是,这种写法对于ID是无效的,不管其中是存在一个ID或者全部都是ID,都将造成这段代码的无效。

分类:前端开发 | 标签: | 查看:12,742

11 条评论

  1. Yellow 说道:

    正在开发一个网站,学习了.

    不过有个问题,如果是一个大型网站,结构复杂的,可复用部分精简过后,会不会后期维护造成一定的影响呢,牵一发东全身?

  2. 烟花 说道:

    还有font

    最近阅读《超越CSS》对css命名有了新的想法

  3. 摄氏度 说道:

    @Yellow:
    影响是肯定会有的,所以在构建网站的前期就应该对CSS有一个全局的把握,确保将来不会因为某一个属性的更改页致使整站都受其牵连。

  4. 摄氏度 说道:

    @烟花:
    没有读过这本书,愿听详言。

  5. cnly 说道:

    不建议这样子,可读性差,维护难。

  6. 摄氏度 说道:

    @cnly:
    就这个方法来说,可读性并不是很差,还是可行的,当然有时得做好注释。

  7. 忙什么 说道:

    该用ID就用ID,该用class就用class,别为了迁就样式的精简而忽略最根本的原则。虽然用户看不到代码,但代码应该是符合语义的。

  8. Sprite 说道:

    我也是这么精简的,注释写号还是比较清楚的。这样的结构比较便于以后的修改和换肤

  9. LoveFish 说道:

    现在正在学习CSS呢,学习了!

  10. jiangsir6688 说道:

    不错,这几天正在学习着呢,有些东西正搞不懂,这下好了

  11. Матрешкин 说道:

    Респект.

评论被关闭!