如何規范 CSS 的命名和書寫

我開始學前端的時候也是對于規范問題頭疼,后來看了網易的NEC規范,驚呼牛逼

NEC : 更好的CSS樣式解決方案

?

只遵循橫向順序即可,先顯示定位布局類屬性,后盒模型等自身屬性,最后是文本類及修飾類屬性。

顯示屬性自身屬性文本屬性和其他修飾
?displaywidthfont
?visibilityheighttext-align
?positionmargintext-decoration
?floatpaddingvertical-align
?clearborderwhite-space
?list-styleoverflowcolor
?topmin-widthbackground

?

?

?

?

?

?

?

1
.m-box{position:relative;width:600px;margin:0?auto?10px;text-align:center;color:#000;}

如果屬性間存在關聯性,則不要隔開寫。

1
2
/* 這里的height和line-height有關聯性 */
.m-box{position:relative;height:20px;line-height:20px;padding:5px;color:#000;}

私有在前,標準在后

先寫帶有瀏覽器私有標志的,后寫W3C標準的。

1
.m-box{-webkit-box-shadow:0 0 0?#000;-moz-box-shadow:0 0 0?#000;box-shadow:0 0 0?#000;

?

作者:詞暉 鏈接:https://www.zhihu.com/question/19586885/answer/48933504 來源:知乎

CSS書寫順序

  1.位置屬性(position, top, right, z-index, display, float等)

  2.大小(width, height, padding, margin)

  3.文字系列(font, line-height, letter-spacing, color- text-align等)

  4.背景(background, border等)

  5.其他(animation, transition等)

<img src="https://pic4.zhimg.com/50/5a67fa4dab92c018abfd97e4ab286ac9_hd.jpg" data-rawwidth="500" data-rawheight="250" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic4.zhimg.com/5a67fa4dab92c018abfd97e4ab286ac9_r.jpg">

CSS書寫規范使用CSS縮寫屬性

  CSS有些屬性是可以縮寫的,比如padding,margin,font等等,這樣精簡代碼同時又能提高用戶的閱讀體驗。

<img src="https://pic3.zhimg.com/50/2166c1fb168908a5858998eab2d309aa_hd.jpg" data-rawwidth="500" data-rawheight="250" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic3.zhimg.com/2166c1fb168908a5858998eab2d309aa_r.jpg">

  去掉小數點前的“0”

<img src="https://pic2.zhimg.com/50/ea65b1c1c00c792866a670e9d66161a8_hd.jpg" data-rawwidth="500" data-rawheight="250" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic2.zhimg.com/ea65b1c1c00c792866a670e9d66161a8_r.jpg">

  簡寫命名

  很多用戶都喜歡簡寫類名,但前提是要讓人看懂你的命名才能簡寫哦!

<img src="https://pic3.zhimg.com/50/53ddaefb44a6a8ce5b54de9f15466fca_hd.jpg" data-rawwidth="500" data-rawheight="250" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic3.zhimg.com/53ddaefb44a6a8ce5b54de9f15466fca_r.jpg">

  16進制顏色代碼縮寫

  有些顏色代碼是可以縮寫的,我們就盡量縮寫吧,提高用戶體驗為主。

<img src="https://pic4.zhimg.com/50/46bf23e08a7195ec7091217bb5c667d6_hd.jpg" data-rawwidth="500" data-rawheight="250" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic4.zhimg.com/46bf23e08a7195ec7091217bb5c667d6_r.jpg">

  連字符CSS選擇器命名規范

  1.長名稱或詞組可以使用中橫線來為選擇器命名。

  2.不建議使用“_”下劃線來命名CSS選擇器,為什么呢?

  輸入的時候少按一個shift鍵;

  瀏覽器兼容問題 (比如使用_tips的選擇器命名,在IE6是無效的)

  能良好區分JavaScript變量命名(JS變量命名是用“_”)

<img src="https://pic2.zhimg.com/50/45dddce1b5295a7c09f2380900dce8d1_hd.jpg" data-rawwidth="500" data-rawheight="250" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic2.zhimg.com/45dddce1b5295a7c09f2380900dce8d1_r.jpg">

  不要隨意使用Id

  id在JS是唯一的,不能多次使用,而使用class類選擇器卻可以重復使用,另外id的優先級優先與class,所以id應該按需使用,而不能濫用。 

<img src="https://pic2.zhimg.com/50/951bee68367f559a1fd37db3d242e59f_hd.jpg" data-rawwidth="500" data-rawheight="250" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic2.zhimg.com/951bee68367f559a1fd37db3d242e59f_r.jpg">

  為選擇器添加狀態前綴

  有時候可以給選擇器添加一個表示狀態的前綴,讓語義更明了,比如下圖是添加了“.is-”前綴。

<img src="https://pic4.zhimg.com/50/d81807b01ec5d710debe3f0b4191ae2f_hd.jpg" data-rawwidth="500" data-rawheight="250" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic4.zhimg.com/d81807b01ec5d710debe3f0b4191ae2f_r.jpg">

  CSS命名規范(規則)常用的CSS命名規則

  頭:header

  內容:content/container

  尾:footer

  導航:nav

  側欄:sidebar

  欄目:column

  頁面外圍控制整體佈局寬度:wrapper

  左右中:left right center

  登錄條:loginbar

  標志:logo

  廣告:banner

  頁面主體:main

  熱點:hot

  新聞:news

  下載:download

  子導航:subnav

  菜單:menu

  子菜單:submenu

  搜索:search

  友情鏈接:friendlink

  頁腳:footer

  版權:copyright

  滾動:scroll

  內容:content

  標簽:tags

  文章列表:list

  提示信息:msg

  小技巧:tips

  欄目標題:title

  加入:joinus

  指南:guide

  服務:service

  注冊:regsiter

  狀態:status

  投票:vote

  合作伙伴:partner

注釋的寫法:

  /* Header */

  內容區

  /* End Header */

Id的命名:

  1)頁面結構

  容器: container

  頁頭:header

  內容:content/container

  頁面主體:main

  頁尾:footer

  導航:nav

  側欄:sidebar

  欄目:column

  頁面外圍控制整體佈局寬度:wrapper

  左右中:left right center

(2)導航

  導航:nav

  主導航:mainnav

  子導航:subnav

  頂導航:topnav

  邊導航:sidebar

  左導航:leftsidebar

  右導航:rightsidebar

  菜單:menu

  子菜單:submenu

  標題: title

  摘要: summary

(3)功能

  標志:logo

  廣告:banner

  登陸:login

  登錄條:loginbar

  注冊:register

  搜索:search

  功能區:shop

  標題:title

  加入:joinus

  狀態:status

  按鈕:btn

  滾動:scroll

  標籤頁:tab

  文章列表:list

  提示信息:msg

  當前的: current

  小技巧:tips

  圖標: icon

  注釋:note

  指南:guild

  服務:service

  熱點:hot

  新聞:news

  下載:download

  投票:vote

  合作伙伴:partner

  友情鏈接:link

  版權:copyright

注意事項::

  1.一律小寫;

  2.盡量用英文;

  3.不加中槓和下劃線;

  4.盡量不縮寫,除非一看就明白的單詞。

CSS樣式表文件命名

  主要的 master.css

  模塊 module.css

  基本共用 base.css

  布局、版面 layout.css

  主題 themes.css

  專欄 columns.css

  文字 font.css

  表單 forms.css

  補丁 mend.css

  打印 print.css

轉載于:https://www.cnblogs.com/rik28/p/8417911.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453511.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453511.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453511.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

app性能測試指標

性能測試在軟件的質量保證中起著重要的作用,它包括的測試內容豐富多樣。中國軟件評測中心將性能測試概括為三個方面:應用在客戶端性能的測試、應用在網絡上性能的測試和應用在服務器端性能的測試。通常情況下,三方面有效、合理的結合&#xf…

《學做程序經理》完整版

文/Joel Spolsky 譯/羅小平 指派一名優秀的程序經理,是團隊產出優秀軟件的重要前提之一。你的團隊里可能沒有這樣的人,其實絕大多數團隊都沒有。 Charles Simonyi,這位曾與MarthaStewart(譯者注:美國女富豪&#…

java工程mvn引用jar_maven 項目加載本地JAR

將jar安裝到本地的maven倉庫1.首先確定本地有maven環境。2.安裝本地jar模板:mvn install:install-file -Dfile -DgroupId -DartifactId -Dversion -Dpackaging示例:mvn install:install-file -DfileF:\jave-ffmpegjave-1.0.2.jar -DgroupIdffmpegjave -D…

compress()方法

boolean compress(Bitmap.CompressFormat format, int quality, OutputStream stream) 把位圖的壓縮信息寫入到一個指定的輸出流中。如果返回true,可以通過傳遞一個相應的輸出流到BitmapFactory.decodeStream()來重構該位圖。注意:并非所有的格式都直接支…

token的三點注意項

token的安全是極度重要的 1:token的唯一性, 它代表著來自某應用系統用戶的一次成功登錄。我們可以利用java util包工具直接生成一個32位唯一字符串來實現。 String token UUID.randomUUID().toString(); 同時,我們定義一個javabean&#xff…

0.1 js復習

1.1 JavaScript的用途 JavaScript用來制作web頁面交互效果,提升用戶體驗。 能夠制作的頁面效果:輪播圖,無限瀑布流,tab切換,定位地圖,表單驗證等。 web前端三層來說: 結構層 HTML 從語義的角度&…

優秀的軟件企業為何倒下?

最近不到一個月,就看到兩家著名公司——SUN公司和Borland公司相繼被收購,引起IT界不小的震動,讓人感慨萬分。在此之前有北電(Nortel)、摩托羅拉的衰退,再往前有 美國數字設備公司Digital(Digita…

python 列表的推導器和內置函數

# 列表的推導式# li []# for i in range(1,11):# li.append(i)# print(li)## lis [i for i in range(1,11)] #列表的推導式# print(lis)#[變量(加工后的變量) for 變量 i in 可迭代的數據類型】 列表的推導式# li2 []# for i in ran…

Android service 中的stub類

stub是為了方便client,service交互而生成出來的代碼。 AIDL(android 接口描述語言)是一個IDL語言,它可以生成一段代碼,可以使在一個android設備上運行的兩個進程使用內部通信進程進行交互。如果你需要在一個進程中(例如:在一個Activity中)訪…

kafka exporter v0.3.0 發布: Prometheus官方推薦,歡迎試用

2019獨角獸企業重金招聘Python工程師標準>>> 時隔1個半月,kakfa exporter v0.3.0于今日正式發布,歡迎大家試用。 項目地址 Github: https://github.com/danielqsj/kafka_exporter Docker Hub: https://hub.docker.com/r/danielqsj/kafka-expo…

java手動切換成獨立顯卡_JAVA設計模式之調停者模式

在閻宏博士的《JAVA與模式》一書中開頭是這樣描述調停者(Mediator)模式的:調停者模式是對象的行為模式。調停者模式包裝了一系列對象相互作用的方式,使得這些對象不必相互明顯引用。從而使它們可以較松散地耦合。當這些對象中的某些對象之間的相互作用發…

2018.2.8 php實現qq登陸接口

PHP實現QQ登錄的原理和實現過程 2018-02-08 學習與分享 PHP自學中心 第三方登錄,就是使用大家比較熟悉的比如QQ、微信、微博等第三方軟件登錄自己的網站,這可以免去注冊賬號、快速留住用戶的目的,免去了相對復雜的注冊流程。下邊就給大家講一…

關于積累的一點看法

這是vip那邊發表的一篇帖子,今天整理,發現可能有一點代表性,就再發在這里,供各位同學參考。 壇子里有人討論小公司要不要積累框架的問題,有感而發,寫了點自己的看法,一家之言,歡迎拍…

去除vue項目中的#及其ie9兼容性

一、如何去除vue項目中訪問地址的# vue2中在路由配置中添加mode(vue-cli創建的項目在src/router/index.js) 1 export default new Router({2 mode: history,3 routes: [4 {5 path: /,6 name: menu,7 component: menu,8 …

sendBroadcast與sendStickyBroadcast的區別

前提條件:此處我主要討論兩種廣播在代碼中動態注冊時的一些細節問題。 正常情況下,廣播通常都是執行一次注冊代碼,就會觸發各接收器接收一次,無論是在onCreate里注冊還是onResume里注冊:若在onCreate里注冊&#xff0…

java 線程池 初始大小_為什么tomcat的默認線程池大小如此之大? - java

我注意到默認的tomcat 7線程池大小似乎是200。但是普通的CPU似乎有16個內核。因此只能并行執行16個線程為什么tomcat使用那么多線程。參考方案多年以來,許多單核計算機問世,并且能夠以“偽并行”模式運行功能,也就是說,您可能有16…

Hadoop2.6.0完全分布式安裝

1、修改主機名稱 對master/slave1/slave2同時配置為Master/Slave1/Slave2 masterMaster:~$ sudo gedit /etc/hostname 上述3個虛機結點均需要進行以上步驟 2、填寫主機IP 對master/slave1/slave2同時配置 masterMaster:~$ sudo gedit /etc/hosts 192.168.48.128 master192.168.…

DEX加密效果分析

dex加密目的:保護安卓應用的Java源代碼,避免被惡意分析,技術被竊取準備工具:1、apktool :反編譯apk,提取smali代碼2、dex2jar :將dex轉化為jar文件3、jd-gui :查看jar文件&#xff0…

一些比特率值

比特率 比特率是指將數字聲音由模擬格式轉化成數字格式的采樣率,采樣率越高,還原后的音質就越好。 比特率值與現實音頻對照: 16KBPS電話音質 24KBPS增加電話音質、短波廣播、長波廣播、歐洲制式中波廣播40KBPS美國制式中波廣播56KBPS話…

java asynccontext,超時后的JavaEE 6 AsyncContext行為

What is the exact behavior of AsyncContext after it times out? Does it still run and does it return response using getResponse()?解決方案Java Servlet 3.0 Maintenance Release on page 34 reads:A call to this method - ServletRequest.startAsync(ServletReques…