原來你一直寫錯了?!實力分享一波 CSS 使用的書寫規範順序與偏門又實用的樣式...
我們在埋頭寫程式碼的時候,還要學會收集整理一些常用的程式碼小技巧,以便在工作時候,可以及時調取,提高工作效率。
今天,我把之前收集整理的一些CSS程式碼小技巧分享出來,供你參考學習,希望對你有幫助。
一、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等)
二、CSS書寫規範
1、使用CSS縮寫屬性
CSS有些屬性是可以縮寫的,比如padding,margin,font等等,這樣精簡程式碼同時又能提高使用者的閱讀體驗。
2、去掉小數點前的“0”
3、簡寫命名
很多使用者都喜歡簡寫類名,但前提是要讓人看懂你的命名才能簡寫哦!
4、16進位制顏色程式碼縮寫
有些顏色程式碼是可以縮寫的,我們就儘量縮寫吧,提高使用者體驗為主。
5、連字元CSS選擇器命名規範
1.長名稱或片語可以使用中橫線來為選擇器命名。
2.不建議使用“_”下劃線來命名CSS選擇器,為什麼呢?
-
輸入的時候少按一個shift鍵;
-
瀏覽器相容問題 (比如使用_tips的選擇器命名,在IE6是無效的)
-
能良好區分JavaScript變數命名(JS變數命名是用“_”)
6、不要隨意使用Id
id在JS是唯一的,不能多次使用,而使用class類選擇器卻可以重複使用,另外id的優先順序優先與class,所以id應該按需使用,而不能濫用。
7、為選擇器新增狀態字首
有時候可以給選擇器新增一個表示狀態的字首,讓語義更明瞭,比如下圖是添加了“.is-”字首。
三、CSS命名的一些規範
1、常用的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
2、註釋的寫法:
/* Header */
內容區
/* End Header */
3、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、儘量不縮寫,除非一看就明白的單詞。
4、CSS樣式表文件命名
主要的 master.css
模組 module.css
基本共用 base.css
佈局、版面 layout.css
主題 themes.css
專欄 columns.css
文字 font.css
表單 forms.css
補丁 mend.css
列印 print.css
四、一些比較偏而實用的 CSS 樣式
(1)::-Webkit-Input-Placeholder
input 的 H5 placeholder 屬性,很好用,但不能直接改這個文字顏色,所以目前的解決方法就是用::input-placeholder屬性來改。
小Tips: 配合 opacity 屬性使用效果更佳哦!
::-webkit-input-placeholder { /* Chrome/Opera/Safari */ color: pink;}::-moz-placeholder { /* Firefox 19+ */ color: pink;}:-ms-input-placeholder { /* IE 10+ */ color: pink;}:-moz-placeholder { /* Firefox 18- */ color: pink;}
(2)@Impor 巢狀樣式表文件
使用它可以在樣式表再次內巢狀樣式表文件,比如一些元件 CSS可以使用,但不太推薦使用這個,因為載入時有可能會被漏掉。
@import url("reset.css");@import url("global.css"); @import url("font.css");
(3)Outline 當點選Input元素時顯示的當前狀態線(外發光)
這個狀態線是用來提示使用者當前狀態指示作用,但因為效果很美觀,建議去掉,或自己改個樣式
div { outline: none; //移動瀏覽器預設的狀態線 // outline: 5px dotted red; 也可以設定樣式}
(4)Contenteditable 設定Element是否可編輯
<p contenteditable="true">可編輯</p>
(5)Webkit-Playsinline
手機video 都可以在頁面中播放,而不是全屏播放了。
<video id="myvideo" src="test.mp4" webkit-playsinline="true"></video>
(6)Position: Absolute, 讓Margin有效的
設定left:0, right:0 就可以。原因是2邊都是0不存在邊距,element就可以得出距離,並居中。
div { position: absolute; left: 0; right: 0; margin: 0 auto;}
(7)使用 Clearfix 清楚浮動,解決父類高度崩塌
.clearfix {zoom: 1;}.clearfix:after { visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0; }
(8)User-Select 禁止使用者選中文字
div { user-select: none; /* Standard syntax */}
(9)清除手機Tap事件後Element 時候出現的一個高亮
*{ -webkit-tap-highlight-color: rgba(0,0,0,0);}
(10)::-Webkit-Scrollbar-Thumb
可以修改谷歌的滾動條樣式,safari好像也可以
(11)-Webkit-Appearance:none
-
To apply platform specific styling to an element that doesn’t have it by default
-
To remove platform specific styling to an element that does have it by default
移除瀏覽器預設的樣式,比如chrome的input預設樣式
input, button, textarea, select {*font-size: 100%;-webkit-appearance:none;}
(12)CSS開啟硬體加速
-webkit-transform: translateZ(0);
(13)使用CSS Transforms 或者 Animations時可能會有頁面閃爍的Bug
-webkit-backface-visibility: hidden;
(14)*-Webkit-Touch-Callout 禁止長按連結與圖片彈出選單
-webkit-touch-callout: none;
(15)Transform-Style: Preserve-3d 讓元素支援3d
div { -webkit-transform: rotateY(60deg); /* Chrome, Safari, Opera */ -webkit-transform-style: preserve-3d; /* Chrome, Safari, Opera */ transform: rotateY(60deg); transform-style: preserve-3d;}
(16)Perspective 透視
這個屬性的存在決定你看到的元素是2d還是3d。一般設定在包裹元素的父類上。
.div-box {perspective: 400px; }
(17)Css實現不換行、自動換行、強制換行
//不換行white-space:nowrap;//自動換行word-wrap: break-word; word-break: normal; //強制換行word-break:break-all;
(18)Box-Sizing 讓元素的寬度、高度包含Border和Padding
{ box-sizing: border-box;}
(19)Calc() Function, 計算屬性值
https://www.w3schools.com/cssref/func_calc.asp
div { width: calc(100% - 100px);}
上面的例子就是讓寬度為100%減去100px的值,專案中很適用,要IE9以上相容。
(20)Css3 Linear-Gradient 線性漸變
預設開始在top, 也可以自定義方向。
div { linear-gradient(red, yellow)}background: linear-gradient(direction, color-stop1, color-stop2, ...);
(21)常用的選擇器 :Nth-Child() Selector
以下程式碼是選擇父類下第一個子節點,p元素,建議學習這個樣式屬性的使用,很實用的。
p:nth-child(1) { ...}
今天,就介紹到這裡,如果你有好的 CSS 程式碼,歡迎在留言處提交給我們,我們一起收錄進來!
以上來自前端媛猿公眾號;
連結 https://mp.weixin.qq.com/s/8rjAiFVO3v7lNE6uNYYoZQ
---------分割線----------
下面是補充:
1. -webkit-appearance:none;
2.user-select:none;
等等 還有好多 ,有空再補吧