文章目录

  • 1.简介
  • 2.优缺点
    • 2.1 优点
    • 2.2 缺点
  • 3.OOCSS核心思想
    • 3.1 结构和皮肤分离
    • 3.2 容器与内容分离
  • 4.示例

1.简介

OOP已在JavaScript和后端语言中得到广泛使用,不止是JS才会有OOP面向对象模式,CSS中的OO写法到现在已经不是一个新概念(2008年由 Nicole Sullivan 提出,目标是通过应用Java和Ruby等变成语言普及的面向对象设计原则,是动态CSS更易于管理)。

OOCSS,是 Object Oriented css 的缩写,旨在用最简单的方式编写CSS代码,从而提高代码重用性、可维护性、可扩展性。

其实在项目中写CSS或许已经有了OO的概念,但是还没有一个完整的体系来规范CSS,所以学习OOCSS很有必要。

惯例,先贴上官网:http://oocss.org/

2.优缺点

2.1 优点

(1)高度重用,CSS代码简洁,便于维护,而且文件加载速度会更,CSS代码在站点页面中调用的比重增大则有希望被复用或被浏览器缓存。
(2)能轻松构造新的页面布局,或制作新的页面风格。

2.2 缺点

(1)不适用小项目。适用于重复组件多、样式多的大型网站项目,小型项目代码少,优势不明显。
(2)学习成本。需要熟练运用,否则可能会造成后期维护困难,建议加上注释。

3.OOCSS核心思想

OOCSS追求组件的复用,尽量不使用继承选择符,并且class命名比较抽象,一般不体现具体内容。核心思想有两点:

3.1 结构和皮肤分离

保留结构(如 height、width、position、margin、overflow 等),并在扩展类中保留视觉特征(如 background、border、color 等)。将视觉样式作为单独的“主题”来应用,不必覆盖视觉属性。

3.2 容器与内容分离

指不要在 CSS 中模仿 HTML 的结构。换句话说,不要在样式表中引用标签或 ID。并将嵌套类保持在最低限度。
相反,尝试创建和应用描述相关标签使用的类。内容指的是位于其他元素中的元素,我们不应该将一般规则限定于特定的容器

4.示例

需求:一个按钮

.btn-construction {  // 结构width: 100px;padding: 10px;border-radius: 10px;
}
.btn-face {  // 皮肤color: #fff;background: #55acee;
}
<button class="button-structure button-skip"></button>

在 Sass 中,我们可以使用 %placeholder 来创建对象,通过 @extend 在类中调用,将其合在一起。这样就可以自己组织代码:

%button-structure {min-width: 100px;padding: 1em;border-radius: 1em;
}
%button-skip {color: #fff;background: #55acee;
}
.btn {@extend %button-structure;@extend %button-skip;
}

以上就是OOCSS,已记录 SMASS、BEM、OOCSS 三种 CSS 规范,根据实际情况运用到项目中(俺习惯使用 OOCSS),使得越来越规范。

CSS规范之 OOCSS相关推荐

  1. Atitit.css 规范 bem  项目中 CSS 的组织和管理

    Atitit.css 规范 bem  项目中 CSS 的组织和管理 1. 什么是BEM?1 1.1. 块(Block)2 1.2. 元素(Element)2 1.3. BEM树(和DOM树类似).3 ...

  2. [css] 说说你对BEM规范的理解,同时举例说明常见的CSS规范有哪些?

    [css] 说说你对BEM规范的理解,同时举例说明常见的CSS规范有哪些? BEM是比较好的CSS规范,应该也是得到大家认可最多的CSS规范 OAMC是WeUI根据BEM改造来的 object-are ...

  3. Web前端框架(JavaScript,CSS)、html组件、CSS规范与第三方库

    1.什么是前端框架 前端框架一般指用于简化网页设计的框架,使用广泛的前端开发套件,比如,jquery,extjs,bootstrap等等,这些框架封装了一些功能,比如html文档操作,漂亮的各种控件( ...

  4. CSS规范之 BEM

    不论是为团队考虑,还是后续的维护,规范CSS命名真的很重要! 这里介绍CSS命名规范中的其中一个:BEM. 先贴上一个关于BEM规范的示例网站:https://9elements.com/bem-ch ...

  5. 好程序员web前端分享值得参考的css理论:OOCSS、SMACSS与BEM

    为什么80%的码农都做不了架构师?>>>    好程序员web前端分享值得参考的css理论:OOCSS.SMACSS与BEM 最近在The Sass Way里看到了Modular C ...

  6. HTML、CSS规范

    作为一名前端开发者,至少要对HTML.CSS规范有个了解,然后尝试在项目是使用,以便别人阅读你代码的时候,也相对轻松点. HTML.CSS规范,参见:编码规范 by @mdo JavaScript 参 ...

  7. [css] 说出至少十条你理解的css规范

    [css] 说出至少十条你理解的css规范 命名规范(连字符-分隔的字符串)文件宽度限制(每行80个字符)加注释编写选择器应有助于重用尽量不要加 !important避免使用CSS表达式选择<l ...

  8. Scoped CSS规范草案

    写在前面 问:什么是Scoped CSS规范? Scoped CSS规范是Web组件产生不污染其他组件,也不被其他组件污染的CSS规范. 面对组件化的普及,组件的复用很普遍的需求,然而CSS相互污染是 ...

  9. 如何写好CSS?(OOCSS DRY SMACSS)

    同一个样式在同一个element上作用了好几遍,而同一个样式又分散在4,5个class上,优先级有很多层.可以看得出这个怪物不是一个人造就的,早期的开发者选择了SCSS技术,但混乱的import导致了 ...

最新文章

  1. 基于自适应逆透视变换的车道线SLAM
  2. fiddler工具之Filters
  3. 微软颜龄Windows Phone版开发小记
  4. php 鼠标小手,鼠标移动至少一次时创建PHP会话(Create PHP session when mouse moved at least once)...
  5. 【渝粤教育】广东开放大学 行政管理 形成性考核 (35)
  6. 第1次作业:阅读优秀博文谈感想
  7. 模型秒变API只需一行代码,支持TensorFlow等框架
  8. DocHub v2.3 发布,构建你自己的百度文库
  9. win10如何用管理员权限去运行服务器,让Visualstudio在win10下使用管理员方式运行...
  10. scala Set入门到熟悉
  11. 使用selenium登录QQ空间
  12. 相册视频制作APP有什么推荐?看这里!轻松把照片做成视频
  13. PS小知识(二)——画固定大小的形状
  14. 转载 The database could not be exclusively locked to perform the operation(SQL Server 5030错误解决办法)...
  15. 我与Java的那些年和那些事
  16. pytorch repeat 使用详解
  17. TinyProject -- Easy BeatBox (Head First Java Version)
  18. 太阳能发电整流逆变实训
  19. hi3798mv200引脚调试
  20. 【102】汉典诗词-汉典系列的古诗词检索平台

热门文章

  1. 航天信息Aisino ZK-300III 打印机驱动
  2. PYQT5离线安装包,亲测有效,请在网盘下载
  3. 《精益企业》在线分享总结-精彩全展示
  4. 亚马逊前员工被控盗取Capital One 1亿多客户数据 AWS安全性遭质疑
  5. leptonica 学习笔记2——pixBackgroundNormSimple
  6. 关于JavaScript的一些推荐书籍,已整理供下载!!!
  7. 北京交通大学计算机学院研究生2019年录取,北京交通大学2019年考研复试分数线...
  8. 数据中心消防电气安全综合解决方案
  9. 蒙特卡洛树搜索的主要流程有哪些_蒙特卡洛树搜索简介与实现
  10. 2月券商App行情刷新及交易体验报告,东方与安信升至领导者象限