1. 程式人生 > >原來你一直寫錯了?!實力分享一波 CSS 使用的書寫規範順序與偏門又實用的樣式...

原來你一直寫錯了?!實力分享一波 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

  1. To apply platform specific styling to an element that doesn’t have it by default

  2. 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;

等等  還有好多 ,有空再補吧