本文介紹的如下幾種都是對CSS模塊化的各類實現,你可能工做中使用不到,甚至部分有些被淘汰。可是但願你看到這些詞的時候不會一臉懵逼!!!css
本人的上篇文章有詳細的介紹:2020年你還沒用BEM?
這裏再也不贅述html
Object Oriented CSS 面向對象的CSS
OOCSS主要提倡兩種規範前端
<div class="header bg"></div>
.header{
width: 500px;
height: 100px;
}
.bg{
background: #f00;
}
複製代碼
<div class="container">
<h2 class="list"></h2>
<h2 class="list"></h2>
<h2 class="list"></h2>
</div>
// 錯誤定義
.container h2{ ... }
// 正肯定義
.list{ ... }
複製代碼
Attribute Modules for CSS CSS的屬性模塊
AM是一種使用HTML 屬性及其值而非樣式元素的類的技術。這樣,每一個屬性均可以有效地聲明一個單獨的命名空間來封裝樣式信息,從而使HTML和CSS更具可讀性和可維護性。設計模式
簡單來講就是經過css屬性選擇器來模塊化CSS瀏覽器
優點:
屬性值得靈活性,至關於經過屬性值來增長命名空間,減小全局名稱空間,以便更好的將css模塊化bash
<div am-blockName>
<div am-blockname-chilElement></div>
<p am-tritName="one two">hello</p>
</div>
複製代碼
[am-blockName] {
width: 500px;
}
[am-blockname-chilElement] {
height: 50px;
}
[am-tritName~="one"] {
font-size: 30px;
}
複製代碼
Scalable and Modular Architecture for CSS 可擴展和模塊化的css架構
SMACSS主要是介紹遵循SMACSS的基本規則和命名規則,按照SMACSS的規則,書寫規範的CSS架構
五種類別模塊化
使用類別主要是將重複的操做簡化,減小代碼量,簡化維護,並提升用戶體驗的一致性工具
SUIT CSS是一種專一於爲基於組件的開發改善CSS創做體驗的方法
基於組件的系統容許將鬆散耦合的獨立單元實現和組合爲定義明確的複合對象。組件已封裝,但可以經過接口/事件進行互操做佈局
命名約定:
工具 class
語法:u-[sm-|md-|lg-] utilityName使用駝峯式命名
<div class="u-cf">
<a class="u-floatLeft" href="{{url}}">
<img class="u-block" src="{{src}}" alt="">
</a>
<p class="u-sizeFill u-textBreak">
…
</p>
</div>
複製代碼
組件 (負責組件特定樣式的css)
語法:[-][-descendentName][--modifierName]
.twt-Button { / * … * / }
.twt-Tabs { / * … * / }
複製代碼
<article class="MyComponent"></article>
複製代碼
<article class="Tweet">
<div class="Tweet-bodyText"></div>
</article>
複製代碼
<button class="Button Button--default"></button>
複製代碼
變量
語法:--ComponentName[-descendant|--modifier][-onState]-(cssProperty|variableName)
:root {
---ComponentName-backgroundColor
--ComponentName-descendant-backgroundColor
--ComponentName--modifier-backgroundColor
--ComponentName-onHover-backgroundColor
--ComponentName-descendant-onHover-backgroundColor
}
複製代碼
這裏只是簡單介紹,如需深刻了解能夠自行查看官網
nverted Triangle CSS 倒三角CSS
可擴展和可維護的CSS架構
ITCSS的主要原則之一是將CSS代碼庫分爲幾個部分(稱爲layer),這些部分採用倒三角形的形式:
到此爲止,以上就是介紹的所有內容,若有不正確之處。還望在評論中指出,謝謝