您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關CSS的DRY編程方式是怎樣的,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
DRY就是Donot repeat youself 不要重復。但其實這個名字有點無趣,哪個理論不是消除重復呢,但如何消除才是意義所在。總的來說我認為DRYCSS與OOCSS是兩個極端,所以我將會以對比的方式來講講DRYCSS的內容。使用DRYCSS很簡單,三步。
1. 分組可復用屬性
DRYCSS跟OOCSS有點像,第一步都是分組樣式,消除重復,但就像我說的,關鍵在于如何。OOCSS將樣式集合看作對象,所以分組的邏輯是,某個元素本身應該是什么樣的,而DRYCSS則關注重復,無論什么邏輯,只要是一樣的就應該只有一個。其中粒度是值得思考的問題,如果太細,那只會成為一行樣式一組這樣無意義的情況,如果太粗,又會變成毫無復用性的龐然大物。我認為可以將一些有關聯的缺了A時B就沒作用的樣式分為一組,還可以將某些慣用搭配分為一組。下面舉個例子:
CSS {
float: left;
position: absolute;
display: inline-block;
overflow: hidden;
}
這是一組樣式,可用來觸發Block formatting Contexts(塊級格式化上下文),如此就完成了一組樣式。接著再寫2組關于尺寸的樣式吧。
CSS
{
width: 960px;
height: auto;
}
{
width: 720px;
height: 600px;
}
{
width: 220px;
height: 600px;
}
這是三組樣式用來布局,將頁面分為左右兩部分。
2. 按邏輯為分組命名
接著我們來為其命名,其實就是添加一個ID選擇器,但是我們并不真的使用它,而是用來標示該組樣式。下面就來命名上面所分組的樣式。
CSS
#BLOCK_FORMATTING_CONTEXTS
{
float: left;
position: absolute;
display: inline-block;
overflow: hidden;
}
#LAYOUT_FULL
{
width: 960px;
height: auto;
}
#LAYOUT_CONTENT
{
width: 720px;
height: 600px;
}
#LAYOUT_SIDEBAR
{
width: 220px;
height: 600px;
}
這一步類似OOCSS的class,它決定了每組樣式所代表的邏輯或用途,然而DRYCSS多了最關鍵的下一步,也是與OOCSS本質區別。
3. 為各個分組添加選擇器
DRYCSS在使用時和OOCSS有著巨大的差異,在CSS文件中寫入HTML中的class選擇器來使用這些分組后的樣式,而不是直接在HTML中使用CSS文件中寫好的class。
CSS
.header,
.container,
.content-rightright,
.content-left,
#BLOCK_FORMATTING_CONTEXTS
{
float: left;
position: absolute;
display: inline-block;
overflow: hidden;
}
.header,
.navigator,
.container,
#LAYOUT_FULL
{
width: 960px;
height: auto;
}
.content-rightright,
.section,
#LAYOUT_CONTENT
{
width: 720px;
height: 600px;
}
.content-rightright,
.sidebar,
.profile,
#LAYOUT_SIDEBAR
{
width: 220px;
height: 600px;
}
可以看到,使用DRYCSS時,在HTML中所寫的class將會非常表意,元素本身是什么用來做什么,就使用其意義的class命名,而且基本上是一個元素對應一個class,HTML將變的簡單明了。另外DRYCSS也是相對于OOCSS的一種逆向思維,這才是最有趣的地方。在開發中,不應該像OOCSS那樣思考如何應對未來假象的HTML,而是僅僅思考CSS本身。
總的來說,OOCSS適合開發CSS框架或整套UI模版,是自外向內的UI開發方式;而DRYCSS則適合拯救混沌的HTML,或者加強HTML的結構性和表意性,是自內向外的UI開發方式。這里的內指地是HTML結構,外指地是CSS樣式。
關于CSS的DRY編程方式是怎樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。