+ -
当前位置:首页 → 问答吧 → 关于CSS“少用继承,多用组合”的问题

关于CSS“少用继承,多用组合”的问题

时间:2011-09-02

来源:互联网

继承是 css中经常要用到的技术,好处是可以尽量让页面的代码减少重复利用。但是如果网站做的很大,继承的缺点就出来了,不利于维护和控制。

      于是就有了另外一种方法组合,什么是组合呢?组合的概念就是使用多个class类来定义属性,类似于雅虎YUI,把属性分成两种,公有和私有。

      公有的类可以重复使用,私有则可以定义特有的属性。在开发阶段可以节约很多时间。很多的前端人员都很推崇这种方法,认为这个可以节约很多时间。很多出版的书上也是这么提倡的。

      于是我就研究下,发现了很多问题,现在拿出来跟大家讨论讨论.。我们先看以下代码。


查看大图       这个是典型的css组合的例子,它的本意是随着需求的变化,应用的不同,可能会用到不同的字体大小,不同的边距。于是将这些有变化的属性拆开,单独命名,以达到重用的目的。



     现在问题就很明显了,这个明显只在网站正式运营之前有效,如果网站运营了一段时间,页面已经很多了的时候。这时候要求改版,让你把左边变右边,字体大小换一下。你怎么换呢?原先我只要在唯一的一个css里面修改就可以了。现在你反而拆开来了。这时候我要该变字体大小就只能2种办法了。



      1.后台每一页面都去修改把CLASS里的类名F-12改成F-14.这样就要设置很多的变量了,速度会受到很大的影响,而且我不懂后台,这种是就只能交给后台做了。



      2.在它唯一的私有类里设置大小并且提高它的权重用来覆盖基类。这样的话组合不是没有意义了么。

      所以我觉得从开发速度来考虑可以使用组合,从以后的维护上面还是一个一个加样式好点。修改会更加直观和方便。



      我从事这个行业不长,可能这个问题对大家已不是问题,还请各位大侠赐教。
还请各位说说你们的看法,让我参考参考

作者: z704496919   发布时间: 2011-09-02

x1,x2,x3{padding:20px;}

作者: ft284800   发布时间: 2011-09-02

字体这样的属性,我在开发的过程中是不用class组合的方式来控制的。
只有关于布局的属性才会用组合class的方式,像控制字体,大部分还是用的继承。
LZ的这个实验很好,不过似乎实际应用的时候没有多少人会这么做吧。

补充:不是任何的元素都非得要用各种公用的class组合来控制的。
class组件只是抽取了一些常用的重用性较多的元素。

比如全局要求设置font12px,肯定用继承会快的多。偶尔有特殊需求的话,我就会给这个元素单独的加一个私有的class进行控制。
LZ的看法有点太过偏向了。

[ 本帖最后由 Apollyonx 于 2011-9-2 17:16 编辑 ]

作者: Apollyonx   发布时间: 2011-09-02

你的话没错,但得具体问题具体分析。字体这玩意,没人会用组合来控制的吧,都是继承的,中文网站一般都是全局12px,特定地方(比如标题)单独定义样式;同理,颜色一般也是这种方法处理。组和更多是用在页面布局的,我平时写的时候很少用组合方式,但至少fl fr这种极其常用的属性,我也会单独定义class,用于组合

作者: ypd007   发布时间: 2011-09-02

3楼说得有道理,class组合,还是布局时方便,对于细节控制,还是继承加特殊方式较好。

作者: ddc0826   发布时间: 2011-09-02