您现在的位置是:网站首页> 编程资料编程资料
Css 模块化编码技巧_CSS教程_CSS_网页制作_
2021-09-08
828人已围观
简介 原生Js因jQuery的"write less,do more"变得极简, Html因语义化编码变得简明, 那么, 有没有一种方式让Css也更加的高效精致呢? 当然有, 那便是模块化编码.

看到上图, 菜鸟的Css编码一般是为1~4定义四个类名,为他们写各自的样式; 明智一点的写法是为1~4定义四个类名, 用.a .b .c .d{...}方式定义共同样式, 然后再为各自定义不同部分的样式; 但是, 还有一种完美的方式, 那便是模块化. 下面我就以上图为例做个简单的模块化分析. 第一步, 分析整个视觉共用部分. 可以看出,1~4中,标题背景,标题文字,内容文字这三个部分的样式都是相同的, 所以, 我们可以为这个四个区块定义一个类名, 将共同的样式写给这个类名:
...
倒霉松鼠再出山
20世纪福克斯将为卖座动画片《冰河世纪》(Ice Age内地译做《冰川时代》)再次开拍续集...
倒霉松鼠再出山
20世纪福克斯将为卖座动画片《冰河世纪》(Ice Age内地译做《冰川时代》)再次开拍续集...
倒霉松鼠再出山
20世纪福克斯将为卖座动画片《冰河世纪》(Ice Age内地译做《冰川时代》)再次开拍续集...
倒霉松鼠再出山
20世纪福克斯将为卖座动画片《冰河世纪》(Ice Age内地译做《冰川时代》)再次开拍续集...
...
第二步, 分析出不同部分, 并权衡高效使用. 可以看出, 不同部分, 主要是内容背景色和区块宽度两部分. 先说背景色, 背景色有三种, 淡黄(1个), 白色(2个), 灰色(1个), 遵从"模块与模块之间尽量不要包含相同的部分, 若有相同部分就再拆出来独立成一个模块"的原则, 我们要把2个白底的样式提出来, 另两个单独定义, 而根据Css优先原则, 我们可以把白底默认定义到第一步中的box样式中, 另两种背景色可做重定义处理. 再来看看宽度与定位, 2,4宽度等同且都右浮动, 所以, 我们可以把这部分提出来模块化, 而浮动一般可以直接调用通用原子类, 所以, 我们仅仅需要定义一个宽度样式中(若这个宽度在通用原子类中也有就更好了). 如此以来, Html可以这样写:
...
倒霉松鼠再出山
20世纪福克斯将为卖座动画片《冰河世纪》(Ice Age内地译做《冰川时代》)再次开拍续集...
倒霉松鼠再出山
20世纪福克斯将为卖座动画片《冰河世纪》(Ice Age内地译做《冰川时代》)再次开拍续集...
倒霉松鼠再出山
20世纪福克斯将为卖座动画片《冰河世纪》(Ice Age内地译做《冰川时代》)再次开拍续集...
倒霉松鼠再出山
20世纪福克斯将为卖座动画片《冰河世纪》(Ice Age内地译做《冰川时代》)再次开拍续集...
...
或许, 这样的结构对Html页面来说, 会显的有些臃肿, 但Css文件因为重用性的提高而大大的减小了. Css模块化是一个比较实用但也需要去领悟的思想, 实际使用中也需要全面的分析, 过多的模块也会导致维护性的降低, 如同OOP编程一样, 我们也要考虑"公有属性"与"私有属性". 本文通过一个简单的例子解析了Css模块化的基本思想, 更多关于Css模块化的知识, 可以看YUI Css或者其他网络上的资源. do write, less more...Css也可以做到. 附: 阿当《Web前端开发修炼之道》一书中分享的通用原子类:
/*文字排版*/
.f12{font-size:12px}
.f13{font-size:13px}
.f14{font-size:14px}
.f16{font-size:16px}
.f20{font-size:20px}
.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}
.w60{width:60px}
.w70{width:70px}
.w80{width:80px}
.w90{width:90px}
.w100{width:100px}
.w200{width:200px}
.w250{width:250px}
.w300{width:300px}
.w400{width:400px}
.w500{width:500px}
.w600{width:600px}
.w700{width:700px}
.w800{width:800px}
.w{width:100%}
.h50{height:50px}
.h80{height:80px}
.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}
.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}
.p10{padding:10px;}
.p15{padding:15px;}
.p30{padding:30px;}
.pt5{padding-top:5px}
.pt10{padding-top:10px}
.pt15{padding-top:15px}
.pt20{padding-top:20px}
.pt30{padding-top:30px}
.pt50{padding-top:50px}
.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}
原文发布于Mr.Think的博客: http://mrthink.net/css-tips-oopcoding/, 转载请注明.
相关内容
- CSS层叠与继承的使用深入剖析_CSS教程_CSS_网页制作_
- CSS对浏览器的兼容性技巧总结 _浏览器兼容教程_CSS_网页制作_
- 纯CSS+Div 的标签实现代码_CSS教程_CSS_网页制作_
- 深入浅出CSS3 background-clip,background-origin和border-image教程 _css3_CSS_网页制作_
- css 标题一行图片 两行文字的排列方法以及相关问题处理 _CSS教程_CSS_网页制作_
- CSS Sprite打造的个性化导航菜单代码_CSS教程_CSS_网页制作_
- IE6、IE7、IE8浏览器下的CSS、JS兼容性对比_浏览器兼容教程_CSS_网页制作_
- 兼做美工之导航条制作过程分享_CSS教程_CSS_网页制作_
- IE6下PNG背景透明的七种方法小结_CSS教程_CSS_网页制作_
- 设置span 宽度的完美解决方案_CSS教程_CSS_网页制作_
点击排行
本栏推荐
-
魔兽世界9.0马卓克萨斯背部幻化怎么得 马卓克萨斯boss骨堆刷新机制分享_网络游戏_游戏攻略_
-
魔兽世界9.0实验型构造体部件在哪 实验型构造体组件获取方法_网络游戏_游戏攻略_
-
魔兽世界9.0身居其中任务怎么做 身居其中任务流程_网络游戏_游戏攻略_
-
魔兽世界9.0塞兹仙林的迷雾老二怎么分辨 塞兹仙林的迷雾老二boss辨别技巧_网络游戏_游戏攻略_
-
魔兽世界9.0典狱长之怒能打几次 典狱长之怒是日常还是周常_网络游戏_游戏攻略_
-
魔兽世界9.0周常任务1000心能怎么做 第二周1000心能速刷攻略_网络游戏_游戏攻略_
-
魔兽世界9.0闪雾奔行者怎么得 冷酷的瓦尔菲尔坐骑获取流程_网络游戏_游戏攻略_
猜你喜欢
- 魔兽世界9.0马卓克萨斯背部幻化怎么得 马卓克萨斯boss骨堆刷新机制分享_网络游戏_游戏攻略_
- 魔兽世界9.0实验型构造体部件在哪 实验型构造体组件获取方法_网络游戏_游戏攻略_
- 魔兽世界9.0身居其中任务怎么做 身居其中任务流程_网络游戏_游戏攻略_
- 魔兽世界9.0塞兹仙林的迷雾老二怎么分辨 塞兹仙林的迷雾老二boss辨别技巧_网络游戏_游戏攻略_
- 魔兽世界9.0典狱长之怒能打几次 典狱长之怒是日常还是周常_网络游戏_游戏攻略_
- 魔兽世界9.0周常任务1000心能怎么做 第二周1000心能速刷攻略_网络游戏_游戏攻略_
- 魔兽世界9.0闪雾奔行者怎么得 冷酷的瓦尔菲尔坐骑获取流程_网络游戏_游戏攻略_