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… 侵删