欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Css 模塊化編碼技巧

  發(fā)布時(shí)間:2011-01-27 13:04:56   作者:佚名   我要評(píng)論
原生Js因jQuery的"write less,do more"變得極簡(jiǎn), Html因語義化編碼變得簡(jiǎn)明, 那么, 有沒有一種方式讓Css也更加的高效精致呢? 當(dāng)然有, 那便是模塊化編碼.
 Css的模塊化,我們可以理解成(抑或本身就是)OOP思想, 重用性、靈活性、可擴(kuò)展性便是它終極的目標(biāo), "類"便是它的核心, OOP的多用組合少用繼承一樣是它的基本原則. Css模塊化是一個(gè)新穎高效的Css編碼方式, 若有接觸過YUI Css的朋友肯定對(duì)這種方式有所了解. 如何Css模塊化, 我想這才是大家真正關(guān)心的. 我所理解的Css模塊化, 應(yīng)該從兩大塊去區(qū)分. 第一大塊, 從整站全局模塊化. 這一點(diǎn)大家并不陌生, 時(shí)常用到的reset css便是模塊化的一部分, 全局通用的字體樣式, 鏈接樣式, 以及通用頭部底部及主體容器等等這些我們已經(jīng)熟知, 另外諸如定義文字排版(如.f12{font-size:12px})、定位(如.tl{text-align:left})、長(zhǎng)度高度(如.w10{width:10px})、邊距(如.m10{margin:10px})等頁面中會(huì)常用到的樣式,這一類,我們稱之為Css通用原子類(哈,與類扯上關(guān)系了,那就權(quán)當(dāng)成類吧).通用原子類有兩個(gè)特點(diǎn): 通用性和原子性, 任何頁面都可以隨意使用它們, 且他們只表現(xiàn)最基礎(chǔ)的樣式, 一個(gè)通用原子類只設(shè)置一個(gè)樣式,不可再分. 關(guān)于整站全局模塊化不再詳述, 本文后面我會(huì)貼出阿當(dāng)?shù)?a title="Web前端開發(fā)修煉之道" target="_blank">《Web前端開發(fā)修煉之道》一書中常用通用原子類樣式. 第二大塊, 是從視覺效果上模塊化, 在視覺上樣式和功能相對(duì)獨(dú)立穩(wěn)定的部分即可視為模塊. 拆分這些模塊, 應(yīng)該盡量遵循一個(gè)原則: 模塊與模塊之間盡量不要包含相同的部分, 若有相同部分就再拆出來獨(dú)立成一個(gè)模塊. 下圖是我畫的一個(gè)簡(jiǎn)易的頁面視覺圖:
Css模塊化視覺樣例
看到上圖, 菜鳥的Css編碼一般是為1~4定義四個(gè)類名,為他們寫各自的樣式; 明智一點(diǎn)的寫法是為1~4定義四個(gè)類名, 用.a .b .c .d{...}方式定義共同樣式, 然后再為各自定義不同部分的樣式; 但是, 還有一種完美的方式, 那便是模塊化. 下面我就以上圖為例做個(gè)簡(jiǎn)單的模塊化分析. 第一步, 分析整個(gè)視覺共用部分. 可以看出,1~4中,標(biāo)題背景,標(biāo)題文字,內(nèi)容文字這三個(gè)部分的樣式都是相同的, 所以, 我們可以為這個(gè)四個(gè)區(qū)塊定義一個(gè)類名, 將共同的樣式寫給這個(gè)類名:

復(fù)制代碼
代碼如下:

...
<div class="box">
<h2>倒霉松鼠再出山</h2>
<p>20世紀(jì)??怂箤橘u座動(dòng)畫片《冰河世紀(jì)》(Ice Age內(nèi)地譯做《冰川時(shí)代》)再次開拍續(xù)集...</p>
</div>
<div class="box">
<h2>倒霉松鼠再出山</h2>
<p>20世紀(jì)??怂箤橘u座動(dòng)畫片《冰河世紀(jì)》(Ice Age內(nèi)地譯做《冰川時(shí)代》)再次開拍續(xù)集...</p>
</div>
<DIV class=box>
<h2>倒霉松鼠再出山</h2>
<p>20世紀(jì)??怂箤橘u座動(dòng)畫片《冰河世紀(jì)》(Ice Age內(nèi)地譯做《冰川時(shí)代》)再次開拍續(xù)集...</p>
</div>
<div class="box">
<h2>倒霉松鼠再出山</h2>
<p>20世紀(jì)福克斯將為賣座動(dòng)畫片《冰河世紀(jì)》(Ice Age內(nèi)地譯做《冰川時(shí)代》)再次開拍續(xù)集...</p>
</div>
...
</DIV>

第二步, 分析出不同部分, 并權(quán)衡高效使用. 可以看出, 不同部分, 主要是內(nèi)容背景色和區(qū)塊寬度兩部分. 先說背景色, 背景色有三種, 淡黃(1個(gè)), 白色(2個(gè)), 灰色(1個(gè)), 遵從"模塊與模塊之間盡量不要包含相同的部分, 若有相同部分就再拆出來獨(dú)立成一個(gè)模塊"的原則, 我們要把2個(gè)白底的樣式提出來, 另兩個(gè)單獨(dú)定義, 而根據(jù)Css優(yōu)先原則, 我們可以把白底默認(rèn)定義到第一步中的box樣式中, 另兩種背景色可做重定義處理. 再來看看寬度與定位, 2,4寬度等同且都右浮動(dòng), 所以, 我們可以把這部分提出來模塊化, 而浮動(dòng)一般可以直接調(diào)用通用原子類, 所以, 我們僅僅需要定義一個(gè)寬度樣式中(若這個(gè)寬度在通用原子類中也有就更好了). 如此以來, Html可以這樣寫:

復(fù)制代碼
代碼如下:

...
<div class="box bg_y">
<h2>倒霉松鼠再出山</h2>
<p>20世紀(jì)??怂箤橘u座動(dòng)畫片《冰河世紀(jì)》(Ice Age內(nèi)地譯做《冰川時(shí)代》)再次開拍續(xù)集...</p>
</div>
<div class="box fr right_w">
<h2>倒霉松鼠再出山</h2>
<p>20世紀(jì)??怂箤橘u座動(dòng)畫片《冰河世紀(jì)》(Ice Age內(nèi)地譯做《冰川時(shí)代》)再次開拍續(xù)集...</p>
</div>
<div class="box">
<h2>倒霉松鼠再出山</h2>
<p>20世紀(jì)??怂箤橘u座動(dòng)畫片《冰河世紀(jì)》(Ice Age內(nèi)地譯做《冰川時(shí)代》)再次開拍續(xù)集...</p>
</div>
<div class="box fr right_w bg_g">
<h2>倒霉松鼠再出山</h2>
<p>20世紀(jì)??怂箤橘u座動(dòng)畫片《冰河世紀(jì)》(Ice Age內(nèi)地譯做《冰川時(shí)代》)再次開拍續(xù)集...</p>
</div>
...

或許, 這樣的結(jié)構(gòu)對(duì)Html頁面來說, 會(huì)顯的有些臃腫, 但Css文件因?yàn)橹赜眯缘奶岣叨蟠蟮臏p小了. Css模塊化是一個(gè)比較實(shí)用但也需要去領(lǐng)悟的思想, 實(shí)際使用中也需要全面的分析, 過多的模塊也會(huì)導(dǎo)致維護(hù)性的降低, 如同OOP編程一樣, 我們也要考慮"公有屬性"與"私有屬性". 本文通過一個(gè)簡(jiǎn)單的例子解析了Css模塊化的基本思想, 更多關(guān)于Css模塊化的知識(shí), 可以看YUI Css或者其他網(wǎng)絡(luò)上的資源. do write, less more...Css也可以做到. 附: 阿當(dāng)《Web前端開發(fā)修煉之道》一書中分享的通用原子類:

復(fù)制代碼
代碼如下:

/*文字排版*/
.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}
/*長(zhǎng)度高度*/
.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}

原文發(fā)布于Mr.Think的博客: http://mrthink.net/css-tips-oopcoding/, 轉(zhuǎn)載請(qǐng)注明.

相關(guān)文章

  • CSS的樣式合并與模塊化提高代碼執(zhí)行效率

    本文的核心觀點(diǎn)為CSS的合并與模塊化,似乎與前一篇文章“CSS樣式的再分離”有矛盾,其實(shí)不然,分離可以精簡(jiǎn)CSS代碼,合并也可以精簡(jiǎn)CSS代碼,一切都是權(quán)衡,本文的“合并”
    2013-01-11
  • CSS 模塊化 實(shí)現(xiàn)方法

    最近被“模塊化”纏身,又是文章又是PPT的,想了很多相關(guān)的東西,整理下我這段時(shí)間對(duì)于“模塊化”的思考,大多都是我自己從事頁面重構(gòu)這份工作的經(jīng)驗(yàn)和理解,在一定程度上
    2009-06-26
  • CSS模塊化思想的優(yōu)勢(shì)

    網(wǎng)頁制作Webjx文章簡(jiǎn)介:名字,你看名字多重要,我不太清楚,我寫書的話我的書被人改變名稱去誤導(dǎo)別人我是不喜歡的,這是我一直說的作為一個(gè)技術(shù)人員應(yīng)當(dāng)遵守的準(zhǔn)則——互聯(lián)
    2009-04-02
  • 通過宜家的家具設(shè)計(jì)方法學(xué)習(xí)CSS模塊化

    網(wǎng)頁制作Webjx文章簡(jiǎn)介:去過宜家的同學(xué)應(yīng)該都有注意到,宜家的家具基本都是組合的,可拆裝,模塊化的特點(diǎn)也是這樣,可以組合,相對(duì)獨(dú).立,在需要的時(shí)候可以很方便的加上,那
    2009-04-02
  • CSS模塊化的理解

    網(wǎng)頁制作Webjx文章簡(jiǎn)介:我沒有看過CSS模塊化的相關(guān)書籍,所以我下面說的不一定正確,但是在工作中,我會(huì)用我理解的模塊化方式提高工作效率,我理解的模塊化,主要分為兩類
    2009-04-02
  • css模塊化的思想讓后期維護(hù)變得簡(jiǎn)單

    網(wǎng)頁制作Webjx文章簡(jiǎn)介:這里著重講一下模塊化開發(fā)為后期維護(hù)帶來的好處! 首先,不管了不了解,鬼哥的這篇文章都可以看一下,從宜家的家具設(shè)計(jì)講模塊化ht
    2009-04-02
  • CSS 模塊化的理解

    在Twinsen Liang的博客上看到一篇名為語義化單單的限定在html么?的文章,文中主要是提及了CSS的命名規(guī)則,仔細(xì)閱讀后,我認(rèn)為這個(gè)其實(shí)就是模塊化思想。(作者也提了這一點(diǎn)
    2009-02-04
  • CSS模塊化設(shè)計(jì)——從空格談起-CSS教程-網(wǎng)頁制作-網(wǎng)頁教學(xué)網(wǎng)

    引子: 今天在藍(lán)點(diǎn)看了Yang的博客《CSS樣式表中繼承關(guān)系的空格與不空格》,思考了一下,本來想寫《CSS樣式的復(fù)合定義與復(fù)合調(diào)用及簡(jiǎn)單的模塊化設(shè)計(jì)》,但是內(nèi)容太大,還是
    2008-10-17
  • css模塊化方案

    這篇文章主要介紹了css模塊化方案,css的模塊化方案可能和js的一樣多,下面簡(jiǎn)單介紹幾種主要的模塊方案,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2019-01-09

最新評(píng)論