前端開發規範(二、CSS篇)

2020-12-16 hojun

CSS

代碼組織

以組件為單位組織代碼段;制定一致的注釋規範;組件塊和子組件塊以及聲明塊之間使用一空行分隔,子組件塊之間三空行分隔;如果使用了多個 CSS 文件,將其按照組件而非頁面的形式分拆,因為頁面會被重組,而組件只會被移動;

良好的注釋是非常重要的。請留出時間來描述組件(component)的工作方式、局限性和構建它們的方法。不要讓你的團隊其它成員 來猜測一段不通用或不明顯的代碼的目的。

提示:通過配置編輯器,可以提供快捷鍵來輸出一致認可的注釋模式。

Class 和 ID

使用語義化、通用的命名方式;使用連字符 - 作為 ID、Class 名稱界定符,不要駝峰命名法和下劃線;避免選擇器嵌套層級過多,儘量少於 3 級;避免選擇器和 Class、ID 疊加使用;

出於性能考量,在沒有必要的情況下避免元素選擇器疊加 Class、ID 使用。

元素選擇器和 ID、Class 混合使用也違反關注分離原則。如果HTML標籤修改了,就要再去修改 CSS 代碼,不利於後期維護。

聲明順序

相關屬性應為一組,推薦的樣式編寫順序

PositioningBox modelTypographicVisual

由於定位(positioning)可以從正常的文檔流中移除元素,並且還能覆蓋盒模型(box model)相關的樣式,因此排在首位。盒模型決定了組件的尺寸和位置,因此排在第二位。

其他屬性只是影響組件的內部(inside)或者是不影響前兩組屬性,因此排在後面。

引號使用

url() 、屬性選擇符、屬性值使用雙引號。

媒體查詢(Media query)的位置

將媒體查詢放在儘可能相關規則的附近。不要將他們打包放在一個單一樣式文件中或者放在文檔底部。如果你把他們分開了,將來只會被大家遺忘。

不要使用 @import

與 <link> 相比,@import 要慢很多,不光增加額外的請求數,還會導致不可預料的問題。

替代辦法:

使用多個 元素;通過 Sass 或 Less 類似的 CSS 預處理器將多個 CSS 文件編譯為一個文件;其他 CSS 文件合併工具;

連結的樣式順序:

a:link -> a:visited -> a:hover -> a:active(LoVeHAte)

選擇字體

在 Web 上應用字體,是一門技術,同時也是一門藝術. 由於計算機歷史發展的原因,西文有大量優秀的字體可供選擇,可對於中文來說就是一項挑戰. 主流作業系統提供的本地中文字體極少,另一方面中文字體組成的特殊性,其體積過於龐大,無法良好地使用 webfont. 所以編寫健壯的 font-family 是一件需要深思熟慮的事情.

以下列出各種平臺下合適的中西文字體:

桌面端 Mac, Windows, Linux 上適合網頁顯示的優秀中文字體

移動端 iOS, Android 上適合網頁顯示的優秀中文字體

主流作業系統上適合網頁顯示的優秀西文字體

拋開宋/明體長時間作為系統默認字體,所產生的審美疲勞,宋/明體相比黑體是更合適作為內文字體. 大多的宋/明體針對內文設計,橫細直粗,造型方正,筆畫在小字號的情況下,不會糊在一起,給人一種素雅的感覺. 而黑體筆畫粗壯有力,引人注目,更適合作為標題使用.

但大部分人已經習慣在網頁上閱讀黑體,以及宋/明體在字重過大的情況下,顯示效果還是不太理想. 所以內文默認提供黑體,可選擇性的切換宋/明體.

垂直的旋律

音階

Robert Bringhurst 在《The Elements of Typographic Style》談到字號大小之間的比例,形似於音樂中的音階. 作曲時以某個特定的音階為基礎,才會形成特定的風格. 字號的排版同樣如此,有規律的字號變化,才會形成特定的排版風格.

將內文以 16px 作為字號

標題 h1, h2, h3, h4, h5, h6 以 16px 作為字號基礎,按同比例的遞減

節拍

此外,Robert Bringhurst 還談到版式中的空間就像音樂中的時間(Space in typography is like time in music),言下之意,把握間距(行高)就如把握節拍. 節拍是對時間的分割,倘若搶拍便失去節奏. 文字的間距(行高)亦是對空間的分割,不一致間距(行高)比例,便會失去「垂直的旋律」.

將內文以 1.7em 作為行高

標題 h1, h2, h3, h4, h5, h6 以 1.5em 作為行高.

段首縮進 VS 段落間距

段落分隔對於中文排版而言也是特別重要,主要以「段首縮進」和「段落間距」兩種方式表現,它們的唯一目的就是將段落分隔.

「段首縮進」主要用於印刷書籍,節省縱向空間,保持文本連貫,但一般在網頁上的閱讀速度較快,會使文字過於密集產生壓力. 相反「段落間距」主要用於網頁,充分利用網頁無限的縱向空間,保障文本塊的整潔,同時給予長篇閱讀休息的間隙. 所以一般網頁排版,會考慮選擇「段落間距」,可以設置以下屬性實現「段落間距」.

對齊

漢字的方塊性質構成了漢字獨有的藝術美感,使其具有工整的特點,從而顯現出中文排版的重要原則:所有元素都是正方體. 但從二十世紀開始使用標點後,以及中西文混排的情況越來越多,為了保證「禁則處理」和「齊頭尾」實現,可能需要在不同條件下進行適當的斷詞處理.

「禁則」是來自日語的排版術語,主要指的就是禁止一些標點等字符出現在行首或行尾的規則,大致相當於漢語常說的「避頭尾」.

可以設置以下屬性實現「齊頭尾」,其中inter-ideographic意思是「通過調整單詞和字符之間的留白來實現兩端對齊」.

但這樣的「齊頭尾」並不是完美的,主要由於技術遺留原因,在 Windows 和 Linux 上的 webkit 瀏覽器並沒有實現 inter-ideographic 導致中西文混排的時候,容易出現過度拉伸字間距的情況。

為此有一種不優雅的解決方案,在極易出現字間距拉伸的小尺寸屏幕(手機)上使用「斷詞處理」,避免字間距拉伸,可是這樣也帶來「無視避頭尾規則」和「西文單詞斷詞」的壞毛病. 這是用一種不優雅解決另一種不優雅,按需抉擇吧.

可以設置以下屬性進行「斷詞處理」

相關焦點

  • 前端開發必備的CSS命名規範與常用CSS代碼集合
    編輯 | web前端開發來源 | web前端開發我們在用html+css進行網頁的排版布局時,
  • Web前端開發規範手冊
    規範目的  為提高團隊協作效率, 便於後臺人員添加功能及前端後期優化維護,
  • 前端html,css基本知識
    上一篇講到過html和css相當於人的身體和衣服的關係,html的歷史發展百度上可以搜到,這裡簡單了解一下,1989年開發出了世界上第一個Web伺服器與Web客戶端,並將這項發明取名為world wide web,也就是我們現在所說的WWW全球資訊網。HTML也因此誕生。
  • Niushop前端CSS及JavaScript編碼規範
    這一期,小編與大家分享Niushop開源商城系統前端代碼CSS和JavaScript編碼規範。 字體圖標 在使用圖片時,優先使用字體圖標,減少代碼體積,運行效率 字體圖標統一在iconfont.css中維護
  • 11 - 前端開發 - CSS 選擇器
    DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>CSS 選擇器</title> <style type="text/css"> li{color: red}</style></head>
  • 前端技術及開發模式的演進
    先聲明,本篇不會講帶有年代性的前端發展史,不講故事,想了解的讀者可以去查閱一些其他的資料和文章,本篇僅僅從技術發展角度結合案例分析,說明前端技術的發展和開發模式的演進變化。本篇內容重點說明PC端技術,移動端、桌面端本篇不涉及,防止讀者看到後面有疑惑,這裡強調一下。
  • 合格前端開發該了解的css知識
    css在現階段的前端面試中佔得比重確實低,有些公司甚至都只是一筆帶過。
  • 自學web前端怎麼學?web前端學習路線css屬性
    自學web前端技術,如果才能找到一份web前端的工作。按照現在的招聘標準來看,無論你去哪個公司面試,你只需要滿足他們公司的需求就可以。找到一份web前端工作需要掌握的內容如下:首先是html,css這些簡單的靜態布局這是最基本的學習內容,不在多說。
  • 【乾貨】各大網際網路公司前端筆試面試題–HTML,CSS篇
    此標籤可告知瀏覽器文檔使用哪種 HTML 或 XHTML 規範。(重點:告訴瀏覽器按照何種規範解析頁面)3.Quirks模式是什麼?它和Standards模式有什麼區別答案:從IE6開始,引入了Standards模式,標準模式中,瀏覽器嘗試給符合標準的文檔在規範上的正確處理達到在指定瀏覽器中的程度。
  • 萬人血書的前端開發自學資料,俺肝出來了!
    寫在前面之前就有不少小夥伴提需求說:以後想從事前端開發崗,能不能整理一波前端開發的自學資料+書籍,正好得空,這個事情還是先安排了吧!正好不久之前,咱們這裡也詳細梳理過「前端開發的學習路線和知識點」,具體可參看這篇文章:《前端開發學習路線+知識點梳理》之前繪製的詳細學習思維導圖,這裡也再貼一下:本篇我們就對照著這個知識腦圖,再來梳理一下學習時具體可用的
  • 高級前端開發工程師總結:8個不可錯過的CSS開發工具
    CSS是Web開發的基礎之一。但是,我們中的一些人卻感到非常困惑。這是因為我們沒有遵循適當的學習流程,因此我們很難理解CSS的行為。本文旨在通過兩種方式為你提供CSS的學習幫助:藉助專用工具對CSS進行編碼以及通過一些交互環境學習CSS,下面和千鋒廣州小編一起來看看吧!
  • web前端開發面試題一之(html,css)
    前端還是一個年輕的行業,新的行業標準, 框架, 庫都不斷在更新和新增,正如赫門在2015深JS大會上的《前端服務化之路》主題演講中說的一句話:「每18至24個月,前端都會難一倍」,這些變化使前端的能力更加豐富、創造的應用也會更加完美。所以關注各種前端技術,跟上快速變化的節奏,也是身為一個前端程式設計師必備的技能之一。Doctype作用?標準模式與兼容模式各有什麼區別?
  • 超全整理前端開發面試題——CSS篇(2016年)
    css      .bb{          background-color:#f1ee18;/*所有識別*/          .background-color:#00deff\9; /*IE6、7、8識別*/          +background-color:#a200ff;/*IE6、7識別*/          _background-color:#1e0bd1;/*IE6識別*/
  • 《前端開發》第一節:10天教你學會用Html和CSS寫簡單網頁
    最近粉絲留言很多,有些粉絲想學習編程,我是08年入這個行業,在前端開發和後端開發都有多年相關經驗。一直想分享我的學習心得給大家,感謝有百家號這樣好的平臺。從今天開始我計劃做一些入門型基礎的教程給大家學習。希望給喜歡的人打開編程的大門。
  • 提高CSS開發能力的技巧集
    來自:FedFun - CSDN博客連結:http://blog.csdn.net/whqet/article/details/48997389原文:https://github.com/AllThingsSmitty/css-protips
  • 前端開發工程師的工作內容是什麼?
    隨著Internet的發展和多個終端的普及,前端開發工程師逐漸受到歡迎,但是前端開發工程師的具體工作內容是什麼?大多數人對此知之甚少,前端開發工程師是在近幾年才開始受到各大企業的重視,那麼,前端開發工程師到底是做什麼的?下面編輯帶大家認識下!一.什麼是HTML5前端開發?
  • 前端開發相關速查表Cheatsheets整理集合
    對於前端開發工程師來說需要花大量的時間去閱讀我們所使用的語言或相關類庫、框架的 API 文檔。當自己寫出函式庫時也會為自己的函式庫加上適當的文檔說明,這是一個避免不了的過程。畢竟前端開發工程師必須把腦力花在邏輯思考上,而不是記憶這些 API 文檔。
  • 既然寫CSS很容易,那為什麼大家還是把CSS寫的那麼爛呢?
    在你開始閱讀這篇文章之前,(一定要做好心理準備),因為我估計90%的前端工程師在看完之後心裡都會很不爽。
  • ​if 我是前端團隊 Leader,怎麼制定前端協作規範?
    如文章標題,前端協作規範並不單單指『編碼規範』,這個規範涉及到前端開發活動的方方面面,例如代碼庫的管理、前後端協作、代碼規範、兼容性規範;不僅僅是前端團隊內部需要協作,一個完整的軟體生命周期內,我們需要和產品/設計、後端(或者原生客戶端團隊)、測試進行協作, 我們需要覆蓋這些內容.
  • 17個CSS知識點整理
    Title :為該屬性提供信息12、描述css reset的作用和用途。css reset的作用:Reset重置瀏覽器的css默認屬性;用途:瀏覽器的品種不同,樣式不同,然後重置,讓他們統一;13、解釋css sprites,如何使用。