溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CSS的DRY編程方式是怎樣的

發(fā)布時間:2021-09-17 17:31:22 來源:億速云 閱讀:138 作者:柒染 欄目:web開發(fā)

這篇文章將為大家詳細講解有關CSS的DRY編程方式是怎樣的,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

DRY就是Donot repeat youself 不要重復。但其實這個名字有點無趣,哪個理論不是消除重復呢,但如何消除才是意義所在??偟膩碚f我認為DRYCSS與OOCSS是兩個極端,所以我將會以對比的方式來講講DRYCSS的內容。使用DRYCSS很簡單,三步。

1. 分組可復用屬性

DRYCSS跟OOCSS有點像,第一步都是分組樣式,消除重復,但就像我說的,關鍵在于如何。OOCSS將樣式集合看作對象,所以分組的邏輯是,某個元素本身應該是什么樣的,而DRYCSS則關注重復,無論什么邏輯,只要是一樣的就應該只有一個。其中粒度是值得思考的問題,如果太細,那只會成為一行樣式一組這樣無意義的情況,如果太粗,又會變成毫無復用性的龐然大物。我認為可以將一些有關聯(lián)的缺了A時B就沒作用的樣式分為一組,還可以將某些慣用搭配分為一組。下面舉個例子:

CSS {   

  1.     floatleft;   

  2.     positionabsolute;   

  3.     displayinline-block;   

  4.     overflowhidden;   

  5. }  

這是一組樣式,可用來觸發(fā)Block formatting Contexts(塊級格式化上下文),如此就完成了一組樣式。接著再寫2組關于尺寸的樣式吧。

CSS 

  1. {   

  2.     width960px;   

  3.     heightauto;   

  4. }   

  5. {   

  6.     width720px;   

  7.     height600px;   

  8. }   

  9. {   

  10.     width220px;   

  11.     height600px;   

  12. }  

這是三組樣式用來布局,將頁面分為左右兩部分。

2. 按邏輯為分組命名

接著我們來為其命名,其實就是添加一個ID選擇器,但是我們并不真的使用它,而是用來標示該組樣式。下面就來命名上面所分組的樣式。

CSS 

  1. #BLOCK_FORMATTING_CONTEXTS   

  2. {   

  3.     floatleft;   

  4.     positionabsolute;   

  5.     displayinline-block;   

  6.     overflowhidden;   

  7. }   

  8.   

  9. #LAYOUT_FULL   

  10. {   

  11.     width960px;   

  12.     heightauto;   

  13. }   

  14.   

  15. #LAYOUT_CONTENT   

  16. {   

  17.     width720px;   

  18.     height600px;   

  19. }   

  20.   

  21. #LAYOUT_SIDEBAR   

  22. {   

  23.     width220px;   

  24.     height600px;   

  25. }  

這一步類似OOCSS的class,它決定了每組樣式所代表的邏輯或用途,然而DRYCSS多了最關鍵的下一步,也是與OOCSS本質區(qū)別。

3. 為各個分組添加選擇器

DRYCSS在使用時和OOCSS有著巨大的差異,在CSS文件中寫入HTML中的class選擇器來使用這些分組后的樣式,而不是直接在HTML中使用CSS文件中寫好的class。

CSS 

  1. .header,   

  2. .container,   

  3. .content-rightright,   

  4. .content-left,   

  5. #BLOCK_FORMATTING_CONTEXTS   

  6. {   

  7.     floatleft;   

  8.     positionabsolute;   

  9.     displayinline-block;   

  10.     overflowhidden;   

  11. }   

  12.   

  13. .header,   

  14. .navigator,   

  15. .container,   

  16. #LAYOUT_FULL   

  17. {   

  18.     width960px;   

  19.     heightauto;   

  20. }   

  21.   

  22.   

  23. .content-rightright,   

  24. .section,   

  25. #LAYOUT_CONTENT   

  26. {   

  27.     width720px;   

  28.     height600px;   

  29. }   

  30.   

  31. .content-rightright,   

  32. .sidebar,   

  33. .profile,   

  34. #LAYOUT_SIDEBAR   

  35. {   

  36.     width220px;   

  37.     height600px;   

  38. }  

可以看到,使用DRYCSS時,在HTML中所寫的class將會非常表意,元素本身是什么用來做什么,就使用其意義的class命名,而且基本上是一個元素對應一個class,HTML將變的簡單明了。另外DRYCSS也是相對于OOCSS的一種逆向思維,這才是最有趣的地方。在開發(fā)中,不應該像OOCSS那樣思考如何應對未來假象的HTML,而是僅僅思考CSS本身。

總的來說,OOCSS適合開發(fā)CSS框架或整套UI模版,是自外向內的UI開發(fā)方式;而DRYCSS則適合拯救混沌的HTML,或者加強HTML的結構性和表意性,是自內向外的UI開發(fā)方式。這里的內指地是HTML結構,外指地是CSS樣式。

關于CSS的DRY編程方式是怎樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI