1. 说一说你平时写代码遵守的编码规范
最初接触编码规范,主要是看的这篇文章。
例如:4个空格做一个缩进;
.selector {
margin: 0;
padding: 0;
}
选择器和{之间必须有空格;
属性名与之后的:之间不允许有空格;但:和属性值之间必须有空格;
margin: 0;
列表型属性值书写在单行时, 逗号后面必须跟一个空格;
当一个rule包含多个选择器时,每个选择器声明必须独占一行;
/* good */
.post,
.page,
.comment {
line-height: 1.5;
}
/* bad */
.post, .page, .comment {
line-height: 1.5;
}
选择器+ > ~两边各保留一个空格;
/* good */
main > nav {
padding: 10px;
}
/* bad */
main>nav {
padding: 10px;
}
属性选择器中的值必须用双引号;
属性定义必须另起一行;
如无必要,不得为id class选择器添加类型选择器进行限定;
选择器的嵌套不应该大于3级,位置靠后的限定条件尽可能精确;
/* good */
#username input {}
.comment .avatar {}
/* bad */
.page .header .login #username input {}
.comment div * {}
属性定义后必须以分号结尾;
在可以使用缩写的情况下,尽量使用属性缩写;
/* good */
.post {
font: 12px/1.5 arial, sans-serif;
}
/* bad */
.post {
font-family: arial, sans-serif;
font-size: 12px;
line-height: 1.5;
}
属性书写顺序:Formatting Model(布局方式,位置)>Box Model(尺寸)>Typographic(文本相关)>Visual(视觉效果)
Formatting Model 相关属性包括:position / top / right / bottom / left / float / display / overflow 等
Box Model 相关属性包括:border / margin / padding / width / height 等
Typographic 相关属性包括:font / line-height / text-align / word-wrap 等
Visual 相关属性包括:background / color / transition / list-style 等
如果包含content属性应放在最前面;
清除浮动尽量使用伪类和触发BFC的方法;
文本内容必须用双引号;数值为0-1之间的小数,省略整数部分的0;长度为0省略单位
字号最好不小于12px;兼容性带私有前缀的属性由长到短排列等等。
代码规范是一个好的习惯的养成,需要自己严格要求养成良好的编码规范。
2. 垂直居中有几种实现方式,给出代码范例
单行文字垂直居中:设置line-height等于父容器高度
代码地址
多行文字居中:设置上下padding一致
代码地址
绝对定位居中:
代码地址
使用vertical-align居中:
代码地址
使用table-cell实现居中
代码地址