該文件主要的設計目標是提高 less 文件的團隊一致性與可維護性。
less **的基本規範和原則與 css 編碼規範 保持一致。
erik、顧軼靈、黃後錦、李玉北、趙雷。
本文件由商業運營體系前端技術組
審校發布。
在本文件中,使用的關鍵字會以中文+括號包含的關鍵字英文表示:必須(must)。關鍵字"must", "must not", "required", "shall", "shall not", "should", "should not", "recommended", "may", and "optional"被定義在rfc2119中。
使用utf-8編碼。不得(must not)包含bom資訊。
**必須(must)按如下形式按順序組織:
@import
變數宣告
樣式宣告
less
// ?
@import "est/all.less";
@default-text-color: #333;
.page
@import
語句引用的檔案必須(must)寫在一對引號內,.less
字尾不得(must not)省略(與引入 css 檔案時的路徑格式一致)。引號使用'
和"
均可,但在同一專案內必須(must)統一。
選擇器和less
// ?
@import 'est/all';
@import "my/mixins.less";
// ?
@import "est/all.less";
@import "my/mixins.less";
// ?
.box
+
/-
/*
//
四個運算子兩側必須(must)保留乙個空格。+
/-
兩側的運算元必須(must)有相同的單位,如果其中乙個是變數,另乙個數值必須(must)書寫單位。
mixin 和後面的空格之間不得(must not)包含空格。在給 mixin 傳遞引數時,在引數分隔符(less
// ?
@a: 200px;
@b: (@a+100)*2;
// ?
@a: 200px;
@b: (@a + 100px) * 2;
,
/;
)後必須(must)保留乙個空格:
當多個選擇器共享乙個宣告塊時,每個選擇器宣告必須(must)獨佔一行。less
// ?
.box
// ?
.box
class 命名不得以樣式資訊進行描述,如less
// ?
h1, h2, h3
// ?
h1,h2,
h3
.float-right
、text-red
等。
多個屬性定義可以使用縮寫時, 盡量(should)使用縮寫。縮寫更清晰位元組數更少。常見縮寫有margin
、border
、padding
、font
、list-style
等。在書寫時必須(must)考量縮寫展開後是否有不需要覆蓋的屬性內容被修改,從而帶來***。
對於處於(0, 1)
範圍內的數值,小數點前的0
可以(may)省略,同一專案中必須(must)保持一致。
當屬性值為 0 時,必須(must)省略可省的單位(長度單位如less
// ?
transition-duration: 0.5s, .7s;
// ?
transition-duration: .5s, .7s;
px
、em
,不包括時間、角度等如s
、deg
)。
顏色定義必須(must)使用less
// ?
margin-top: 0px;
// ?
margin-top: 0;
#rrggbb
格式定義,並在可能時盡量(should)縮寫為#rgb
形式,且避免直接使用顏色名稱與rgb()
表示式。
同一屬性有不同私有字首的,盡量(should)按字首長度降序書寫,標準形式必須(must)寫在最後。且這一組屬性以第一條的位置為準,盡量(should)按冒號的位置對齊。less
// ?
border-color: red;
color: rgb(254, 254, 254);
// ?
border-color: #f00;
color: #fefefe;
可以(may)在無其他更好解決辦法時使用 css hack,並且盡量(should)使用簡單的屬性名 hack 如less
// ?
.box
_zoom
、*margin
。
可以(may)但謹慎使用 ie 濾鏡。需要注意的是,ie 濾鏡中的 url 是以頁面路徑作為相對目錄,而不是 css 檔案路徑。
必須(must)採用 4 個空格為一次縮排, 不得(must not)採用 tab 作為縮排。
巢狀的宣告塊前必須(must)增加一次縮排,有多個宣告塊共享命名空間時盡量(should)巢狀書寫,避免選擇器的重複。
但是需注意的是,盡量(should)僅在必須區分上下文時才引入巢狀關係(在巢狀書寫前先考慮如果不能巢狀,會如何書寫選擇器)。
less 的變數值總是以同一作用域下最後乙個同名變數為準,務必注意後面的設定會覆蓋所有之前的設定。less
// ?
.main .title
.main .content
.main
.comment-form
}}// ?
.main
.content
.warning
}#comment:invalid
變數命名必須(must)採用@foo-bar
形式,不得(must not)使用@foobar
形式。
使用繼承時,如果在宣告塊內書寫less
// ?
@sidebarwidth: 200px;
@width:800px;
// ?
@sidebar-width: 200px;
@width: 800px;
:extend
語句,必須(must)寫在開頭:
在定義 mixin 時,如果 mixin 名稱不是乙個需要使用的 classname,必須(must)加上括號,否則即使不被呼叫也會輸出到 css 中。less
// ?
.sub
// ?
.sub
如果混入的是本身不輸出內容的 mixin,必須(must)在 mixin 後新增括號(即使不傳引數),以區分這是否是乙個 classname(修改以後是否會影響 html)。less
// ?
.big-text
h3 // ?
.big-text()
h3
mixin 的引數分隔符使用less
// ?
.box
// ?
.box
,
和;
均可,但在同一專案中必須(must)保持統一。
變數和 mixin 在命名時必須(must)遵循如下原則:
在進行字串轉義時,使用~""
表示式與e()
函式均可,但在同一專案中必須(must)保持一致。
字串兩側的引號必須(must)使用"
。
可以(may)使用 js 表示式(~``
)生成屬性值或變數,其中包含的字串兩側的引號盡量(should)使用單引號('
)。
單行注釋盡量(should)使用//
方式。
less
// hide everything
*
php 編碼規範哪些 php編碼規範
1.php 必須以完整的形式來定界 即不要使用php 短標籤 且保證在關閉標籤後不要有任何空格。2.當乙個字串是純文字組成的時候 即不含有變數 則必須總是以單引號 作為定界符。例如 a example string 3.變數替換中的變數只允許用 變數名 的形式。例如 greeting hello n...
php 編碼規範哪些 PHP編碼規範
很多初學者對編碼規範不以為然,認為對程式開發沒有什麼幫助,甚至因為要遵循規範而影響了學習和開發的進度。或者因為經過一段時間的使用,已經形成了自己的一套風格,所以不願意去改變。這種想法是很危險的。如今的 web 開發,不再是乙個人就可以全部完成的,尤其是一些大型的專案,往往需要十幾人,甚至幾十人來共同...
php 編碼規範哪些 PHP 編碼規範
這是給小組制定的php編碼規範 該 php 編碼規範基本上是同 psr 規範的。有一部分的編碼規範 psr 中是建議,此編碼規範會強制要求。此編碼規範 是以 psr 1 psr 2 psr 2擴充套件 為藍本,並增加了相應的細節說明。通則基本編碼 php 必須使用 長標籤 或 短輸出標籤 一定不可使...