編寫HTML和CSS幾點心得

HTML代碼優化

  • 表單域用fieldset包起來,並用legend說明其用途(注意在css初始化的時候把fieldset的border設爲0,把legend的display設爲none)css

  • 每一個input標籤要用label來標註文本,併爲每一個input設id,用for關聯。
  • 爲了提升搜索引擎友好性,要減小table標籤使用。可是對於呈現二維數據,table倒是首選,固然咱們的優化方法是表格的標題用<caption></caption>包裹,表頭用<thead></thead>,主體用<tbody></tbody>,尾部用<tfoot></tfoot>,表頭單元格用<th>,普通單元格用<td>
  • 語義化標籤注意的問題
  1. 爲了提升搜索引擎的友好性,儘量少地用無語意的div和span,對於強調或特殊的格式能夠用<strong>、<em>加css
  2. 在語義不明顯的地方,儘可能用<p>二不用<div>
  3. 不要使用純樣式的標籤如<b><font><u>,改用css

CSS代碼優化

  • 合理的站點css框架:base層:原子化、初始化;   common層:公用樣式; page層:私有樣式。
  • 推薦一個優秀的base層:
    /*css reset*/
    body,div,dl.dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0;padding:0;}
    table{border-collapse: collapse;border-spacing: 0;}
    fieldset,img{border: 0;}
    address,caption,city,code,dfn,em,strong,th,var{font-style: normal;font-weight: normal;}
    ol,ul{list-style: none;}
    caption,th{text-align: left;}
    h1,h2,h3,h4,h5,h6{font-size: 100%;font-weight:normal;}
    q:before,q:after{content: '';}
    abbr,acronym{border: 0;}
    
    /*文字排版*/
    .f12{font-size: 12px;}
    .f13{font-size: 13px;}
    .f14{font-size: 14px;}
    .f16{font-size: 16px;}
    .f20{font-size: 20px;}
    .fb{font-weight: bold;}
    .fn{font-weight: normal;}
    .t2{text-indent: 2em;}
    .lh150{line-height: 150%;}
    .lh180{line-height: 180%;}
    .lh200{line-height: 200%;}
    .unl{text-decoration: underline;}
    .no_unl{text-decoration: none;}
    
    /*定位*/
    .t1{text-align: left;}
    .tc{text-align: center;}
    .tr{text-align: right;}
    .bc{margin-left: auto;margin-right: auto;}
    .fl{float: left;display: inline;}
    .fr{float: right;display: inline;}
    .cb{clear: both;}
    .cl{clear: left;}
    .cr{clear: right;}
    .clearfix:after{content: '.';display: block;height: 0;clear: both;visibility: hidden;}
    .clearfix{display: inline-block;}* html
    .clearfix{height: 1%;}
    .clearfix{display: block;}
    .vm{vertical-align: middle;}
    .pr{position: relative;}
    .pa{position: absolute;}
    .abs-right{position: absolute;right: 0}
    .zoom{zoom:1;}
    .hidden{visibility: hidden;}
    .none{display: none;}
    
    /*長度高度*/
    .w10{width:10px;}
    .w20{width:20px;}
    .w30{width:30px;}
    .w40{width:40px;}
    .w50{width:50px;}
    .w60{width:60px;}
    .w70{width:70px;}
    .w80{width:80px;}
    .w90{width:90px;}
    .w100{width:100px;}
    .w200{width:200px;}
    .w250{width:250xp;}
    .w300{width:300px;}
    .w400{width:400px;}
    .w500{width:500px;}
    .w600{width:600px;}
    .w700{width:700px;}
    .w800{width:800px;}
    .w{width:100%;}
    .h50{height:50px;}
    .h80{height:80px;}
    .h100{height:100px;}
    .h200{height:200px;}
    .h{height:100%;}
    
    /*邊距*/
    .m10{margin:10px;}
    .m15{margin:15px;}
    .m30{margin:30px;}
    .mt5{margin-top:5px;}
    .mt15{margin-top:15px;}
    .mt20{margin-top:20px;}
    .mt30{margin-top:30px;}
    .mt50{margin-top:50px;}
    .mt100{margin-top:100px;}
    .mb5{margin-bottom::5px;}
    .mb15{margin-bottom:15px;}
    .mb20{margin-bottom:20px;}
    .mb30{margin-bottom:30px;}
    .mb50{margin-bottom:50px;}
    .mb100{margin-bottom:100px;}
    .ml5{margin-left:5px;}
    .ml15{margin-left:15px;}
    .ml20{margin-left:20px;}
    .ml30{margin-left:30px;}
    .ml50{margin-left:50px;}
    .ml100{margin-left:100px;}
    .mr5{margin-right:5px;}
    .mr15{margin-right:15px;}
    .mr20{margin-right:20px;}
    .mr30{margin-right:30px;}
    .mr50{margin-right:50px;}
    .mr100{margin-right:100px;}
    .p10{padding:10px;}
    .p15{padding:15px;}
    .p30{padding:30px;}
    .pt5{padding-top:5px;}
    .pt10{padding-top:10px;}
    .pt15{padding-top:15px;}
    .pt20{padding-top:20px;}
    .pt30{padding-top:30px;}
    .pt50{padding-top:50px;}
    .pb5{padding-bottom:5px;}
    .pb10{padding-bottom:10px;}
    .pb15{padding-bottom:15px;}
    .pb20{padding-bottom:20px;}
    .pb30{padding-bottom:30px;}
    .pb50{padding-bottom:50px;}
    .pl5{padding-left:5px;}
    .pl10{padding-left:10px;}
    .pl15{padding-left:15px;}
    .pl20{padding-left:20px;}
    .pl30{padding-left:30px;}
    .pl50{padding-left:50px;}
    .pr5{padding-right:5px;}
    .pr10{padding-right:10px;}
    .pr15{padding-right:15px;}
    .pr20{padding-right:20px;}
    .pr30{padding-right:30px;}
    .pr50{padding-right:50px;}
    

      

  • 推薦使用類選擇器,少用甚至不用id選擇器(頁面結構和樣式都用類選擇器,對於須要添加js功能的標籤才用id選擇器)
  • 對於類選擇器:小項目。頁面少的能夠用「繼承」,當對於大項目,多頁面的網站,爲了防止css代碼爆炸式增加,推薦用「組合」。(-_-若是不懂什麼是「組合」、「繼承」的建議Google一下,筆者這裏不作解釋)
  •  選擇器的命名習慣:加前綴,筆者習慣的風格是:類樣式c_main_news,id樣式j_main_news。不要吝嗇字符,好的命名方式有利於提升代碼的可讀性和維護性。
  • 上下margin只用一個,如只用margin-top來佈局,就不要忽然引入一個margin-bottom,由於不一樣的瀏覽器會重疊。
  • 區分選擇器的優先級,注意樣式覆蓋,這也是不用id選擇器而用類選擇器來定義樣式的一個緣由,id選擇器的優先級過高,樣式覆蓋和重用很麻煩。爲了易修改和維護,推薦使用類選擇器。
相關文章
相關標籤/搜索