css基础知识六(编码规范)

说一说你平时写代码遵守的编码规范

每个程序员都会有自己的编码习惯,但是几乎每个项目,各个公司都会有自己的编码规范,开发软件是一个团队活动,不能搞个人英雄主义,这就要求团队成员有一个统一的编码规范了。
那么我们为什么要遵守规范?它有什么作用呢?

  • 提高代码可读性
  • 统一全局,加强团队合作
  • 减少维护成本
  • 规范的代码有助于审查代码
  • 养成好习惯,有助于程序员个人能力的成长

理解了其重要性,现在我们来谈谈有哪些编码规范

HTML规范

  • HTML标签语义化,减少无意义的标签
  • 标签名小写,正确闭合标签
  • 使用HTML5的doctype来启用标准模式,<!DOCTYPE html>
  • 在html标签上设置正确的lang属性,一般是<html lang="zh-CN">
  • 属性值必须用引号包围
  • 在meta里声明字符编码为utf-8
  • 遵守正交原则,写HTML时不要想CSS的写法
  • 使用外链的CSS和JavaScripe,属性type可以省略
  • 尽量用alt标签去描述图片
  • 习惯性书写注释,方便日后维护
  • 布尔(boolean)型属性不用赋值
  • IE 支持通过特定的 <meta>标签来确定绘制当前页面所应该采用的 IE 版本。除非有强烈的特殊需求,否则最好是设置为 edge mode,从而通知 IE 采用其所支持的最新的模式。如<meta http-equiv="X-UA-Compatible" content="IE=Edge">
  • HTML 属性应当按照以下给出的顺序依次排列,确保代码的易读性。
  1. class
  2. id,name
  3. data-*
  4. src,,for, type, href
  5. title,alt
  6. aria-*,role

CSS规范

  • tab缩进用两个空格代替
  • css的:后加个空格,{前加个空格
  • 每条声明后都加分号
  • 换行,而不要放在同一行
  • 颜色用小写,能缩写就缩写,如#fff
  • 小数不用写前缀,0.5s可写成.5s,0不用加单位
  • 尽量缩写,如margin:5px 10px 5px 10px;可写成margin:5px 10px;
  • 缩写属性,如font: 16px/1.5 palatino, georgia, serif;
  • 声明顺序遵循以下
    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等
  1. Visual 视觉相关属性,比如background / color / transition / list-style 等
    eg:
.sidebar {
    /* formatting model: positioning schemes / offsets / z-indexes / display / ...  */
    position: absolute;
    top: 50px;
    left: 0;
    overflow-x: hidden;

    /* box model: sizes / margins / paddings / borders / ...  */
    width: 200px;
    padding: 5px;
    border: 1px solid #ddd;

    /* typographic: font / aligns / text styles / ... */
    font-size: 14px;
    line-height: 20px;

    /* visual: colors / shadows / gradients / ... */
    background: #f5f5f5;
    color: #333;
  
}
  • class命名的语义化
  1. 语义化优先
  2. 基于功能命名、基于内容命名、基于表现命名
  3. 简略、明了、无后患
  • 编程过程中我们时常被class命名所困扰,现在来列举一些常用的命名
  1. wrap或.wrapper-- 用于外侧包裹
  2. container或 .ct -- 包裹容器
  3. header-- 用于头部
  4. body -- 页面 body
  5. footer-- 页面尾部
  6. aside、sidebar -- 用于侧边栏
  7. content -- 和header footer 对应,用于主要内容
  8. navigation-- 导航元素
  9. pagination -- 分页
  10. tabs > .tab-- tab 切换
  11. breadcrumbs-- 导航列表、面包屑
  12. dropdown-- 下拉菜单
  13. article -- 文章
  14. main-- 用于主体
  15. thumbnail-- 头像,小图像
  16. media-- 媒体资源
  17. panel-- 面板
  18. tooltip-- 鼠标放置上去的提示
  19. popup-- 鼠标点击弹出的提示
  20. button、.btn-- 按钮
  21. ad-- 广告
  22. subnav-- 二级导航
  23. menu-- 菜单
  24. tag-- 标签
  25. message或者.notice-- 提示消息
  26. summary-- 摘要
  27. logo-- logo
  28. search-- 搜索框
  29. login-- 登录
  30. register-- 注册
  31. username-- 用户名
  32. password-- 密码
  33. banner -- 广告条
  34. copyright -- 版权
  35. modal或者 .dialog-- 弹窗

还有其他的一些,有需要请自行查阅

状态: [ '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' ]}

以下为参考链接:

bootstrap
segmentfault
jirengu

垂直居中有几种实现方式,给出代码范例

  1. absolute+margin,需要固定高宽
  2. absolute+translate
  3. flex
  4. 伪元素+vertical-align+text-align
  5. tabel-cell+vertical-align+text-align

有一个需要值得注意的是,1、2作用的都是当前元素本身,使其水平垂直居中,3、4、5作用的都是当前元素的子元素,使子元素在当前元素内水平元素居中,注意作用对象

实现如下效果,每种效果都只使用一个html 标签来实现 效果范例

demo1
demo2
demo3

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,737评论 1 92
  • CSS格式化排版 1、字体 我们可以使用css样式为网页中的文字设置字体、字号、颜色等样式属性。下面我们来看一个例...
    张文靖同学阅读 1,281评论 0 3
  • 转载请声明 原文链接地址 关注公众号获取更多资讯 第一部分 HTML 第一章 职业规划和前景 职业方向规划定位...
    程序员poetry阅读 16,524评论 32 459
  • 什么是html? html是一种网页标记语言,叫超文本标记语言,我们平时上网所看到的所有网页均来自于html,英文...
    波段顶底阅读 8,354评论 2 7
  • 木莜杺阅读 228评论 0 0