偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

CSS模塊化編碼 讓開發(fā)事半功倍

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

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

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

     如何Css模塊化, 我想這才是大家真正關(guān)心的. 我所理解的Css模塊化, 應(yīng)該從兩大塊去區(qū)分:

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

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

模塊化編碼

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

  1. ...  
  2. <div class="box"> 
  3.     <h2>倒霉松鼠再出山h2> 
  4.     <p>20世紀(jì)??怂箤橘u座動畫片《冰河世紀(jì)》(Ice Age內(nèi)地譯做《冰川時(shí)代》)再次開拍續(xù)集...p> 
  5. div> 
  6. <div class="box"> 
  7.     <h2>倒霉松鼠再出山h2> 
  8.     <p>20世紀(jì)??怂箤橘u座動畫片《冰河世紀(jì)》(Ice Age內(nèi)地譯做《冰川時(shí)代》)再次開拍續(xù)集...p> 
  9. div> 
  10. <DIV class=box> 
  11.     <h2>倒霉松鼠再出山h2> 
  12.     <p>20世紀(jì)??怂箤橘u座動畫片《冰河世紀(jì)》(Ice Age內(nèi)地譯做《冰川時(shí)代》)再次開拍續(xù)集...p> 
  13. div> 
  14. <div class="box"> 
  15.     <h2>倒霉松鼠再出山h2> 
  16.     <p>20世紀(jì)福克斯將為賣座動畫片《冰河世紀(jì)》(Ice Age內(nèi)地譯做《冰川時(shí)代》)再次開拍續(xù)集...p> 
  17. div> 
  18. ...  
  19. 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寬度等同且都右浮動, 所以, 我們可以把這部分提出來模塊化, 而浮動一般可以直接調(diào)用通用原子類, 所以, 我們僅僅需要定義一個(gè)寬度樣式中(若這個(gè)寬度在通用原子類中也有就更好了). 如此以來, Html可以這樣寫:

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

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

  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將你的設(shè)計(jì)水平帶入下個(gè)高度
  3. Javascript中CSS屬性float特殊寫法
責(zé)任編輯:陳貽新 來源: Mr.Think
相關(guān)推薦

2013-08-20 18:18:55

CSS模塊化Normalize.c

2024-01-25 09:00:00

DevOps人工智能

2022-09-02 08:00:00

CSS開發(fā)框架

2016-12-14 14:50:26

CSS預(yù)處理語言模塊化實(shí)踐

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

客戶端業(yè)務(wù)解耦框架

2020-09-17 10:30:21

前端模塊化組件

2013-08-20 15:31:18

前端模塊化

2017-05-18 10:23:55

模塊化開發(fā)RequireJsJavascript

2017-07-11 11:02:03

APP模塊化架構(gòu)

2015-10-10 11:29:45

Java模塊化系統(tǒng)初探

2022-03-11 13:01:27

前端模塊

2020-09-18 09:02:32

前端模塊化

2018-09-07 23:06:18

量子計(jì)算機(jī)架構(gòu)開發(fā)

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模塊化軟件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號