OOCSS

148 阅读2分钟

OOCSS

全称:object oriented css

概念:面向对象的css

目的:鼓励代码复用

主要原则:

​ 1.从皮肤分割出结构

​ 将某些特征抽象到基于类的模块里,让他们变得可以复用。使元素有相同的基础效果。

​ 实例:

#button {
  width: 200px;
  height: 50px;
  padding: 10px;
  border: solid 1px #ccc;
  background: linear-gradient(#ccc, #222);
  box-shadow: rgba(0, 0, 0, .5) 2px 2px 5px;
}

#box {
  width: 400px;
  overflow: hidden;
  border: solid 1px #ccc;
  background: linear-gradient(#ccc, #222);
  box-shadow: rgba(0, 0, 0, .5) 2px 2px 5px;
}

#widget {
  width: 500px;
  min-height: 200px;
  overflow: auto;
  border: solid 1px #ccc;
  background: linear-gradient(#ccc, #222);
  box-shadow: rgba(0, 0, 0, .5) 2px 2px 5px;
}

​ 上面的代码里面三个元素有自己的独特的样式。并且使用ID选择器来绑定样式。但是也有大量的通用样式,如果把通用样式抽象出来,css代码就会变成下面的样子:

.button {
  width: 200px;
  height: 50px;
}

.box {
  width: 400px;
  overflow: hidden;
}

.widget {
  width: 500px;
  min-height: 200px;
  overflow: auto;
}
//使用skin类来书写相同的样式
.skin {
  border: solid 1px #ccc;
  background: linear-gradient(#ccc, #222);
  box-shadow: rgba(0, 0, 0, .5) 2px 2px 5px;
}

​ 这样的话代码会明朗很多,并且减少代码的体量。

​ 2.从内容分割出容器

​ 元素的声明使用了子孙选择器,并且不可复用。

​ 可以选出一些父元素上唯一的样式,将剩下的部分抽象出来组成一个复用的模块

​ 实例:

.globalwidth {
  width: 980px;
  margin: 0 auto;
  position: relative;
  padding-left: 20px;
  padding-right: 20px;
  overflow: hidden;
}

.header-inside {
  padding-top: 20px;
  padding-bottom: 20px;
  height: 260px;
}

​ 现在不需要多写css代码,就可以快速给拥有同一些特征的容器相同的样式。

3.OOCSS的优点:

​ ①:更小的css代码文件,更快的网站

​ ②:增加样式表的可维护性

​ ③:减少ID选择器的使用

4.OOCSS的缺点:

​ ①:HTML文件会稍微杂乱一点和大一点

​ ②:小型项目中OOCSS的思考可能会矫枉过正,得不到预期的效果

转载自:www.cnblogs.com/Chen-XiaoJu… 侵删