入門13 CSS綜合

CSS編碼規范

  • 命名規范:
    語義化標簽優先;基于功能命名、基于內容命名、基于表現命名;簡略、明了、無后患
常見命名1
    .wrap or .wrapper -- 用于外側包裹
    .container or .ct -- 包裹容器
    .header -- 用于頭部
    .body -- 頁面 body
    .footer -- 頁面尾部
    .aside or .sidebar -- 用于側邊欄
    .content -- 和header footer 對應,用于主要內容
    .navigation -- 導航元素
    .pagination -- 分頁
常見命名2
    .tabs > .tab -- tab 切換
    .breadcrumbs -- 導航列表、面包屑
    .dropdown -- 下拉菜單
    .article -- 文章
    .main -- 用于主體
    .thumbnail -- 頭像,小圖像
    .media -- 媒體資源
    .panel -- 面板
    .tooltip -- 鼠標放置上去的提示
    .popup -- 鼠標點擊彈出的提示
常見命名3
    .button、.btn -- 按鈕
    .ad -- 廣告
    .subnav -- 二級導航
    .menu -- 菜單
    .tag -- 標簽
    .message或者.notice -- 提示消息
    .summary -- 摘要
    .logo -- logo
    .search -- 搜索框
    .login -- 登錄
常見命名4
    .register -- 注冊
    .username -- 用戶名
    .password -- 密碼
    .banner -- 廣告條
    .copyright -- 版權
    .modal或者 .dialog -- 彈窗
常見命名5
var 名字 = { 
     狀態: [ 'inverse', 'toggled', 'switched', 'original', 'initial', 'identified',  'disabled', 'loading', 'pending', 'syncing', 'default' ], 
     修飾: [ 'dark', 'light', 'shaded', 'flat', 'ghost', 'maroon', 'pale', 'intense', 'twisted', 'narrow', 'wide', 'smooth', 'separate', 'clean', 'sharp', 'aligned' ], 
     元素: [ 'pagination', 'modal', 'popup', 'article', 'story', 'flash', 'status', 'state', 'media', 'block', 'card', 'teaser', 'badge', 'label', 'sheet', 'poster', 'notice', 'record', 'entry', 'item', 'figure', 'square', 'module', 'bar', 'button', 'action', 'knob' ], 
     布局: [ 'navigation', 'wrapper', 'inner', 'header', 'footer', 'aside', 'section', 'divider', 'content', 'container', 'panel', 'pane', 'construct', 'composition', 'spacing', 'frame' ] }
  • 書寫規范:
  1. 用兩個空格來代替制表符(tab) -- 這是唯一能保證在所有環境下獲得一致展現的方法。
  2. 為選擇器分組時,將單獨的選擇器單獨放在一行。
  3. 為了代碼的易讀性,在每個聲明塊的左花括號前添加一個空格。
  4. 聲明塊的右花括號應當單獨成行。
  5. 每條聲明語句的:后應該插入一個空格。
  6. 為了獲得更準確的錯誤報告,每條聲明都應該獨占一行。
  7. 所有聲明語句都應當以分號結尾。最后一條聲明語句后面的分號是可選的,但是,如果省略這個分號,你的代碼可能更易出錯。
  8. 對于以逗號分隔的屬性值,每個逗號后面都應該插入一個空格(例如, box-shadow)。
  9. 不要在rgb()、rgba()、hsl()、hsla()rect()值的內部的逗號后面插入空格。這樣利于從多個屬性值(既加逗號也加空格)中區分多個顏色值(只加逗號,不加空格)。
  10. 對于屬性值或顏色參數,省略小于 1 的小數前面的 0 (例如,.5
    代替0.5;-.5px代替-0.5px)。
  11. 十六進制值應該全部小寫,例如,#fff。在掃描文檔時,小寫字符易于分辨,因為他們的形式更易于區分。盡量使用簡寫形式的十六進制值,例如,用#fff代替#ffffff。
  12. 為選擇器中的屬性添加雙引號,例如,input[type="text"]。只有在某些情況下是可選的,但是,為了代碼的一致性,建議都加上雙引號。
  13. 避免為 0 值指定單位,例如,用margin: 0;代替margin: 0px;
  • 聲明順序:
    相關的屬性聲明應當歸為一組,并按照下面的順序排列:
    1. Positioning(布局方式、位置):position / top / right / bottom / left / float / display / overflow
    2. Box model(盒模型、尺寸):border / margin / padding / width / height
    3. Typographic(文本相關):font / line-height / text-align / word-wrap
    4. Visual(視覺效果):background / color / transition / list-style

由于定位(positioning)可以從正常的文檔流中移除元素,并且還能覆蓋盒模型(box model)相關的樣式,因此排在首位。盒模型排在第二位,因為它決定了組件的尺寸和位置。
其他屬性只是影響組件的內部(inside)或者是不影響前兩組屬性,因此排在后面。

垂直居中有4種實現方式

  • 上下padding相等實現居中
html
<body>
  <div class="content">
    <p>我愛學習,學習使我快樂</p>
    <p>我愛學習,學習使我快樂</p>
    <p>我愛學習,學習使我快樂</p>
    <p>我愛學習,學習使我快樂</p>
  </div>
</body>
css
.content {
  border: 1px solid red;
  margin: 20px auto;
  padding: 50px 0;
  text-align: center;
}
.content>p {
  border: 1px solid green;
}
上下padding相等
  • 絕對定位實現居中
html
<body>
  <div class="dialog">
    <header>來自網頁的消息:</header>
    <p>歡迎來到饑人谷~最有愛的前端學習社區~~</p>
  </div>
</body>
css
.dialog {
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -120px;
  margin-top: -80px;
  width: 240px;
  height: 160px;
  border: 1px solid #ddd;
  border-radius: 10px;
  box-shadow: 0 0 3px #aaa;
}
.dialog>header {
  padding: 10px;
  background: #000;
  border-radius: 9px 9px 0 0;
  color: #fff;
}
.dialog>p {
  padding: 20px;
}
絕對定位

注:widthheight屬性不固定時,可用transform: translate(-50%,-50%)代替margin-left: ; margin-right: ;

  • vertical-align:middle實現居中
html
<div class="box">
   ![](http://upload-images.jianshu.io/upload_images/6426975-67235bded916bb39.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
 </div>
css
.box {
  width: 400px;
  height: 200px;
  border: 1px solid orange;
  text-align: center;
}
.box:before {
  content:"";
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}
.box>img {
  width: 180px;
  vertical-align: middle;
  background: #a0a0a0;
}
vertical-align
  • table-cell實現居中
html同上
css
.box {
  width: 400px;
  height: 200px;
  border: 1px solid orange;
  text-align: center;
  display: table-cell;
  vertical-align: middle;
}
.box>img {
  width: 180px;
  background: #a0a0a0;
}
效果同上

實現如下效果

效果范例

代碼

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,362評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,577評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,486評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,852評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,600評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,944評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,944評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,108評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,652評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,385評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,616評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,111評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,798評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,205評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,537評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,334評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,570評論 2 379

推薦閱讀更多精彩內容

  • 各種純css圖標 CSS3可以實現很多漂亮的圖形,我收集了32種圖形,在下面列出。直接用CSS3畫出這些圖形,要比...
    劍殘閱讀 9,634評論 0 8
  • 移動開發基本知識點 一.使用rem作為單位 html { font-size: 100px; } @media(m...
    橫沖直撞666閱讀 3,504評論 0 6
  • H5移動端知識點總結 閱讀目錄 移動開發基本知識點 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇閱讀 4,601評論 0 26
  • 我曾經很想念一個人 我以為只是曾經 沒想 時至今日 我還是會常常想念同一個人 一條街如果盡頭很遠 花草樹木會不會 ...
    零啟閱讀 384評論 0 0
  • 科學研究已經證實,大多數癌癥的病因與生活方式有關。美國癌癥研究所出版的《癌癥止步》一書中就指出,77%的癌癥根源在...
    芳芳健康分享閱讀 460評論 0 0