日期:2014-01-04 浏览次数:21199 次
对象类似JAVA中的类,保持着OO的特征。
一个CSS对象由4部分组成:
这可能令人隐晦,由于每个CSS class不是其本身必要的对象,但可以是一个wrapper class的一个部件。比如:
<div class="mod">
<div class="inner">
<div class="hd">Block Head</div>
<div class="bd">Block Body</div>
<div class="ft">Block Foot</div>
</div>
</div>
对象是一个class为mod的模块。包括4个部件节点(不能独立于模块外,包括2个区块,inner和body,和两个可选择的区块,head和foot)
OOCSS具有双倍的功用优势:
当你在同一页面(或者同一站点同时缓存良好)复用一个对象时,这是功用的“免费赠品”。用ID来写款式在同一页面中只能使用一次。@cgriego (twitter)
拿它与singletons比较过,我认为非常精确。可能有些情况下你要用ID定义款式,比如非常特殊的 header menus,此时你可以在用ID来沙箱(译注:动名词)特殊元素并确保此处的代码不会影响站点的其它地方。选择ID而非class前要三思,随着站点的发展,真的很难预料其他人会怎样处理依据你的CSS所构建的HTML。如有选择的余地,尽可能的考虑扩展性。
我正在考虑移除模板head, body, foot中的ID。某些人或许有多个主区域。站点的多个header 和 footer更难以猜测,但我敢打赌肯定有设计师会这样想,所以ID很可能会消逝(不太顺,看原文:Someone
could have multiple main content areas. Multiple site headers and footers are more
difficult to imagine, but I bet there is a designer who can dream up something like
that, so the IDs are very likely to disappear.)。
另一方面,ID hooks are great for linking。放在HTML中,不过别用它们来写款式。
是的,设计师出于天性理解对象,比多数人当前书写CSS的方式要笼统 — layers of exceptions (想一下,一个老太太吞了一只苍蝇)。理想上,他们爱上OOCSS的缘由有两个:
设计师是聪明D。我们要给他们信任。他们会讲一种不同的,非工程师的言语,但是极客的言语经常以一种丑陋的方式来拒绝人。我们能做的更好。
作为架构师,你应该写结构对象;圆角如何创建,为角或其他特性放置表象元素,并处理浏览器差异。老手为这些模块写皮肤(borders, colors, background
images, 等等)。
我用OO-CSS方式创建了大批站点(千级的页面,百万级的访问者)。正确的完成后,很好扩展,这意味着老手将处理的一般元件可预见性很强。代码审阅很容易,由于有可接受的方法明确的规则来扩展对象。这种回馈使新开发者快速生产。
我在FullSIX(一个法国的网络营销机构)管理一个前端开发团队,是我任务过的最有才能的。某些时候我们的成功意味着我们将会有更多难以把控的任务。雇佣前端专家非常困难(没有这种学校!),所以我开始对一些对写代码有兴味的设计师(很少或没有经验)推行一个内部实习项目,一个月就可以作为团队的初级成员任务。
他们的代码在一个客户的网站上,同资深开发者写的一样好,或许更好由于他们还未学到一些坏习惯:)
3个文件,libraries.css (reset 及 fonts 取自 yui), grids.css 及 template.css 已完成,其它的还非常不稳定。