剛進入前端這行,一直在奮斗中,小公司無人指導,只能慢慢摸索咯!
做什么事情都要有習慣!代碼也不例外。(估計很多人都忽略了吧!我也是其中一個0.0 )
寫代碼有好的習慣,可以避免許多意想不到的錯誤。很多人學習時都會忽略,直到把那些錯誤的習慣用到熟,改起來就困難了。
所以在寫代碼時你應該好好看看一些細節及規范,不需要一次就記住,通讀一遍有個印象,在實戰中遇到了就翻一翻,時間長了,就會了嘛。
現在開始整理(個人理解):
1.代碼為什么要有好的代碼習慣?
答案當然是方便查找錯誤,減少出錯的幾率。
2.html+css要注意的地方有哪些?(建議)
html部分:
1. 頁面聲明:
以前那么多標准,煩都煩死了,直到html5來了,我喜歡,簡單粗暴有內涵。
<!DOCTYPE HTML>
簡單吧,直接秒殺4.0,4.1....
2. 把css放到<head>中,避免用@import(因為使用了import之后就相當於把另外的CSS放在了標簽的底部)——然而我還沒有用到
3. 避免使用css表達式,css表達式只有在IE中有用,他的執行的次數隨着頁面的縮小、放大和滾動等會有出現變化。
ps:想到了一個相關的知識,用表達式解決的。
問題:去掉點擊a標簽后產生的虛線框。
解決辦法:
body a{outline:none;blr:expression(this.onFocus=this.blur());}
兼容大部分主流瀏覽器。 詳細后面會介紹
4. 語言屬性聲明。
<html lang="zh-CN">
5. html標簽使用小寫。(大寫不是不能用,但是不方便閱讀。經常遇到熟悉的單詞大寫就不認識了...)
6. 使用utf-8編碼。
html中: <meta charset="utf-8">
css中: @charset "utf-8";
7. IE兼容模式
完美解決IE兼容模式代碼: <meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE">
8. 用空格代替table制表符。(曾近在日包的學長說過,日本審核很嚴格,每行都會去看你是不是按了4下空格鍵,天朝╮(╯▽╰)╭)。
9. 在html中已經聲明 自閉合元素(單閉合標簽)后的斜杠可以省略,既然可以省略,省略更好,省字節。(雙閉合標簽千萬別省,不然錯那都不知道了,經常會因為這些小細節,找一下午,中槍有木有?)
10. 屬性定義最好用雙引號。(這個看着來)。
11. html5中提到js,css文件引入不需要定義type屬性。(能省就省)。
12. 布爾類型聲明不賦值,表單常用到。
如:<input type="checkbox" value="1" checked> 中的checked
13. 避免用javascript生成標簽(不易查找、編輯且降低性能)。
css部分:
一行代碼可以看出許多細節:
/* Bad CSS */ .selector, .selector-secondary, .selector[type=text] { padding:15px; margin:0px 0px 15px; background-color:rgba(0, 0, 0, 0.5); box-shadow:0px 1px 2px #CCC,inset 0 1px 0 #FFFFFF } /* Good CSS */ .selector, .selector-secondary, .selector[type="text"] { padding: 15px; margin-bottom: 15px; background-color: rgba(0,0,0,.5); box-shadow: 0 1px 2px #ccc, inset 0 1px 0 #fff; }
上部分代碼時不建議的寫法,下部分的代碼時建議的寫法。
1. 選擇器組合時,將單獨的選擇器單獨放一行。
2. 聲明塊左括號前應該空一格。
3. 聲明塊右括號應該單獨占一行。
4. 聲明語句 :的后面空一格
5. 多個屬性值逗號后面空一格
6. 最后一行屬性不要忘記 ; (這個地方我已經中過很多次了,都是在修改時(維護)容易出錯。)
7. 零值后面的單位px和0值的起始值省略掉。 如0px=>0 , 0.5=>.5
8.部分重復顏色值縮寫。如#ffffff=>#fff (注意:#00ffac 、#eaeaea 不能亂縮寫成#0fac,#eae。別搞錯了).
其余要注意的地方:
9. css聲明順序
.declaration-order { /* Positioning */ position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 100; /* Box-model */ display: block; float: right; width: 100px; height: 100px; /* Typography */ font: normal 13px "Helvetica Neue", sans-serif; line-height: 1.5; color: #333; text-align: center; /* Visual */ background-color: #f5f5f5; border: 1px solid #e5e5e5; border-radius: 3px; /* Misc */ opacity: 1; }
——>脫離文本流屬性優先(依次position 、float、display)
——>盒模型屬性(尺寸屬性)
(width、height、margin、padding、border)
——>其他屬性
10. 單行屬性規則:
一行屬性單獨一行,多行屬性分行書寫
如:
.span1 { width:150px; }
.span2 {
width: 150px;
height: 150px;
}
經常檢查錯誤時會遇到多行寫到一起,報第50行出錯,多行時就會不明顯。
11. 不要使用 “標簽+類名”、“標簽+ID” 結構,如 a.str ......
可以避免修改頁面元素的類型二導致樣式失效,如 我把上述a標簽改成span標簽。結果樣式失效了╮(╯▽╰)╭。
12. 不要使用實體引用
比如“>”盡量寫成">" (這個==!例子忘記了,不過要小心。)
13.盡量避免后代選擇器 也就是“>”。比較耗時 (別人說的...)
好了列了這么多估計都暈了.... 多看看不需要記,寫代碼留點心,時間長久練成習慣了。
還有許多細節,希望補充...一起學習一起進步
