CSS 綜合

常用的編碼規范

HTML部分

語法

  • 使用2個空格代替制表符;
  • 默認縮進2個空格;
  • 屬性定義全部使用雙引號""
  • 不在自閉和元素的尾部添加斜線<br>
  • 不省略可選的結束標簽。

文檔聲明

為每個HTML頁面添加標準HTML聲明:

<!DOCTYPE html>

語言屬性

為 html 根元素指定 lang 屬性,從而為文檔設置正確的語言。這將有助于語音合成工具確定其所應該采用的發音,有助于翻譯工具確定其翻譯時所應遵守的規則等。

<html lang="zh">

語言代碼表:https://www.sitepoint.com/iso-2-letter-language-codes/

IE 兼容模式

通知 IE 采用其所支持的最新的模式。

<meta http-equiv="X-UA-Compatible" content="IE=Edge">

字符編碼

直接聲明字符編碼,確保瀏覽器快速識別頁面內容渲染方式。

<meta charset="UTF-8">

引入 CSS 和 JavaScript 文件

在引入 CSS 和 JavaScript 文件時一般不需要指定 type 屬性,因為 text/csstext/javascript 分別是它們的默認值。

<!-- External CSS -->
<link rel="stylesheet" href="code-guide.css">

<!-- In-document CSS -->
<style>
  /* ... */
</style>

<!-- JavaScript -->
<script src="code-guide.js"></script>

屬性順序

HTML 屬性應當按照以下給出的順序依次排列,確保代碼的易讀性。

  • class
  • id, name
  • data-*
  • src, for, type, href, value
  • title, alt
  • role, aria-*

布爾(boolean)型屬性

布爾型屬性可以在聲明時不賦值。XHTML 規范要求為其賦值,但是 HTML5 規范不需要。

減少標簽的數量

編寫 HTML 代碼時,盡量避免多余的父元素。很多時候,這需要迭代和重構來實現。

<!-- Not so great -->
<span class="avatar">
  ![](...)
</span>

<!-- Better -->
![](...)

JavaScript 生成的標簽

通過 JavaScript 生成的標簽讓內容變得不易查找、編輯,并且降低性能。能避免時盡量避免。

參考信息:http://codeguide.bootcss.com/#css-organization

CSS部分

語法

  • 使用2個空格代替制表符;
  • 選擇器分組時,每個選擇器單獨占一行;
  • 每個聲明塊的左花括號{前添加一個空格;
  • 每個聲明塊的右花括號}獨占一行;
  • 每條聲明語句的分號`:``后插入一個空格;
  • 每條聲明獨占一行;
  • 所有聲明語句都應當以分號結尾;
  • 對于以逗號分隔的屬性值,每個逗號后面都應該插入一個空格(例如,box-shadow);
  • 不要在 rgb()rgba()hsl()hsla()rect() 值的內部的逗號后面插入空格;
  • 對于屬性值或顏色參數,省略小于 1 的小數前面的 0 (例如,.5 代替 0.5-.5px 代替 -0.5px);
  • 十六進制的值全部小寫;
  • 十六進制盡量使用簡寫;
  • 屬性選擇器中的屬性添加雙引號"",`input[type="text"];
  • 屬性值為0,去除單位。

聲明順序

相關的屬性聲明應當歸為一組,并按照下面的順序排列:

  1. Positioning
  2. Box model
  3. Typographic
  4. Visual

不要使用 @import

<link> 標簽相比,@import 指令要慢很多,不光增加了額外的請求次數,還會導致不可預料的問題。替代辦法有以下幾種:

  • 使用多個 <link> 元素
  • 通過 Sass 或 Less 類似的 CSS 預處理器將多個 CSS 文件編譯為一個文件
  • 通過 Rails、Jekyll 或其他系統中提供過 CSS 文件合并功能

媒體查詢(Media query)的位置

將媒體查詢放在盡可能相關規則的附近。不要將他們打包放在一個單一樣式文件中或者放在文檔底部。

帶前綴的屬性

當使用特定廠商的帶有前綴的屬性時,通過縮進的方式,讓每個屬性的值在垂直方向對齊,這樣便于多行編輯。

單行規則聲明

對于只包含一條聲明的樣式,為了易讀性和便于快速編輯,建議將語句放在同一行。對于帶有多條聲明的樣式,還是應當將聲明分為多行。

參考信息:http://codeguide.bootcss.com/#css-organization

命名技巧

語義化

  1. 語義化標簽優先
  2. 基于功能命名、基于內容命名、基于表現命名
  3. 簡略、明了、無后患

命名規則

  1. 所有命名都使用英文小寫
  2. 命名用引號包裹
  3. 用中橫線連接
  4. 命名體現功能,不涉及表現樣式(顏色、字體、邊框、背景等)

垂直居中的幾種實現方式

padding垂直居中

    <div class="content">
      <div class="box"></div>
    </div>
    .content{
      width: 300px;
      padding: 40px 0;
      background-color: #FFAB40;
    }
    .box{
      width: 100px;
      height: 100px;
      margin: 0 auto;
      background-color: white;
    }

顯示效果:

padding center

padding方法實現垂直居中的前提的父元素盡量不設置高度,設置上下padding值,子元素的高度隨內容的變化而變化。

絕對定位垂直居中

    <div class="content">
      <div class="header">header</div>
      <div class="side"></div>
    </div>
    .content{
      position: absolute;
      left: 50%;
      top: 50%;
      width: 400px;
      height: 300px;

      /*子元素為固定尺寸
      margin-left: -200px;
      margin-top: -150px;*/

      /*子元素尺寸不固定*/
      transform: translate(-50%,-50%);

      border: 2px dashed gray;
    }
    .header,.side{
      padding: 10px;
      color: white;
      background-color: #FFAB40;
    }

顯示效果:

padding center

vertical-align垂直居中

    <div class="content">
      <div class="side middle">
        ![](/upload/images/web/forest-fire.jpg)
      </div>
    </div>
  .content {
    width: 350px;
    margin: 40px auto;
  }

  .middle {
    text-align: center;
  }

  .middle:before {
    content: "";
    display: inline-block;
    height: 100%;
    vertical-align: middle;
  }

  .side {
    height: 500px;
    padding: 20px;
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19)!important;
  }

  .side img {
    width: 300px;
    vertical-align: middle;
  }

效果圖:

作品預覽:鏈接地址

table-cell垂直居中

    <div class="content">
      <div class="side">
        ![](/upload/images/web/forest-fire.jpg)
      </div>
    </div>
  .content {
    width: 350px;
    margin: 40px auto;
  }

  .side {
    height: 500px;
    padding: 20px;
    display: table-cell;
    vertical-align: middle;
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19)!important;
    text-align: center;
  }

  .side img {
    width: 300px;
  }

效果圖和vertical-align垂直居中的顯示一樣。

小練習:

繪制氣泡框:查看鏈接

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,805評論 1 92
  • HTML、CSS的一些編碼規范 HTML:用兩個空格表示縮進。嵌套元素應當縮進一次。對于屬性的定義,確保全部使用雙...
    liushaung閱讀 322評論 0 2
  • CSS編碼規范 命名規范:語義化標簽優先;基于功能命名、基于內容命名、基于表現命名;簡略、明了、無后患 書寫規范:...
    饑人谷_哈嚕嚕閱讀 320評論 0 0
  • 今天是父親節,首先先祝老爸節日快樂,再祝自己節日快樂,我老大也祝我節日快樂,謝謝寶貝,爸爸再辛苦也樂意...
    夏俊智爸爸閱讀 269評論 0 0
  • 俊俊+女+201203 20170519-20170618親子打卡月度檢視 #尊重,平等,愛# 孩子第2個30天目...
    婷婷_409c閱讀 142評論 0 1