怎么提高CSS的复用性

在做项目时,能把自己写的东西带走,随时随地可用在另一个项目中,是做项目最大的收获。所以提高CSS的复用性非常重要,我们可以自己写框架。

如果是大型网站,那就需要一个比较好的组织结构,比如这种base.css+common.css+page.css组织方式:

1.base提供最底层的、功能和粒度最小的的通用类样式,可以被所有页面引用,力求精简和通用;
2.common则是楼上提到的模块化组件,即将功能相对独立的划分为模块,重复次数多的模块划分为组件,提取到common层,这一层需要尽可能实现封装,对可能经常变化的部分提供灵活的接口;
3.page是页面级别的样式表,提供各页面独有的样式,可以再根据需求细分如page-index.css,page-connect.css

这样做的好处是

1.比较利于维护
2.组件复用率高,修改起来比较轻松
3.代码精简,减少冗余。

以下是一段base.css示例。

/*css reset*/
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin: 0;padding: 0;}
table{border-collapse:collapse;border-spacing:0;}
fieldset,img{border:0;}
address,caption,cite,code,dfn,em,strong,th,var{font-style: normal;font-weight: normal;}
ol,ul{list-style: none;}
caption,th{text-align:left;}
h1,h2,h3,h4,h5,h6{font-size: 100%;font-weight: normal;}
q:before,q:after{content:'';}
abbr,acronym{ border:0;}

/*文字排版*/
.f12{font-size: 12px;}
.f13{font-size: 13px;}
.f14{font-size: 14px;}
.f16{font-size: 16px;}
.fb{font-weight: bold;}
.fn{font-weight: normal;}
.t2{text-indent: 2em;}
.lh150{line-height:150%;}
.lh180{line-height:180%;}
.lh200{line-height:200%;}
.unl{text-decoration: underline;}
.no_unl{text-decoration: none;}

/*定位*/
.tl{text-align: left;}
.tc{text-align: center;}
.tr{text-align: right;}
.bc{margin-left: auto;margin-right: auto;}
.fl{float: left;display:inline;}
.fr{float: right;display:inline;}
.cb{clear:both;}
.cl{clear: left;}
.cr{clear: right;}
.clearfix:after{content: '.';display:block;height: 0;clear: both;visibility: hidden;}
.clearfix{display:inline-block}*html
.clearfix{height: 1%}.Clearfix{display: block;}
.vm{vertical-align: middle;}
.pr{position: relative;}
.pa{position: absolute;}
abs-right{position: absolute;right: 0;}
.zoom{zoom:1;}
.hidden{visibility: hidden;}
.none{display: none}
/*长度高度*/
.w10{width: 10px;}
.w20{width: 20px;}
.w30{width: 30px;}
.w40{width: 40px;}
.w50{width: 50px;}
.w70{width: 70px;}
.w90{width: 90px;}
.w100{width: 100px;}
.w300{width: 300px;}
.w500{width: 500px;}
.w600{width: 600px;}
.w700{width: 700px;}
.w800{width: 800px;}
.w{width: 100%;}
.h50{height: 50px;}
.h100{height: 100px;}
.h200{height: 200px;}
.h{height: 100%;}

/*编剧*/
.m10{margin:10px;}
.m15{margin:15px;}
.m30{margin:30px;}
.mt5{margin-top:5px;}
.mt10{margin-top:10px;}
.mt15{margin-top:15px;}
.mt20{margin-top:20px;}
.mt30{margin-top:30px;}
.mt50{margin-top:50px;}
.mt100{margin-top:100px;}
.mb5{margin-bottom: 5px;}
.mb10{margin-bottom: 10px;}
.mb15{margin-bottom: 15px;}
.mb20{margin-bottom: 20px;}
.mb30{margin-bottom: 30px;}
.mb50{margin-bottom: 50px;}
.mb100{margin-bottom: 100px;}
.ml5{margin-left: 5px;}
.ml10{margin-left: 10px;}
.ml15{margin-left: 15px;}
.ml20{margin-left: 20px;}
.ml30{margin-left: 30px;}
.ml50{margin-left: 50px;}
.ml100{margin-left: 100px;}
.mr5{margin-right: 5px;}
.mr10{margin-right:10px;}
.mr15{margin-right: 15px;}
.mr20{margin-right: 20px;}
.mr30{margin-right: 30px;}
.mr50{margin-right: 50px;}
.mr100{margin-right: 100px;}
.p5{padding: 5px;}
.p10{padding:10px;}
.p15{padding: 15px;}
.p20{padding: 20px;}
.p30{padding: 30px;}
.p50{padding: 50px;}
.p100{padding: 100px;}
.pt5{padding-top: 5px;}
.pt10{padding-top:10px;}
.pt15{padding-top: 15px;}
.pt20{padding-top: 20px;}
.pt30{padding-top: 30px;}
.pt50{padding-top: 50px;}
.pt100{padding-top: 100px;}
.pb5{padding-bottom: 5px;}
.pb10{padding-bottom:10px;}
.pb15{padding-bottom: 15px;}
.pb20{padding-bottom: 20px;}
.pb30{padding-bottom: 30px;}
.pb50{padding-bottom: 50px;}
.pb100{padding-bottom: 100px;}
.pl5{padding-left: 5px;}
.pl10{padding-left:10px;}
.pl15{padding-left: 15px;}
.pl20{padding-left: 20px;}
.pl30{padding-left: 30px;}
.pl50{padding-left: 50px;}
.pl100{padding-left: 100px;}
.pr5{padding-right: 5px;}
.pr10{padding-right:10px;}
.pr15{padding-right: 15px;}
.pr20{padding-right: 20px;}
.pr30{padding-right: 30px;}
.pr50{padding-right: 50px;}
.pr100{padding-right: 100px;}

建议:
1.在做CSS项目规划时,首先写好css reset类代码,因为浏览器对于标签是有默认样式的。具体代码可参考上述代码。
2.划分CSS原子类。一个大型的项目,会有一些常用的css规则,比如text-align,float,border,positon等有可能出现十几次,几十次。。加入我们已经在项目开始的时候就已经定义好了我们的css原子类,那么在需要左浮动的元素上只需要引入.fl的class就可以了。但是,当一个元素引入的css原子类多起来的时候,那么这个元素的class的值也会快速膨胀起来,class属性值最好不要超过5个,当过多时,我们可以考虑css模块化。
3.把项目中可复用的组件模块化,比如button,input,单独放在common组件文件里,既能保持网站风格的统一,又便于后期复用和维护。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值