CSS 綜合

常用的編碼規(guī)范

HTML部分

語法

  • 使用2個(gè)空格代替制表符尸执;
  • 默認(rèn)縮進(jìn)2個(gè)空格婚夫;
  • 屬性定義全部使用雙引號(hào)""浸卦;
  • 不在自閉和元素的尾部添加斜線<br>
  • 不省略可選的結(jié)束標(biāo)簽案糙。

文檔聲明

為每個(gè)HTML頁面添加標(biāo)準(zhǔn)HTML聲明:

<!DOCTYPE html>

語言屬性

為 html 根元素指定 lang 屬性限嫌,從而為文檔設(shè)置正確的語言。這將有助于語音合成工具確定其所應(yīng)該采用的發(fā)音侍筛,有助于翻譯工具確定其翻譯時(shí)所應(yīng)遵守的規(guī)則等萤皂。

<html lang="zh">

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

IE 兼容模式

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

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

字符編碼

直接聲明字符編碼匣椰,確保瀏覽器快速識(shí)別頁面內(nèi)容渲染方式。

<meta charset="UTF-8">

引入 CSS 和 JavaScript 文件

在引入 CSS 和 JavaScript 文件時(shí)一般不需要指定 type 屬性端礼,因?yàn)?text/csstext/javascript 分別是它們的默認(rèn)值禽笑。

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

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

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

屬性順序

HTML 屬性應(yīng)當(dāng)按照以下給出的順序依次排列,確保代碼的易讀性蛤奥。

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

布爾(boolean)型屬性

布爾型屬性可以在聲明時(shí)不賦值佳镜。XHTML 規(guī)范要求為其賦值,但是 HTML5 規(guī)范不需要凡桥。

減少標(biāo)簽的數(shù)量

編寫 HTML 代碼時(shí)蟀伸,盡量避免多余的父元素。很多時(shí)候缅刽,這需要迭代和重構(gòu)來實(shí)現(xiàn)啊掏。

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

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

JavaScript 生成的標(biāo)簽

通過 JavaScript 生成的標(biāo)簽讓內(nèi)容變得不易查找、編輯衰猛,并且降低性能迟蜜。能避免時(shí)盡量避免。

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

CSS部分

語法

  • 使用2個(gè)空格代替制表符啡省;
  • 選擇器分組時(shí)娜睛,每個(gè)選擇器單獨(dú)占一行;
  • 每個(gè)聲明塊的左花括號(hào){前添加一個(gè)空格卦睹;
  • 每個(gè)聲明塊的右花括號(hào)}獨(dú)占一行畦戒;
  • 每條聲明語句的分號(hào)`:``后插入一個(gè)空格;
  • 每條聲明獨(dú)占一行结序;
  • 所有聲明語句都應(yīng)當(dāng)以分號(hào)結(jié)尾障斋;
  • 對于以逗號(hào)分隔的屬性值,每個(gè)逗號(hào)后面都應(yīng)該插入一個(gè)空格(例如笼痹,box-shadow)配喳;
  • 不要在 rgb()酪穿、rgba()hsl()晴裹、hsla()rect() 值的內(nèi)部的逗號(hào)后面插入空格被济;
  • 對于屬性值或顏色參數(shù),省略小于 1 的小數(shù)前面的 0 (例如涧团,.5 代替 0.5只磷;-.5px 代替 -0.5px);
  • 十六進(jìn)制的值全部小寫泌绣;
  • 十六進(jìn)制盡量使用簡寫钮追;
  • 屬性選擇器中的屬性添加雙引號(hào)"",`input[type="text"]阿迈;
  • 屬性值為0元媚,去除單位。

聲明順序

相關(guān)的屬性聲明應(yīng)當(dāng)歸為一組苗沧,并按照下面的順序排列:

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

不要使用 @import

<link> 標(biāo)簽相比刊棕,@import 指令要慢很多,不光增加了額外的請求次數(shù)待逞,還會(huì)導(dǎo)致不可預(yù)料的問題甥角。替代辦法有以下幾種:

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

媒體查詢(Media query)的位置

將媒體查詢放在盡可能相關(guān)規(guī)則的附近识樱。不要將他們打包放在一個(gè)單一樣式文件中或者放在文檔底部嗤无。

帶前綴的屬性

當(dāng)使用特定廠商的帶有前綴的屬性時(shí),通過縮進(jìn)的方式怜庸,讓每個(gè)屬性的值在垂直方向?qū)R当犯,這樣便于多行編輯。

單行規(guī)則聲明

對于只包含一條聲明的樣式休雌,為了易讀性和便于快速編輯灶壶,建議將語句放在同一行。對于帶有多條聲明的樣式杈曲,還是應(yīng)當(dāng)將聲明分為多行驰凛。

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

命名技巧

語義化

  1. 語義化標(biāo)簽優(yōu)先
  2. 基于功能命名、基于內(nèi)容命名担扑、基于表現(xiàn)命名
  3. 簡略恰响、明了、無后患

命名規(guī)則

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

垂直居中的幾種實(shí)現(xiàn)方式

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方法實(shí)現(xiàn)垂直居中的前提的父元素盡量不設(shè)置高度枢劝,設(shè)置上下padding值井联,子元素的高度隨內(nèi)容的變化而變化。

絕對定位垂直居中

    <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;
  }

效果圖:

作品預(yù)覽:鏈接地址

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垂直居中的顯示一樣您旁。

小練習(xí):

繪制氣泡框:查看鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末烙常,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鹤盒,更是在濱河造成了極大的恐慌蚕脏,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件侦锯,死亡現(xiàn)場離奇詭異驼鞭,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)尺碰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門挣棕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人葱蝗,你說我怎么就攤上這事穴张∠噶牵” “怎么了两曼?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長玻驻。 經(jīng)常有香客問我悼凑,道長,這世上最難降的妖魔是什么璧瞬? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任户辫,我火速辦了婚禮,結(jié)果婚禮上嗤锉,老公的妹妹穿的比我還像新娘渔欢。我一直安慰自己,他們只是感情好瘟忱,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布奥额。 她就那樣靜靜地躺著,像睡著了一般访诱。 火紅的嫁衣襯著肌膚如雪垫挨。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天触菜,我揣著相機(jī)與錄音九榔,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛哲泊,可吹牛的內(nèi)容都是我干的剩蟀。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼切威,長吁一口氣:“原來是場噩夢啊……” “哼喻旷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起牢屋,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤且预,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后烙无,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锋谐,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年截酷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了涮拗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡迂苛,死狀恐怖三热,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情三幻,我是刑警寧澤就漾,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站念搬,受9級特大地震影響抑堡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜朗徊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一首妖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧爷恳,春花似錦有缆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至铸豁,卻和暖如春灌曙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背节芥。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工在刺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留逆害,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓蚣驼,卻偏偏與公主長得像魄幕,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子颖杏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案纯陨? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,754評論 1 92
  • HTML、CSS的一些編碼規(guī)范 HTML:用兩個(gè)空格表示縮進(jìn)留储。嵌套元素應(yīng)當(dāng)縮進(jìn)一次翼抠。對于屬性的定義,確保全部使用雙...
    liushaung閱讀 319評論 0 2
  • CSS編碼規(guī)范 命名規(guī)范:語義化標(biāo)簽優(yōu)先获讳;基于功能命名阴颖、基于內(nèi)容命名、基于表現(xiàn)命名丐膝;簡略量愧、明了、無后患 書寫規(guī)范:...
    饑人谷_哈嚕嚕閱讀 309評論 0 0
  • 今天是父親節(jié)帅矗,首先先祝老爸節(jié)日快樂偎肃,再祝自己節(jié)日快樂,我老大也祝我節(jié)日快樂浑此,謝謝寶貝累颂,爸爸再辛苦也樂意...
    夏俊智爸爸閱讀 259評論 0 0
  • 俊俊+女+201203 20170519-20170618親子打卡月度檢視 #尊重,平等尤勋,愛# 孩子第2個(gè)30天目...
    婷婷_409c閱讀 137評論 0 1