精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

CSS進階:提高你前端水平的4個技巧

開發 前端
隨著 Node.js 、react-native 等技術的不斷出現,和互聯網行業的創業的層出不窮,了解些前端知識,成為全棧攻城師,快速的產出原型,展示你的創意,對程序員,尤其是在創業的程序員來說,越來越重要,下面我們就跟隨著名國外開發者網站上的熱推文章《Leveling up in CSS》,從提升你的CSS技巧開始。

譯者注:隨著 Node.js 、react-native 等技術的不斷出現,和互聯網行業的創業的層出不窮,了解些前端知識,成為全棧攻城師,快速的產出原型,展示你的創意,對程序員,尤其是在創業的程序員來說,越來越重要,下面我們就跟隨著名國外開發者網站上的熱推文章《Leveling up in CSS》,從提升你的CSS技巧開始。

[[191569]] 

CSS 在剛開始學習的時候看起來非常簡單。畢竟,它僅僅就是些樣式而已,事實上是這樣嗎?

但是,隨著你的不斷了解。很快,你會發現 CSS 沒你想象的那么簡單,它復雜且有深度。

做好這四件事情,能讓你在大規模使用 CSS 的時候保證代碼的健壯性:使用適當的語義,模塊化,采用統一的命名規范,遵循單一功能原則。

使用適當的語義

在 HTML 和 CSS 編程中有語義標注的概念。語義是指單詞的含義和他們間的關系。在 HTML 編程中,意味著你需要使用一個合適的標簽名字來標記。下面是一個經典的例子。

  1. <!-- bad --> 
  2.  
  3. <div class=”footer”></div> 
  4.  
  5. <!-- good --> 
  6.  
  7. <footer></footer>  

富有語義的 HTML 是非常簡單明確的。另一方面,富有語義的 CSS 則是更抽象和主觀的。編寫富有語義的 CSS 意味著在選擇類型的時候,類名要傳達出結構和功能信息。類名要很容易被理解。確保它們不要太具體、太特殊。這樣,你就可以復用它了。

 

為了闡述什么是一個良好的類名,請看這個簡化了的 Medium 網站的 CSS 例子。

  1. <div class="stream"
  2.  
  3.   <div class="streamItem"
  4.  
  5.     <article class="postArticle"
  6.  
  7.       <div class="postArticle-content"
  8.  
  9.         <!-- content --> 
  10.  
  11.       </div> 
  12.  
  13.     </article> 
  14.  
  15.   </div> 
  16.  
  17. </div>  

通過這些代碼,你可以立即識別出它們的結構、功能和含義。父節點的類名是 stream ,內容是一個文章列表。它的子節點的類名是 streamItem ,內容是文章列表中的一篇具體的文章。這使我們很容易的了解到父節點和子節點之間的關系。并且,這些類可以在每一個有文章功能的頁面中使用。

你可以像閱讀一本書一樣讀 HTML 和 CSS。它會給你講一個故事。通過故事你可以了解故事中的每一個角色和他們之間的關系。語義豐富的 CSS 代碼容易理解,更便于維護。

若果你想進一步了解語義相關的內容,看看 《怎么富有語義的為類命名》、《CSS 命名不簡單》 和 《富有語義和容易識別(的代碼命名)》,再看 《關于 HTML 命名和前端架構》。

模塊化

在這個充滿了組件庫(以 React 為例)的時代,模塊化就是王者。組件就是由已經解構了的接口創建的可組合的模塊。下面是一個Product Hunt(一種發布好的創業項目的網站)前端頁面。作為練習,讓我們將這個頁面分解成一系列的組件。

 

每種顏色框代表一個組件,stream 節點下分為好多個 stream item 子節點。

  1. <div class="stream"
  2.  
  3.   <div class="streamItem"
  4.  
  5.     <!-- product info --> 
  6.  
  7.   </div> 
  8.  
  9. </div>  

大多數組件都可以分解為更小的組件。

 

每一個 stream item 組件都有一個縮略圖和一個特色的產品信息。

  1. <!-- STREAM COMPONENT --> 
  2.  
  3. <div class="stream"
  4.  
  5.   <div class="streamItem"
  6.  
  7.     <!-- POST COMPONENT --> 
  8.  
  9.     <div class="post"
  10.  
  11.       <img src="thumbnail.png" class="postThumbnail"/> 
  12.  
  13.       <div class="content"
  14.  
  15.         <!-- product info --> 
  16.  
  17.       </div> 
  18.  
  19.     </div> 
  20.  
  21.   </div> 
  22.  
  23. </div>  

由于 stream 組件和它的子控件是完全獨立的,你可以很容易的調整或者更換 post 組件,并且這不會對 stream 組件產生任何影響。

使用組件的思想將會使你的代碼解耦。解耦的代碼越多,你的類之間的依賴就越低。這會讓你的代碼更容易修改,并且使你的代碼更長時間的工作下去而不用修改它。

[[191570]] 

組件驅動設計

模塊化你的 CSS 時,首先將你的設計分解成多個組件。你可以使用紙和筆,也可以使用類似 Illustrator 或者 Sketch 這類的軟件。確定你將要如何命名這些組件,同時理清各個組件之間的關系。

閱讀更多關于 CSS 組件驅動的文章,詳見《CSS 建構:可擴展和模塊化處理》、《使用 Sass 編寫模塊化的 CSS》和《模塊化你的前端代碼——編寫高可維護和條理清晰的代碼》。

采用統一的命名規范

目前有幾十個不同版本的 CSS 命名規范。有些人對他們選擇的命名規范極其篤定,認為他們的比別人的更好。事實上,不同的人喜歡不同的命名規范。我聽到的***的建議是:選擇你覺得最合適的命名規范。

下面簡單列舉一下常用的命名規范:

  • Object oriented CSS OOCSS
  • Block element modifier (BEM)
  • Scalable and modular architecture for CSS (SMACSS)
  • Atomic

我最喜歡的命名規范是 BEM。BEM 代表塊(block)、元素(element)和修飾符(modifier)。Yandex,在俄羅斯的相當于谷歌的搜索引擎,為了解決他們 CSS 代碼庫中的縮放問題而提出了它(它指BEM)。

[[191571]] 

BEM 是一個極其簡單——又極其嚴格——的命名規范。

  1. .block {} 
  2.  
  3. .block__element {} 
  4.  
  5. .block--modifier {}  

塊(Blocks)代表高級別的類。元素(Elements)是塊的子模塊。修飾符(modifiers)代表不同的狀態。

[[191572]] 

 

  1. <div class="search"
  2.  
  3.   <input type="search__btn search__btn--active" /> 
  4.  
  5. </div>  

在上面的示例中, search 是塊(block),search button是它的元素(element)。如果你想要更改按鈕的狀態,我們可以為按鈕增加一個修飾符,例如 active 。

關于命名規范要記住的一件事是,無論你喜歡哪種命名規范,你會經常繼承或者工作在不同標準的代碼庫上。請敞開心扉去學習新的標準,用不同的思維去思考 CSS 。

你可以在《深入學習 BEM 語法》、《BEM 101》和《BEM 簡介》上看到更多關于 BEM 的信息。想要了解不同的命名規范,參見《OOCSS、ACSS、BEM、SMACSS:這些是什么?我該用哪個?》。

遵循單一功能原則

單一功能原則規定每個模塊和類都應該有一個單一的功能,并且該功能應該由這個類完全封裝起來。

在 CSS 中,單一功能原則代表每一段代碼、類和模塊只做一件事。當我們提交 CSS 文件時,這意味著每個獨立的組件(例如輪播效果和導航欄)都應該有自己的 CSS 文件。

  1. /components 
  2.  
  3.   |- carousel 
  4.  
  5.   |- |- carousel.css 
  6.  
  7.   |- |- carousel.partial.html 
  8.  
  9.   |- |- carousel.js 
  10.  
  11.   |- nav 
  12.  
  13.   |- |- nav.css 
  14.  
  15.   |- |- nav.partial.html 
  16.  
  17.   |- |- nav.js  

另外一個常見的組織文件的方式是按照功能將文件分組。舉個栗子,如上面所示,所有和輪播效果組件有關的文件都被分類到了一起。采用這種方式可以讓你更容易的找到相關文件。

除了對組件的樣式進行分離之外,***利用單一功能原則對全局樣式也進行分離。

  1. /base 
  2.  
  3. |- application.css 
  4.  
  5. |- typography.css 
  6.  
  7. |- colors.css 
  8.  
  9. |- grid.css  

在這個例子中,每個相關的樣式被分離到自己的樣式文件中。這樣,如果你想要修改樣式中的顏色,那么你將會很容易的找到它。

無論你使用哪種方式組織文件結構,盡量在決定的時候參考單一功能原則。一旦有某個文件開始變的臃腫,那么考慮按照邏輯功能將它分成多個部分。

更多有關組織文件結構和 CSS 架構的文章,詳見《Sass 審美 1:架構和組織樣式文件》和《可擴展和可維護的 CSS 架構》。

當單一功能原則應用于你的每一個 CSS 類選擇器中時,這意味著每一個類選擇器都有著唯一的功能。換句話說,要根據不同關注點將樣式分離到不同的類選擇器中。下面是個經典的例子:

  1. .splash { 
  2.  
  3.   background: #f2f2f2; 
  4.  
  5.   color: #fffff; 
  6.  
  7.   margin: 20px; 
  8.  
  9.   padding: 30px; 
  10.  
  11.   border-radius: 4px; 
  12.  
  13.   position: absolute
  14.  
  15.   top: 0; 
  16.  
  17.   right: 0; 
  18.  
  19.   bottom: 0; 
  20.  
  21.   left: 0; 
  22.  
  23.  

在上面的例子中,我們將關注點耦合了。splash 這個類不但包含了本身的樣式和邏輯,同時也包含了它的子節點的。為了解決這個問題,我們可以將這段代碼分離為兩個新的類。

  1. .splash { 
  2.  
  3.   position: absolute
  4.  
  5.   top: 0; 
  6.  
  7.   right: 0; 
  8.  
  9.   bottom: 0; 
  10.  
  11.   left: 0; 
  12.  
  13.  

現在我們有 splash 和 splash content 兩個類。我們可以將 splash 作為一個一般的全屏類,它可以擁有任何子節點。所有子節點關注的屬性,都在 splash content 中,與父節點的屬性是完全解耦的。

你可以通過閱讀下列文章進一步了解單一功能原則在樣式表和類中的應用。《單一功能原則在 CSS 中的應用》和《單一功能原則》。

簡單勝過復雜

如果你問任何一個成功的前端開發工程師或者 CSS 架構師,他們會告訴你,他們從來沒有對自己的代碼完全滿意。寫好 CSS 是一個不斷迭代的過程。從簡單開始,遵循基本的 CSS 規則和樣式指南,然后不斷迭代。

我很想知道你的 CSS 學習之路。你喜歡的命名規范是什么?你是怎樣組織你的代碼文件的?你可以隨時通過留言或者在 Tweet 上告訴我。 

責任編輯:龐桂玉 來源: 前端大全
相關推薦

2025-05-15 03:20:00

2023-03-19 16:15:33

CSS技巧開發

2020-05-07 17:03:49

Python編碼開發

2021-01-09 09:23:29

CSS頁面渲染開發

2023-07-24 15:24:00

前端CSS 技巧

2020-12-07 06:01:37

Css前端content

2017-02-05 17:33:59

前端優化Web性能

2021-07-01 15:25:32

前端水印代碼

2023-03-27 14:33:50

ChatGPT

2021-01-31 21:36:24

GitHub

2013-03-04 09:34:48

CSSWeb

2019-11-25 10:20:54

CSS代碼javascript

2023-01-09 17:23:14

CSS技巧

2020-08-04 08:30:18

JS數組技巧

2020-06-04 15:55:54

GitHub代碼開發者

2025-05-22 08:04:43

2021-03-18 07:52:42

代碼性能技巧開發

2010-09-02 16:14:20

CSS布局

2020-12-02 14:54:41

JavaScript開發技術

2010-12-31 09:14:36

MongoDB
點贊
收藏

51CTO技術棧公眾號

日韩av手机在线观看| 九色porny丨国产首页在线| 欧美天堂一区二区| 欧美bbbbb| 欧美α欧美αv大片| 日韩精品欧美专区| 99精品视频99| av毛片在线看| 婷婷综合网站| 欧美中文字幕一区二区三区亚洲| 成人综合电影| 加勒比婷婷色综合久久| 日韩欧美专区| 亚洲成人在线网站| 97久久精品午夜一区二区| 91制片厂在线| 国产极品嫩模在线观看91精品| 久久久噜噜噜久久中文字幕色伊伊 | 免费拍拍拍网站| 91中文字幕在线视频| 国产欧美日韩精品高清二区综合区| 亚洲图片欧美色图| www日韩av| 国产黄色片视频| 国产精品x8x8一区二区| 亚洲一区在线视频| 亚洲精品一区二区三| 中文无码精品一区二区三区| 国际精品欧美精品| 精品福利一区二区三区| 欧美一级视频在线播放| 永久免费av片在线观看全网站| 日本 国产 欧美色综合| 久久人人爽国产| 在线精品一区二区三区| 天天综合av| 国产亚洲欧美日韩日本| 国产日韩欧美夫妻视频在线观看| 久久av红桃一区二区禁漫| 深夜福利亚洲| 欧美在线影院一区二区| 国产福利视频在线播放| 成人jjav| 国内精品视频一区二区三区八戒| 欧美成人免费一级人片100| 亚洲综合中文网| 999福利在线视频| 99久久精品一区| 日韩av第一页| 特级西西444www大精品视频免费看| 日韩伦理一区二区三区| 欧美亚洲动漫制服丝袜| 香蕉视频免费版| 丁香六月色婷婷| 欧美一级播放| 久久影院在线观看| 黄色av网址在线观看| 视频二区欧美| 色综合色综合色综合色综合色综合 | 一区二区日韩视频| 日本aⅴ免费视频一区二区三区 | 99这里只有精品视频| 亚洲高清视频的网址| www.亚洲成人网| 六十路在线观看| 国产综合一区二区| 欧美精品videosex牲欧美| 麻豆av免费观看| 欧美影院视频| 日韩欧美国产wwwww| 北条麻妃视频在线| 肉肉视频在线观看| 国产日韩成人精品| 午夜精品亚洲一区二区三区嫩草 | 亚洲女人天堂av| 三区视频在线观看| 在线观看欧美日韩电影| 亚洲免费在线观看| 欧美尤物一区| 成人爽a毛片一区二区| 成人国产免费视频| 成人免费淫片视频软件| 最近免费中文字幕大全免费版视频| 91成人精品| 国产一区二区三区免费视频| 国产a级黄色片| 国产美女亚洲精品7777| 欧美私人免费视频| 亚洲精品mv在线观看| 久久亚洲精品爱爱| 欧美日韩一区二区免费视频| 玖玖精品在线视频| h片在线观看视频免费| 日韩欧美在线免费| 天天夜碰日日摸日日澡性色av| 麻豆传媒在线观看| 国产清纯美女被跳蛋高潮一区二区久久w| www.av一区视频| 精品视频二区| 久久一区二区三区四区| 黄色99视频| 天天av天天翘| 成人av网站免费| 日韩精品极品视频在线观看免费| 麻豆影院在线| 欧美日韩国产一区二区三区| 一路向西2在线观看| 欧美电影免费观看| 色综合咪咪久久| 999热精品视频| 精品久久久久久久久久久aⅴ| 日韩成人中文字幕| 欧美深性狂猛ⅹxxx深喉| 不卡在线一区二区| 原创国产精品91| 大胸美女被爆操| 欧美r级电影| 久久精品这里热有精品| a一级免费视频| 香蕉av777xxx色综合一区| 91|九色|视频| 91精品专区| 综合电影一区二区三区| 中国一级黄色录像| 久久久成人av毛片免费观看| 精品久久久久久久久久久久久久久 | 亚洲综合激情另类小说区| 国产a级片免费看| 老司机在线看片网av| 亚洲美女屁股眼交| 日韩一区二区三区不卡视频| 中国av一区| 色妞欧美日韩在线| 国产人妻精品一区二区三区不卡 | 国产女同无遮挡互慰高潮91| 免费视频亚洲| 色悠悠久久久久| www.国产毛片| 26uuu成人网一区二区三区| 欧美最大成人综合网| gogo高清午夜人体在线| 欧美一区二区三区视频在线| 色悠悠在线视频| 亚洲第一二三区| 97精品伊人久久久大香线蕉| 国产主播第一页| 精品亚洲成a人| 亚洲人成人77777线观看| 中文国产字幕在线观看| 777奇米成人网| 欧产日产国产精品98| 亚洲精品**不卡在线播he| 91国产高清在线| 亚洲天堂国产精品| 成人午夜激情在线| 日韩免费av一区二区三区| 成人性生交大片免费网站| 日韩精品中文在线观看| 亚洲少妇xxx| 精品一区二区三区免费| 精品国产免费久久久久久尖叫 | 日韩av电影国产| 欧美人体大胆444www| 日韩欧美中文字幕在线播放| 亚洲精品在线电影| 国产又粗又猛又爽又黄av | 久久一区二区三区喷水| 国产精品久久久久久网站| 狠狠色狠狠色综合人人| 羞羞视频在线免费国产| 日韩一区二区三区视频在线| 亚洲一区二区在线免费| 99精品视频免费| 成人黄色在线播放| 18网站在线观看| 亚洲第一色在线| 91嫩草丨国产丨精品| 午夜宅男久久久| 日韩精品一区二区三区色偷偷| 国产极品嫩模在线观看91精品| 久久精品男人天堂| 国产成人手机在线| 一本大道久久a久久精品综合| 妖精视频在线观看免费| 午夜一区二区三区不卡视频| 视频一区国产精品| 久久69av| 久久天天躁狠狠躁夜夜爽蜜月| 国产免费一区二区三区免费视频| 国产目拍亚洲精品99久久精品| 四季av一区二区三区| 国内成人精品| 亚洲qvod图片区电影| 最新真实国产在线视频| 日韩一区二区免费在线电影| 美日韩一二三区| 不卡av在线免费观看| 苍井空浴缸大战猛男120分钟| eeuss国产一区二区三区四区| 欧美一级淫片播放口| 狠狠综合久久av一区二区| 欧美日韩亚洲一区二区| www.97视频| 久久影院电视剧免费观看| 肉色超薄丝袜脚交| 性色一区二区三区| 99视频精品全部免费看| 日韩一区二区三区精品视频第3页| 91精品国产91| 黄色动漫在线| 亚洲无亚洲人成网站77777| 亚洲第一大网站| 一卡二卡三卡日韩欧美| 妺妺窝人体色WWW精品| 性色一区二区| 青青草国产免费| 五月开心六月丁香综合色啪| 欧美日韩一区综合| 最新欧美电影| 中文字幕一区日韩电影| 怡红院男人的天堂| 婷婷综合五月天| 亚洲第一香蕉网| 日韩黄色片在线观看| 无码免费一区二区三区免费播放| 综合视频一区| 91成人免费观看网站| 色综合久久久久综合99| 欧美一区二区三区四区五区六区| 美女精品久久| 成人黄色大片在线免费观看| 欧美极品影院| 3344国产精品免费看| 97人人在线视频| 欧美精品videos| 波多野结衣在线观看| 欧美一区二区三区免费在线看| 波多野结衣午夜| 一本到高清视频免费精品| 国内精品福利视频| 婷婷中文字幕一区三区| 欧美亚洲天堂网| 亚洲一区二区五区| 欧美成人免费观看视频 | 欧美成人乱码一二三四区免费| 久久午夜影视| 一区二区三区国产福利| av一区二区在线播放| 欧美一区免费视频| 国产欧美高清视频在线| 色狠狠久久av五月综合|| 视频一区中文| 日韩一区不卡| 久久美女精品| 男人天堂成人网| 欧美二区不卡| 日本高清一区| 精品美女久久久| 亚洲欧洲日韩综合二区| 手机在线电影一区| 中文字幕一区二区三区乱码| 久久久亚洲欧洲日产| 国产一区二中文字幕在线看| 国产福利91精品一区二区| 成人精品久久一区二区三区| 韩国三级成人在线| 高清国语自产拍免费一区二区三区| 亚洲不卡在线| 久99久视频| 日韩一区二区三区精品视频第3页 日韩一区二区三区精品 | 亚洲国产毛片完整版| 中文字幕+乱码+中文乱码www| 欧美日韩中文另类| 欧美三级一区二区三区| 欧美性猛交xxxx富婆| 日本一区二区三区久久| 天天亚洲美女在线视频| 久久久成人免费视频| 亚洲资源中文字幕| 国产成人无码精品久在线观看| 欧美视频在线观看免费| 日本一区二区三区久久| 日韩午夜精品视频| 亚洲AV成人无码一二三区在线| 91精品婷婷国产综合久久| 亚洲国产精品suv| 亚洲久久久久久久久久久| 最新97超碰在线| 久久久久久久97| 成人日韩在线观看| 亚洲一区二区少妇| 曰本一区二区三区视频| 国产盗摄视频在线观看| 亚洲精品三级| 久久久久久久9| 日韩精品电影在线观看| 91欧美一区二区三区| 91网站在线播放| 日韩高清dvd碟片| 欧美三级免费观看| 99久久精品日本一区二区免费| 精品亚洲va在线va天堂资源站| 米奇精品一区二区三区| 欧美亚洲视频在线看网址| 精品中文视频| 亚洲第一在线综合在线| 99精品视频免费观看| 在线一区二区不卡| 2021国产精品久久精品| 午夜69成人做爰视频| 欧美亚洲综合网| 亚洲人视频在线观看| 久久91精品国产| 手机在线免费av| 国产精品精品久久久久久| jizz免费一区二区三区| 国产一区福利视频| 五月综合久久| 97在线免费视频观看| 国产一区亚洲| 黄色一级视频在线播放| 夜夜夜久久久| 免费国偷自产拍精品视频| 国产三区在线成人av| 国产一级精品视频| 精品久久久久久久久久久久包黑料 | 中文字幕一区二区三区四区不卡| 亚洲色图日韩精品| 狠狠躁天天躁日日躁欧美| 亚洲国产av一区二区| 久久色精品视频| 日本午夜免费一区二区| 日本一区二区三区四区高清视频| 中文在线不卡| 中文字幕第80页| 黑人巨大精品欧美一区| 欧美 日韩 国产 成人 在线观看| 岛国av在线不卡| 五月婷婷伊人网| 性金发美女69hd大尺寸| 福利片一区二区| 国产www免费| 成人h动漫精品一区二区| 久久久久久久伊人| 色国产综合视频| 99精品视频免费看| 久久精品人人做人人爽| 日韩成人在线一区| 亚洲最大免费| 激情五月婷婷综合| 手机在线免费看片| 日韩精品资源二区在线| 国产三级伦理在线| 国产精选一区二区| 日韩精品看片| 国产精品无码人妻一区二区在线| 成人福利视频在线看| 国产成人免费观看视频 | 欧洲精品一区二区| a视频网址在线观看| 国产一区私人高清影院| 亚洲精品网址| 大尺度在线观看| 色综合天天性综合| 婷婷成人激情| 操人视频欧美| 国产精品婷婷| 国产一区二区三区四区在线| 91麻豆精品久久久久蜜臀| 青青草视频在线免费直播| 国产97免费视| 日韩激情一区| 欧美人与性动交α欧美精品| 亚洲大型综合色站| 国产51人人成人人人人爽色哟哟 | 无遮挡亚洲一区| 国产一区二区免费看| 亚洲精品在线观看av| 亚洲欧洲日韩国产| 狂野欧美性猛交xxxxx视频| 国产在线精品一区| 日日夜夜精品视频免费| 国产黄a三级三级| 欧美精品一区二区三区蜜臀| 日本综合字幕| 男人日女人的bb| 久久亚洲春色中文字幕久久久| 亚洲天堂手机在线| 久久久免费观看| 日本a口亚洲| 成人在线电影网站| 欧美日韩精品一区二区三区| 黄色片在线免费观看| 91精品久久久久久久久| 亚洲美女91| 午夜三级在线观看| 精品亚洲精品福利线在观看| 伊人亚洲精品| 在线视频一区观看| av资源网一区|