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

一份前端開發人員的架構樣式指南,請查收!

譯文
開發 前端
當你的前端項目開始擴展或新的前端工程師加入團隊時,理解如何在你的項目代碼庫中組織 CSS 是非常重要的。

【51CTO.com快譯】你曾經開發大型前端項目時是不是有這樣的經歷,項目的 JavaScript 源文件結構清晰,但想要對 CSS 進行更改時,就會遇到一堆亂七八糟的非結構化 CSS 。

雖然你知道添加或修改哪些 CSS 屬性,但是寫代碼時還是很小心謹慎,因為在很多地方有 CSS 屬性被覆蓋,在某些情況下,甚至還使用了 !important。由于擔心增加或者修改代碼會破壞現有樣式,所以你會創建一個新的規則,這會讓混亂的情況進一步增加。

這是許多前端項目都面臨的問題。

當你的項目開始擴展或新的前端工程師加入團隊時,理解如何在你的項目代碼庫中組織 CSS 是非常重要的。本篇文章將通過不同的想法,幫助你創建更強大的CSS架構。 

??

為什么我們需要強大的CSS架構?

穩固的 CSS 體系結構基礎可以在項目開始擴展和發展時為其提供支持。如果基礎沒有經過深思熟慮的思考和規劃,那么未來,你的項目很可能會倒塌。

當然,CSS不太可能像 JavaScript 錯誤那樣破壞你的系統,但它可以產生不同的問題,使項目工作非常困難。如果你的團隊對在項目中添加或更改 CSS 沒有信心,那么他們會添加 Bug,這些 Bug 會影響用戶的體驗,使項目受到影響。

因此,開始一個項目時,有一個可靠的 CSS 架構是非常必要的,**畢竟編寫糟糕的CSS 要比刪除它更容易。**

在我的印象里,CSS在前端領域并沒有被廣泛的關注。我們花費大量的時間學習最新的 JavaScript 框架,卻堅持用淺顯的 CSS 理解湊合著構建 Web 模塊。

我想這是我們都犯過的錯誤,也是我想要改變的事情。

我們可以使用哪些CSS架構?

當我開始研究這個主題時,有許多CSS架構脫穎而出:

  • OOCSS (Object-Oriented CSS)
  • SMACSS (Scalable and Modular Architecture for CSS)
  • ACSS(Atomic CSS)
  • BEM (Block Element Modifier)

這次我簡要描述下每種方法。

什么是 BEM?

BEM代表塊元素修飾符,是一種構建CSS的方法,推薦在創建樣式類時使用一致的命名約定。BEM推薦的命名約定是 block-name__element-name--modifier-name。

  • block-name:描述應設置樣式的塊。例如:photo。
  • __element-name:描述該塊中應設置樣式的元素。例如:photo_image。
  • --modifier-name:描述正在設置樣式的塊或元素的修改器。例如:photo__image--black-and-white。

什么是OOCSS?

OOCSS代表面向對象的CSS,它是一種設計CSS的方法,推薦使用抽象來分離結構樣式和可視化樣式,同時消除CSS的重復。

下面這個例子:

.button {
padding: 10px 16px;
color: blue;
}
.h1 {
font-size: 2em;
color: blue;
}

OOCSS會更改成如下:

.button {
padding: 10px 16px;
}
.h1 {
font-size: 2em;
}
.primary {
color: blue;
}

通過我們的新抽象,我們可以將 primary 類分配給兩個 button 和 h1 元素,并被賦予 blue 顏色。這有助于我們保持樣式表整潔,避免重復。

什么是 SMACSS?

SMACSS代表CSS的可擴展和模塊化體系結構。它要求在五種不同類別下構建樣式:base,layout,module,state 和 theme。

  • Base 樣式應保留你默認的CSS樣式。這些樣式將用于網站或應用程序的所有元素。
  • Layout 樣式應該包含元素的樣式,這些元素的設計目的是將頁面分離為其結構組件。頁眉、頁腳和網格等元素的樣式應該在這里定義。
  • Module 樣式應該包含跨網站或應用程序的可重用元素的樣式。
  • State 樣式應該定義你的網站或應用程序中不同元素的不同狀態。諸如“is-active”、“is-disabled”和“is-success”之類的樣式。
  • Theme 樣式應該決定元素的外觀。他們應該超越基本的樣式,并開始注入你的項目的風格到網站或應用程序。

什么是 ACSS?

ACSS代表 Atomic CSS,它專注于創建許多小型 CSS 實用工具類,供你在 HTML 中使用。與 OOCSS 相似的是,它們都建議將重復的屬性值分離到它們自己的規則中。ACSS可以被看作是OOCSS的一個更極端的版本,因為它鼓勵你在盡可能小的層次上創建樣式。

下面是使用Atomic CSS項目中的一些樣式規則示例:

/* Colours */
.color-primary { color: blue; }
.color-secondary { color: purple; }

/* Margins */
.mt-1 { margin-top: 5px; }
.mt-2 { margin-top: 10px; }
.mb-1 { margin-bottom: 5px; }
.mb-2 { margin-bottom: 10px; }

與OOCSS的不同是,ACSS 建議在 CSS 選擇器的命名約定中使用CSS屬性。比如在OOCSS中你可以定義一個 .primary 類將元素的顏色更改為藍色。但在 ACSS 中你需要定義一個 .color-primary的類。

應該選擇哪種 CSS 架構?

簡單的說,選哪個都沒有關系。因為上面的幾種架構都有優點和缺點。不同的人在選擇上會有不同的看法。

最重要的是,在開始編寫CSS之前,確保您的團隊已經同意使用一致的格式。這種格式可以是上面提到的架構之一,或者是不同架構的混合,或者是你自己想出來的東西。

負責該項目的工程團隊應該理解這種結構,以便編寫的任何新CSS都遵循選擇的樣式。最好是在文檔中解釋體系結構,這樣新加入團隊的工程師也能夠快速、輕松地了解項目所選擇的體系結構。

總結

無論你選擇如何構建項目,都必須確保不要忘記 CSS,并嘗試維護 CSS 代碼保持一致樣式,使新工程師更容易上手,讓他們能夠自信地進行更改。確保這些規則被記錄和執行,最好以自動化的方式。

如果在項目開始階段不花時間創建一套強大的規則來管理 CSS 的編寫方式,那么長遠來看,遇到問題時花費的時間將會更多。所以,為了后續更高效的編寫代碼,前期的規則制定很有必要。 

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】


責任編輯:黃顯東
相關推薦

2022-02-28 11:26:40

模型深度學習谷歌

2022-04-13 18:12:37

TypeScriptPython開發

2022-04-20 10:56:06

JavaJVM參數

2025-02-08 11:02:57

2022-05-16 13:58:52

開發區塊鏈Web3

2009-08-27 12:00:40

ibmdwJava

2020-06-09 07:57:47

前端開發代碼

2022-06-06 10:30:23

容器鏡像

2020-05-11 09:54:33

JavaScript開發技術

2021-10-27 10:43:24

開發技能代碼

2020-03-30 11:32:49

IT技術面試

2013-09-25 09:20:39

iOS開發iOS7iPhone5s

2010-08-09 16:09:25

2018-11-26 09:55:07

MySQL誤刪數據數據庫

2021-11-16 19:19:07

API接口前端開發

2009-11-23 20:07:51

ibmdw開發

2021-02-19 09:33:01

kubernetesJAVA服務

2009-12-11 14:50:14

Visual Basi

2012-05-30 15:15:42

ibmdw

2023-03-15 07:12:53

企業開發人員提供商
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本一区二区影视 | 国产黄色av电影 | 亚洲黄色在线 | 欧美在线观看一区 | 国产日韩一区二区 | 四虎影 | 精品综合 | 亚洲精品欧美一区二区三区 | 国产99视频精品免费播放照片 | 91精品久久久久久久久中文字幕 | 亚洲三级在线观看 | 精品美女视频在免费观看 | 欧美精品电影一区 | 欧美精品在线播放 | 亚洲精品久久久久久久久久久久久 | 久久国产精品网 | 九九久久国产精品 | 久久国产精品精品 | 中文字幕欧美在线观看 | 黄a免费网络 | 在线播放中文字幕 | 91欧美精品成人综合在线观看 | 99久久免费精品国产免费高清 | 久久日韩精品一区二区三区 | 亚洲经典一区 | av片在线免费看 | 免费爱爱视频 | 欧美日韩在线视频一区 | 免费在线黄 | 亚洲福利一区 | 韩国毛片一区二区三区 | 成年人网站国产 | 久久免费精品 | 一级毛片视频在线 | 三级免费毛片 | 国产精品一级 | 91精品久久久 | 亚洲综合国产 | 狠狠干美女 | 久久亚洲一区二区三区四区 | 国产视频福利 |