CSS之少用繼承,多用組合
更新時(shí)間:2008年11月18日 00:54:24 作者:
繼承是 css中經(jīng)常要用到的技術(shù),好處是可以盡量讓頁(yè)面的代碼減少重復(fù)利用,但是隨時(shí)項(xiàng)目越來(lái)越大,需求的不斷變化,css代碼就會(huì)變得越來(lái)越臃腫,后期難以控制和維護(hù)。其實(shí),css代碼和普通程序代碼在編寫的時(shí)候有很多的相似之處,下面我們就用試試用組合的方式是不是能更好的解決這個(gè)問題。
下面是一段普通的代碼:
css:
.box{
border:1px solid #ccc;
font-size:12px;
background:#f1f1f1;
padding:10px;
}
html:
<div class="box">this is a gray box</div>
但是這個(gè)時(shí)候需求增加了,在頁(yè)面中不僅要有一個(gè)灰色的盒子可能還有藍(lán)色的盒子,可能還有綠色,通常我們會(huì)說(shuō)用集成嘛,好我們就做如下更改
css:
.box-gray,
.box-green{
border:1px solid #ccc;
font-size:12px;
padding:10px;
}
.box-gray{background:#f1f1f1}
.box-green{background:#66ff66}
Html:
<div class="box-gray">this is a gray box</div>
<div class="box-green">this is a green box</div>
但是這個(gè)時(shí)候需求又有變化了,根與應(yīng)用的不同,盒子中有些要用到12號(hào)字,有些要用到14號(hào)字,有些要變局10px有些要20px,估計(jì)這個(gè)時(shí)候你就要頭大了,如果要用用繼承css代碼就會(huì)變得異常的復(fù)雜,那我們就來(lái)試驗(yàn)一下用組合的方式看能不能解決。
css:
.fs-12{font-size:12px}
.fs-14{font-size:14px}
.pd-10{padding:10px}
.pd-20{padding:20px}
.box{
border:1px solid #ccc;
}
.box.gray{background:#f1f1f1}
.box.green{background:#66ff66}
Html
<div class="box gray fs-12 pd-20">this a gray fontsize12px padding20px box</div>
<div class="box green fs-14 pd-10">this a gray fontsize14px padding10px box</div>
….
我們看一些雖然在class上引用了幾個(gè),但是代碼和邏輯都非常清晰,而且非常容易維護(hù),隨意組合隨意擴(kuò)展。從上面可以看到“組合”的方式是不言而喻的,但是也不是十全十美的,再拆分組合的時(shí)候一定不要過(guò)度,不然效果可能適得其反,只有把組合+繼承運(yùn)用的恰到好處才能讓我們的代碼更加優(yōu)雅和藝術(shù)。
css:
復(fù)制代碼 代碼如下:
.box{
border:1px solid #ccc;
font-size:12px;
background:#f1f1f1;
padding:10px;
}
html:
復(fù)制代碼 代碼如下:
<div class="box">this is a gray box</div>
但是這個(gè)時(shí)候需求增加了,在頁(yè)面中不僅要有一個(gè)灰色的盒子可能還有藍(lán)色的盒子,可能還有綠色,通常我們會(huì)說(shuō)用集成嘛,好我們就做如下更改
css:
復(fù)制代碼 代碼如下:
.box-gray,
.box-green{
border:1px solid #ccc;
font-size:12px;
padding:10px;
}
.box-gray{background:#f1f1f1}
.box-green{background:#66ff66}
Html:
復(fù)制代碼 代碼如下:
<div class="box-gray">this is a gray box</div>
<div class="box-green">this is a green box</div>
但是這個(gè)時(shí)候需求又有變化了,根與應(yīng)用的不同,盒子中有些要用到12號(hào)字,有些要用到14號(hào)字,有些要變局10px有些要20px,估計(jì)這個(gè)時(shí)候你就要頭大了,如果要用用繼承css代碼就會(huì)變得異常的復(fù)雜,那我們就來(lái)試驗(yàn)一下用組合的方式看能不能解決。
css:
復(fù)制代碼 代碼如下:
.fs-12{font-size:12px}
.fs-14{font-size:14px}
.pd-10{padding:10px}
.pd-20{padding:20px}
.box{
border:1px solid #ccc;
}
.box.gray{background:#f1f1f1}
.box.green{background:#66ff66}
Html
復(fù)制代碼 代碼如下:
<div class="box gray fs-12 pd-20">this a gray fontsize12px padding20px box</div>
<div class="box green fs-14 pd-10">this a gray fontsize14px padding10px box</div>
….
我們看一些雖然在class上引用了幾個(gè),但是代碼和邏輯都非常清晰,而且非常容易維護(hù),隨意組合隨意擴(kuò)展。從上面可以看到“組合”的方式是不言而喻的,但是也不是十全十美的,再拆分組合的時(shí)候一定不要過(guò)度,不然效果可能適得其反,只有把組合+繼承運(yùn)用的恰到好處才能讓我們的代碼更加優(yōu)雅和藝術(shù)。
相關(guān)文章
DIV CSS網(wǎng)頁(yè)布局 最小高度(min-height)的妙用
最小高度可以設(shè)定一個(gè)BOX的最小高度,當(dāng)其內(nèi)容較少時(shí)時(shí),也能保持BOX的高度為一定,超出就自動(dòng)向下延伸,但到目前為止,只有Opera 和 Mozilla 支持,IE7開始也支持了,但I(xiàn)E7處于測(cè)試階段,等正式版發(fā)布到普及需一段也許比較長(zhǎng)的時(shí)間,除非MS把它捆綁在某個(gè)操作系統(tǒng)上,如何在現(xiàn)有基礎(chǔ)上(IE6 80-90%),合理、妙用最小高度了?2008-11-11DIV+CSS網(wǎng)頁(yè)另類上下布局的實(shí)例代碼
在論壇里看到一位朋友在問一個(gè)上下2個(gè)內(nèi)容框的,寬度為100%的布局方式,然后自己也就嘗試了一下,發(fā)現(xiàn)了幾個(gè)問題的存在2008-10-10推薦深入理解css中的position定位和z-index屬性
推薦深入理解css中的position定位和z-index屬性...2007-10-10Iframe自適應(yīng)高度兼容ie,firefox多瀏覽器
從網(wǎng)上找的Iframe自適應(yīng)高度,不是自已寫的! 從哪找的忘了,要不一定寫明出處! 放出來(lái)給自已留個(gè)備份!2008-04-04