學好WEB前端之CSS規範
CSS 指層疊樣式表 (Cascading Style Sheets),定義如何顯示 HTML 元素,但由於 CSS 天生全域性性,隨著專案複雜度增加,極易出現樣式覆蓋以及其它的問題。
1. 通用規範
檔案編碼
-
為了避免內容亂碼,統一使用
UTF-8
編碼儲存。 -
樣式檔案第一行設定字符集為 UTF-8
@charset 'UTF-8'; /* 注意字符集說明應在第一行 */
縮排規範
統一使用
兩個空格縮排
web前端開發直播教程Q-q-u-n: 767273102 ,內有免費開發工具,零基礎,進階影片教程,希望新手少走彎路
2. 初始化規範
各瀏覽器廠商的初始樣式都不一樣,為了消除不同瀏覽器對 HTML 文字呈現的差異,我們常引入一些初始化樣式,如 normalize.css、reset.css 等,當對於這些樣式的引入我們需要注意下面幾種情況:
-
不使用 UI 框架,由零開始搭建
從零開始搭建的情況下,進行樣式初始化,在專案最開始的時候就引入,不要在開發中途引入,避免不可預知的樣式衝突。 -
不使用 UI 框架,但使用了部分外掛
外掛往往都帶有自己特有的樣式,如富文字外掛,在開發中途使用初始化樣式有可能導致樣式錯亂,所以不建議大範圍的初始化,只需簡單進行初始化
即可。
* { padding: 0; margin: 0; }
-
已使用 UI 框架
在明確知道需要使用 UI 框架的時候,不使用第三方初始化樣式
,不管是在專案開始前還是進行中,因為 UI 框架一般都自帶初始化,額外引入了反而會影響原有效果。
3. 程式碼規範
命名規範
class 應以功能或內容命名,不以表現形式命名
class 與 id 單詞字母小寫,多個單片語成時,採用中劃線-分隔
使用唯一的 id 作為 Javascript hook, 同時避免建立無樣式資訊的 class
程式碼風格
-
統一使用
展開格式
,不推薦緊湊格式/* 展開格式 */ .test { color: red; font-size: 12px; }
/* 緊湊格式 */ .test { color: red; font-size: 12px; }
-
統一
兩個空格
縮排 -
屬性宣告結尾加分號
-
選擇器與左括號之間一個空格,屬性冒號後一個空格
/* 推薦 */ .test { color: red; font-size: 12px; }
/* 不推薦 */ .test { color: red; font-size: 12px; }
-
不要為 0 指明單位
-
顏色值和屬性值十六進位制數值能用簡寫的儘量用簡寫
/* 推薦 */ .test { color: #fff; }
/* 不推薦 */ .test { color: #ffffff; }
-
引號使用
url() 、屬性選擇符、屬性值使用
單引號
。 -
清除浮動
當元素需要撐起高度以包含內部的浮動元素時,透過對偽類設定 clear 或觸發 BFC 的方式進行 clearfix。儘量不使用增加空標籤的方式。
觸發 BFC 的方式很多,常見的有:
- float 非 none
- position 非 static
- overflow 非 visible
字型規範
-
對外商用網站,不要用
font-face
引入微軟雅黑
字型,避免侵權(包括圖片內容) -
需要在 Windows 平臺顯示的中文內容,其字號應不小於
12px
網站上使用 微軟雅黑 字型有三種形式: 1、【侵權】圖片中使用 微軟雅黑 字型,比如網站頭圖 2、【安全】網站 CSS 用 font-family 宣告網站使用 微軟雅黑 字型,比如文章標題和正文 3、【侵權】網站透過 font-face 引用 微軟雅黑 ,這種方式不常見
選擇器規範
在嚴格遵照 BEM(Block Element Modifier) 時,建議只使用類選擇器,但 BEM 書寫麻煩,所以建議如下
- 禁用通用選擇器 *
-
不使用無具體語義定義的標籤選擇器
web前端開發直播教程Q-q-u-n: 767273102 ,內有免費開發工具,零基礎,進階影片教程,希望新手少走彎路
屬性順序
CSS 屬性順序是 CSS 良好編碼風格的一部分,有助於提高程式碼可讀性,便於發現程式碼問題,有利於團隊合作,但在專案中發現部分同學在書寫屬性順序時較為隨意,想到一個屬性就寫一個。
建議使用下列順序進行書寫
- 定位屬性(position、display、float、left、right)
- 尺寸屬性(width、height、padding、margin、border)
- 字型屬性(color、font、text-align)
- 其他屬性(background、cursor、outline)
目的是在瀏覽程式碼時,能逐步清晰目標元素的效果。
.test { display: block; position: relative; float: left; width: 100px; height: 100px; margin: 0 10px; padding: 20px 0; font-size: 12px; color: #333; background: rgba(0, 0, 0, 0.5); border-radius: 10px; }
4. 註釋規範
單行註釋
註釋以
/*
開始,以
*/
結束,註釋內不能巢狀註釋,註釋內容
前後空一個空格
。
/* 推薦的單行註釋 */
/*不推薦的單行註釋*/
注:在 sass 和 less 等預處理語言上也可以使用雙斜線註釋,但編譯後註釋內容不會出現在 css 檔案中,所以建議統一使用
/* */
註釋。
模組註釋
有時候我們需要對一個模組(一段程式碼塊)進行功能性說明,並希望能明顯區分其它程式碼,我們可以模組註釋的方式。
註釋以
/*
開始,以
*/
結束,
前後空一個空格
,第一行填寫
描述
,最後一行行填寫
分割線
。
/* 推薦的模組註釋 ---------------------------------------------------- */
/* 不推薦的模組註釋 ---------------------------------------------------- */
*
檔案資訊註釋
如果需要對一個檔案進行功能性說明,方便其他人快速明白該檔案的作用,推薦在檔案開頭(字符集說明下)寫入下列註釋,註釋內容包括檔案描述、建立人、建立時間等。
@charset "UTF-8"; /** * @desc 檔案功能描述,方便其他人快速理解 * @author 建立人 * @date 建立時間 */
5. 覆蓋規範
-
儘可能
少用
importent -
vue 單檔案元件統一使用 css/less/sass
scoped
-
每個頁面/元件需要有一個
全域性唯一
的標識 id/class,屬於它下面的樣式都需要加上該唯一標識 - 避免全域性修改已有樣式,必須具體到頁面上(透過權重)
-
禁用全匹配
*
選擇器(特殊情況除外,如初始化)
vue 單檔案元件修改樣式不生效可使用
/deep/
或
>>>
6. 媒體查詢
對於內部管理系統,商務多使用 ThinkPad 筆記本,螢幕解析度為
1366*768
。建議使用
Resolution Test
瀏覽器擴充進行瀏覽器視窗大小除錯。
下載地址: /devtool/res…
常用尺寸如下
大小 | 描述 |
---|---|
≥1366px | 大螢幕 大桌面顯示器 |
≥1200px | 中等螢幕 桌面顯示器 |
≥992px | 中等螢幕 桌面顯示器 |
≥768px | 小螢幕 平板 |
<768px | 超小螢幕 手機 |
優先 PC 端
預設按最大尺寸進行佈局,當尺寸縮小時逐步變成移動端佈局
body { background: gray; } @media screen and (max-width: 1366px) { body { background: red; } } @media screen and (max-width: 1200px) { body { background: yellow; } } @media screen and (max-width: 920px) { body { background: green; } } @media screen and (max-width: 768px) { body { background: black; } }
優先移動端
預設按最小尺寸進行佈局,當尺寸放大時逐步變成 PC 端佈局
body { background: gray; } @media (min-width: 768px) { body { background: red; } } @media (min-width: 920px) { body { background: green; } } @media (min-width: 1200px) { body { background: yellow; } } @media (min-width: 1366px) { body { background: red; } }
如果需要做列印樣式進行適配,需要使用@media print
@media print { body { background: #fff; } }
7. 單位規範
CSS 單位有兩種,分別是
絕對單位
和
相對單位
。
-
常用絕對單位
- px:畫素 (計算機螢幕上的一個點)
- cm:釐米
- in:英寸
- pt:磅 (1 pt 等於 1/72 英寸)
-
常用相對單位
- %:父元素百分比
- vw:視口寬度百分比
- vh:視口高度百分比
- em:當前字型倍數
- rem:根元素字型倍數
-
*
rpx:微信小程式專用,規定螢幕寬為 750rpx
使用較多的單位有 px、%、rem 三種,
建議 PC 端用 px 單位、移動端用 rem,需要具體控制尺寸還是使用 px
備註:如果需要計算不同單位下的值,可以使用 css3 方法 calc()_
web前端開發直播教程Q-q-u-n: 767273102 ,內有免費開發工具,零基礎,進階影片教程,希望新手少走彎路
8. 相容性規範
私有屬性的使用
正是由於瀏覽器廠商的不同,導致了一些樣式需要加字首才生效,下面的常見的瀏覽器核心和字首
瀏覽器 | 核心 | 字首 |
---|---|---|
Firefox | Gecko | -moz- |
Chrome | WebKit | -webkit- |
IE | Trident | -ms- |
Safari | WebKit | -webkit- |
Opera | Presto | -o- |
國內知名瀏覽器 | WebKit | -webkit- |
常見手機瀏覽器 | WebKit | -webkit- |
CSS3 瀏覽器私有字首在前,標準字首在後
.test { -webkit-border-radius: 10px; -moz-border-radius: 10px; -o-border-radius: 10px; -ms-border-radius: 10px; border-radius: 10px; }
備註:在 webpack 環境下,可以使用 postcss-loader 自動新增私有字首_
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901074/viewspace-2649129/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 學好WEB前端之HTML 規範Web前端HTML
- 學好WEB前端之javascript規範Web前端JavaScript
- 學好WEB前端之媒體檔案規範Web前端
- 前端規範之CSS規範前端CSS
- 前端規範之CSS規範(Stylelint)前端CSS
- web前端規範Web前端
- 『前端規範化』CSS命名規範化前端CSS
- 前端規範與思考(二)———css規範前端CSS
- 前端規範之HTML 規範前端HTML
- 前端規範之javascript規範前端JavaScript
- 前端規範之nodeJs 規範前端NodeJS
- (轉)豆瓣網前端開發規範之 【CSS】前端CSS
- WEB前端編碼規範Web前端
- web前端開發規範Web前端
- 前端規範之vue 專案規範前端Vue
- 前端規範之Git提交規範(Commitizen)前端GitMIT
- 前端規範之媒體檔案規範前端
- web前端開發規範總結Web前端
- Web前端開發規範手冊Web前端
- 好程式設計師web前端培訓分享HTMLCSS學習之CSS基礎程式設計師Web前端HTMLCSS
- 好程式設計師web前端培訓分享怎樣學好css?程式設計師Web前端CSS
- 前端工程程式碼規範(三)——CSS, SCSS前端CSS
- web前端介面切圖命名規範方法Web前端
- 好程式設計師Web前端分享前端CSS篇程式設計師Web前端CSS
- 好程式設計師web前端系列之CSS3-3D程式設計師Web前端CSSS33D
- 好程式設計師web前端系列之css3動畫程式設計師Web前端CSSS3動畫
- 好程式設計師web前端開發測驗之css部分程式設計師Web前端CSS
- Web前端好學嗎?學完之後能幹什麼?Web前端
- 好程式設計師web前端分享CSS基礎知識之position程式設計師Web前端CSS
- 好程式設計師web前端技術之CSS3過渡程式設計師Web前端CSSS3
- [規範] CSS BEMCSS
- 好程式設計師web前端分享CSS Bug、CSS Hack和Filter學習筆記程式設計師Web前端CSSFilter筆記
- 前端規範之Git工作流規範(Husky + Comminilint + Lint-staged)前端Git
- 好程式設計師web前端分享應該怎樣學好web前端?程式設計師Web前端
- 好程式設計師web前端分享CSS學習:HSLA顏色模式程式設計師Web前端CSS模式
- 好程式設計師web前端培訓分享之HTMLCSS學習筆記css3-多列程式設計師Web前端HTMLCSS筆記S3
- 好程式設計師web前端教程分享CSS技巧!程式設計師Web前端CSS
- 前端規範目的前端