WEB 切图经验小结

给自己的备忘,同时抛砖引玉

1 编码规范

规范很重要,自己写着舒服,别人也看着舒服。

1.1 HTML

  • id使用“全小写、_间隔”的方式命名,如“delete_ap_btn”
  • 不要使用过于简单的命名,如header, btn等
  • class“全小写、-间隔”。css的定义集中在class上
  • js使用的class,增加“js-”前缀予以区分。例如 js-del-button

1.2 CSS

1.2.1 样式使用BEM命名规范

  • 模块(B)、元素(E)、状态(M)如有多个单词使用-间隔;
  • 元素使用__间隔,如 el-card__header;
  • 修饰使用--间隔,如 el-button--info el-button--fail不同的类型来表示按钮类型。
  • 如果是同一个元素不同状态,可以结果状态类来定义样式,如is-disabled, is-selected
  • 灵活命名,保持结构简单。
    如表单、表单条目,正常应该是form、form__item,但form__item下还有label,这时可以将item命名为 form-item,减少层次。

1.2.2 其他注意点

使用margin时统一一个方向,如只用margin-bottom,避免混乱。

1.3 JS

  • 参考google js编码规范
  • 不在js中直接进行css的更改
  • $选择器不要重复使用,如有多个选择器,可以将选择器结果赋值给变量
  • 开头
    jQuery可以再总结

2 关于HTML

原则就是语义化,减少不必要的结构

语义化

  • 可以链接的部分用 a;
  • 图片不要直接引入,如webpack不是很支持页面直接使用
  • 表单用 form fieldset label这些规范元素;
  • 文字中的强调使用 em;
  • 使用html5标签如header, footer;减少无语义的div使用

标题使用h标注等级

  • 网站标题h1
  • 页面标题h2
  • 功能标题h3
  • 子功能标题h4
    一般主要是功能标题,所以h3、h4会比较多些

3 css部分

3.1 样式结构

  • reset样式
    重置样式
  • 基础样式
    一般的想法,重置样式固定,每个项目如果基础样式修改,在后面补充。可以理解Wie是对reset的覆盖,个人感觉,可以直接跟reset合并。
  • 公共样式
    公共的类型,比如说隐藏、不可用。这些公共的可以抽离出来。有一种样式编写思路就是将外间距margin、内间距padding等都抽离出来,通过公共样式组合达到效果,减少模块样式的使用
  • 模块样式
    就是具体的模块样式

3.2 reset样式

reset样式应当减少下不必要的部分,如div本身就没有默认值,没有必要有初始化

/* 
html5doctor.com Reset Stylesheet
v1.4.1 
2010-03-01
Author: Richard Clark - http://richclarkdesign.com
*/

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
    margin:0;
    padding:0;
    border:0;
    outline:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
}

body {
    line-height:1;
}

:focus {
    outline: 1;
}

article,aside,canvas,details,figcaption,figure,
footer,header,hgroup,menu,nav,section,summary { 
    display:block;
}

nav ul {
    list-style:none;
}

blockquote, q {
    quotes:none;
}

blockquote:before, blockquote:after,
q:before, q:after {
    content:'';
    content:none;
}

a {
    margin:0;
    padding:0;
    border:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
}

ins {
    background-color:#ff9;
    color:#000;
    text-decoration:none;
}

mark {
    background-color:#ff9;
    color:#000; 
    font-style:italic;
    font-weight:bold;
}

del {
    text-decoration: line-through;
}

abbr[title], dfn[title] {
    border-bottom:1px dotted #000;
    cursor:help;
}

table {
    border-collapse:collapse;
    border-spacing:0;
}

hr {
    display:block;
    height:1px;
    border:0;   
    border-top:1px solid #cccccc;
    margin:1em 0;
    padding:0;
}

input, select {
    vertical-align:middle;
}

3.3初始样式

3.3.1 body

  • font 字体(大小/行高,字体)
  • background 背景色
  • color 字体颜色

3.3.2 a

  • color 颜色
  • text-docoration 样式

3.4 具体样式分析

3.4.1 布局

使用浮动布局,根据24列原则进行划分。

3.4.2 按钮

按钮使用padding控制高度和宽度

3.4.3 总结

  • 相邻间隔使用 + 兄弟选择器,非常方便;
  • transition 动画加入,对于高度更改、颜色更改都有很好的效果
  • 居中问题
    vertical-align: middle 行内元素,垂直居中
    text-align: center 行内元素,水平居中
    left: 50%; transferX(50%) 不定宽的块状元素,水平居中
    margin: 0 auto 定宽的块状元素,水平居中
    position: abosulte; top: 50%; margin-top: 一半元素高度,定高的块状元素,垂直居中

你可能感兴趣的:(WEB 切图经验小结)