成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

CSS模塊化編碼 讓開發事半功倍

開發 前端
原生Js因jQuery的"write less,do more"變得極簡, Html因語義化編碼變得簡明, 那么, 有沒有一種方式讓Css也更加的高效精致呢? 當然有, 那便是模塊化編碼.

    原生Js因jQuery的"write less,do more"變得極簡, Html因語義化編碼變得簡明, 那么, 有沒有一種方式讓Css也更加的高效精致呢? 當然有, 那便是模塊化編碼.

    Css的模塊化,我們可以理解成(抑或本身就是)OOP思想, 重用性、靈活性、可擴展性便是它終極的目標, "類"便是它的核心, OOP的多用組合少用繼承一樣是它的基本原則. Css模塊化是一個新穎高效的Css編碼方式, 若有接觸過YUI Css的朋友肯定對這種方式有所了解.

     如何Css模塊化, 我想這才是大家真正關心的. 我所理解的Css模塊化, 應該從兩大塊去區分:

     第一大塊, 從整站全局模塊化. 這一點大家并不陌生, 時常用到的reset css便是模塊化的一部分, 全局通用的字體樣式, 鏈接樣式, 以及通用頭部底部及主體容器等等這些我們已經熟知, 另外諸如定義文字排版(如.f12{font-size:12px})、定位(如.tl{text-align:left})、長度高度(如.w10{width:10px})、邊距(如.m10{margin:10px})等頁面中會常用到的樣式,這一類,我們稱之為Css通用原子類(哈,與類扯上關系了,那就權當成類吧).通用原子類有兩個特點: 通用性和原子性, 任何頁面都可以隨意使用它們, 且他們只表現最基礎的樣式, 一個通用原子類只設置一個樣式,不可再分. 關于整站全局模塊化不再詳述, 本文后面我會貼出阿當的《Web前端開發修煉之道》一書中常用通用原子類樣式.

    第二大塊, 是從視覺效果上模塊化, 在視覺上樣式和功能相對獨立穩定的部分即可視為模塊. 拆分這些模塊, 應該盡量遵循一個原則: 模塊與模塊之間盡量不要包含相同的部分, 若有相同部分就再拆出來獨立成一個模塊. 下圖是我畫的一個簡易的頁面視覺圖:

模塊化編碼

  看到上圖, 菜鳥的Css編碼一般是為1~4定義四個類名,為他們寫各自的樣式; 明智一點的寫法是為1~4定義四個類名, 用.a .b .c .d{...}方式定義共同樣式, 然后再為各自定義不同部分的樣式; 但是, 還有一種完美的方式, 那便是模塊化. 下面我就以上圖為例做個簡單的模塊化分析. 第一步, 分析整個視覺共用部分. 可以看出,1~4中,標題背景,標題文字,內容文字這三個部分的樣式都是相同的, 所以, 我們可以為這個四個區塊定義一個類名, 將共同的樣式寫給這個類名:

  1. ...  
  2. <div class="box"> 
  3.     <h2>倒霉松鼠再出山h2> 
  4.     <p>20世紀福克斯將為賣座動畫片《冰河世紀》(Ice Age內地譯做《冰川時代》)再次開拍續集...p> 
  5. div> 
  6. <div class="box"> 
  7.     <h2>倒霉松鼠再出山h2> 
  8.     <p>20世紀福克斯將為賣座動畫片《冰河世紀》(Ice Age內地譯做《冰川時代》)再次開拍續集...p> 
  9. div> 
  10. <DIV class=box> 
  11.     <h2>倒霉松鼠再出山h2> 
  12.     <p>20世紀福克斯將為賣座動畫片《冰河世紀》(Ice Age內地譯做《冰川時代》)再次開拍續集...p> 
  13. div> 
  14. <div class="box"> 
  15.     <h2>倒霉松鼠再出山h2> 
  16.     <p>20世紀福克斯將為賣座動畫片《冰河世紀》(Ice Age內地譯做《冰川時代》)再次開拍續集...p> 
  17. div> 
  18. ...  
  19. DIV> 

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

  1. ...  
  2. <div class="box bg_y"> 
  3.     <h2>倒霉松鼠再出山h2> 
  4.     <p>20世紀福克斯將為賣座動畫片《冰河世紀》(Ice Age內地譯做《冰川時代》)再次開拍續集...p> 
  5. div> 
  6. <div class="box fr right_w"> 
  7.     <h2>倒霉松鼠再出山h2> 
  8.     <p>20世紀福克斯將為賣座動畫片《冰河世紀》(Ice Age內地譯做《冰川時代》)再次開拍續集...p> 
  9. div> 
  10. <div class="box"> 
  11.     <h2>倒霉松鼠再出山h2> 
  12.     <p>20世紀福克斯將為賣座動畫片《冰河世紀》(Ice Age內地譯做《冰川時代》)再次開拍續集...p> 
  13. div> 
  14. <div class="box fr right_w bg_g"> 
  15.     <h2>倒霉松鼠再出山h2> 
  16.     <p>20世紀福克斯將為賣座動畫片《冰河世紀》(Ice Age內地譯做《冰川時代》)再次開拍續集...p> 
  17. div> 
  18. ... 

   或許, 這樣的結構對Html頁面來說, 會顯的有些臃腫, 但Css文件因為重用性的提高而大大的減小了. Css模塊化是一個比較實用但也需要去領悟的思想, 實際使用中也需要全面的分析, 過多的模塊也會導致維護性的降低, 如同OOP編程一樣, 我們也要考慮"公有屬性"與"私有屬性". 本文通過一個簡單的例子解析了Css模塊化的基本思想, 更多關于Css模塊化的知識, 可以看YUI Css或者其他網絡上的資源. do write, less more...Css也可以做到. 附: 阿當《Web前端開發修煉之道》一書中分享的通用原子類:

  1. /*文字排版*/  
  2. .f12{font-size:12px}  
  3. .f13{font-size:13px}  
  4. .f14{font-size:14px}  
  5. .f16{font-size:16px}  
  6. .f20{font-size:20px}  
  7. .fb{font-weight:bold}  
  8. .fn{font-weight:normal}  
  9. .t2{text-indent:2em}  
  10. .lh150{line-height:150%}  
  11. .lh180{line-height:180%}  
  12. .lh200{line-height:200%}  
  13. .unl{text-decoration:underline;}  
  14. .no_unl{text-decoration:none;}  
  15. /*定位*/  
  16. .tl{text-align:left}  
  17. .tc{text-align:center}  
  18. .tr{text-align:right}  
  19. .bc{margin-left:auto;margin-right:auto;}  
  20. .fl{float:left;display:inline}  
  21. .fr{float:right;display:inline}  
  22. .cb{clear:both}  
  23. .cl{clear:left}  
  24. .cr{clear:right}  
  25. .clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden}  
  26. .clearfix{display:inline-block}* html .clearfix{height:1%}.clearfix{display:block}  
  27. .vm{vertical-align:middle}  
  28. .pr{position:relative}  
  29. .pa{position:absolute}  
  30. .abs-right{position:absolute;right:0}  
  31. .zoom{zoom:1}  
  32. .hidden{visibility:hidden}  
  33. .none{display:none}  
  34. /*長度高度*/  
  35. .w10{width:10px}  
  36. .w20{width:20px}  
  37. .w30{width:30px}  
  38. .w40{width:40px}  
  39. .w50{width:50px}  
  40. .w60{width:60px}  
  41. .w70{width:70px}  
  42. .w80{width:80px}  
  43. .w90{width:90px}  
  44. .w100{width:100px}  
  45. .w200{width:200px}  
  46. .w250{width:250px}  
  47. .w300{width:300px}  
  48. .w400{width:400px}  
  49. .w500{width:500px}  
  50. .w600{width:600px}  
  51. .w700{width:700px}  
  52. .w800{width:800px}  
  53. .w{width:100%}  
  54. .h50{height:50px}  
  55. .h80{height:80px}  
  56. .h100{height:100px}  
  57. .h200{height:200px}  
  58. .h{height:100%}  
  59. /*邊距*/  
  60. .m10{margin:10px}  
  61. .m15{margin:15px}  
  62. .m30{margin:30px}  
  63. .mt5{margin-top:5px}  
  64. .mt10{margin-top:10px}  
  65. .mt15{margin-top:15px}  
  66. .mt20{margin-top:20px}  
  67. .mt30{margin-top:30px}  
  68. .mt50{margin-top:50px}  
  69. .mt100{margin-top:100px}  
  70. .mb10{margin-bottom:10px}  
  71. .mb15{margin-bottom:15px}  
  72. .mb20{margin-bottom:20px}  
  73. .mb30{margin-bottom:30px}  
  74. .mb50{margin-bottom:50px}  
  75. .mb100{margin-bottom:100px}  
  76. .ml5{margin-left:5px}  
  77. .ml10{margin-left:10px}  
  78. .ml15{margin-left:15px}  
  79. .ml20{margin-left:20px}  
  80. .ml30{margin-left:30px}  
  81. .ml50{margin-left:50px}  
  82. .ml100{margin-left:100px}  
  83. .mr5{margin-right:5px}  
  84. .mr10{margin-right:10px}  
  85. .mr15{margin-right:15px}  
  86. .mr20{margin-right:20px}  
  87. .mr30{margin-right:30px}  
  88. .mr50{margin-right:50px}  
  89. .mr100{margin-right:100px}  
  90. .p10{padding:10px;}  
  91. .p15{padding:15px;}  
  92. .p30{padding:30px;}  
  93. .pt5{padding-top:5px}  
  94. .pt10{padding-top:10px}  
  95. .pt15{padding-top:15px}  
  96. .pt20{padding-top:20px}  
  97. .pt30{padding-top:30px}  
  98. .pt50{padding-top:50px}  
  99. .pb5{padding-bottom:5px}  
  100. .pb10{padding-bottom:10px}  
  101. .pb15{padding-bottom:15px}  
  102. .pb20{padding-bottom:20px}  
  103. .pb30{padding-bottom:30px}  
  104. .pb50{padding-bottom:50px}  
  105. .pb100{padding-bottom:100px}  
  106. .pl5{padding-left:5px}  
  107. .pl10{padding-left:10px}  
  108. .pl15{padding-left:15px}  
  109. .pl20{padding-left:20px}  
  110. .pl30{padding-left:30px}  
  111. .pl50{padding-left:50px}  
  112. .pl100{padding-left:100px}  
  113. .pr5{padding-right:5px}  
  114. .pr10{padding-right:10px}  
  115. .pr15{padding-right:15px}  
  116. .pr20{padding-right:20px}  
  117. .pr30{padding-right:30px}  
  118. .pr50{padding-right:50px}  
  119. .pr100{padding-right:100px} 

 【編輯推薦】

  1. 使用CSS樣式化HTML 5
  2. 用CSS 3將你的設計水平帶入下個高度
  3. Javascript中CSS屬性float特殊寫法
責任編輯:陳貽新 來源: Mr.Think
相關推薦

2013-08-20 18:18:55

CSS模塊化Normalize.c

2024-01-25 09:00:00

DevOps人工智能

2022-09-02 08:00:00

CSS開發框架

2016-12-14 14:50:26

CSS預處理語言模塊化實踐

2019-08-28 16:18:39

JavaScriptJS前端

2010-08-02 09:10:36

Flex模塊化

2017-02-13 18:46:38

Android模塊化組件化

2024-11-21 16:37:30

客戶端業務解耦框架

2020-09-17 10:30:21

前端模塊化組件

2013-08-20 15:31:18

前端模塊化

2017-05-18 10:23:55

模塊化開發RequireJsJavascript

2017-07-11 11:02:03

APP模塊化架構

2015-10-10 11:29:45

Java模塊化系統初探

2022-03-11 13:01:27

前端模塊

2020-09-18 09:02:32

前端模塊化

2018-09-07 23:06:18

量子計算機架構開發

2018-03-21 21:31:28

Java9編程Java

2022-09-05 09:01:13

前端模塊化

2016-10-09 11:03:41

Javascript模塊化Web

2017-05-18 11:43:41

Android模塊化軟件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美大片一区二区 | 欧美国产日韩一区 | 999视频 | 日韩在线国产 | 日韩欧美在线免费观看视频 | 欧美精品久久一区 | 日本免费黄色一级片 | 午夜黄色 | 久久新视频| 国产精品视频在线观看 | 在线一级片 | 午夜精品久久久久久久久久久久 | 午夜理伦三级理论三级在线观看 | 国产亚洲二区 | 91精品在线播放 | 日本久久精品视频 | 亚洲高清在线观看 | 亚洲精品无 | 亚洲一区二区三区在线视频 | av永久免费 | 91视频www.| 国产日韩欧美激情 | 一区影视 | 久久久久久久久久久国产 | 国产精品国产a级 | 国产在线精品一区二区 | 欧美视频二区 | 国产精品久久久久久久免费大片 | 日韩精品一区二区三区中文字幕 | 看毛片的网站 | 免费黄色录像视频 | 久久国产一区二区 | 精品视频一区二区三区 | 黄网址在线观看 | 欧美另类视频 | 国内自拍视频在线观看 | 日韩久草| 天天色av | 国产精品激情 | 色综合久久久久 | 亚洲精品福利在线 |