1. 文件名规范

文件名建议用小写字母加中横线的方式。为什么呢?因为这样可读性比较强,看起来比较清爽

https://stackoverflow.com/questions/25704650/disable-blue-highlight-when-touch-press-object-with-cursorpointer

那为什么变量名不用小写字母加小划线的方式

family_tree

因为下划线比较难敲(shift + -),所以一般用驼峰式命名变量的居多。

引入CSS文件的link可以不用带type="text/css"

<link rel="stylesheet" href="test.css">

因为link里面最重要的是rel这个属性,可以不要type,但是不能没有rel。

JS也是同样道理,可以不用type

<script src="test.js"></script>

2. 不要使用样式特点命名

有些人可能喜欢用样式的特点命名

.red-font{
color: red;
}
.p1{
font-size: 18px;
}
.p2{
font-size: 16px;
}

类的命名应当使用它所表示的逻辑意义

如signup-success-toast、request-demo、agent-portrait、 company-logo等等。

3. 减少覆盖

如下代码,为了让每个house中间的20px的间距,但是第一个house不要有间距:

.house{
margin-top: 20px;
}
.house:first-child{
margin-top:;
}

其实可以改成这样

.house + .house{
margin-top: 20px;
}

选择.house后所有的.house,第一个不选中,这样看起来代码就简洁多了。

还有这种情况,如下代码所示:

.request-demo input{
border: 1px solid #282828;
}
.request-demo input[type=submit]{
border: none;
}

其实可以借助一个:not选择器:

.request-demo input:not([type=sbumit]){
border: 1px solid #282828;
}

4. 多写注释

(1)文件顶部的注释

/*
* @description整个列表页样式入口文件
* @author yincheng.li
*/

(2)简单注释

/*为了去除输入框和表单点击时的灰色背景*/
input,
form{
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
}

5. 属性值规范

(1)如果值是0,通常都不用带单位

.list{
border: 1px solid 0;
margin:;
}

(2)色值用十六进制,少用rgb

因为使用rgb是一个函数,它还要计算一下转换。如果是带有透明度的再用rgba.

如果色值的六个数字一样,那么写3个就好:

color: #ccc;

(3)注意border none和0的区别

如下两个意思一样

border: 0;
border-width: 0;

而下面这两个一样:

border: none;
border-style: none;

所以用0和none都可以去掉边框。

6. 不要设置太大的z-index

有些人喜欢设置z-index很大:

z-index: 99999;

以为他是老大了,不会有人再比他高了,但是螳螂捕蝉,黄雀在后,很快得再写一个:

z-index: 999999

通常自己页面的业务逻辑的z-index应该保持在个位数就好了。

7. 注意float/absolute/fixed定位会强制设置成block

a.btn {
float: left;
display: block;
width: 100px;
height: 30px;
}

第二行的display: block其实是没用的,因为如果你浮动了,目标元素就会具有块级盒模型的特性,即使你display: table-cell或者inline也不管用

8. 清除浮动

清除浮动有多种方法,一般用clearfix大法,虽然这个方法有缺陷,但是它比较简单且能够适用绝大多数的场景,一个兼容IE8及以上的clearfix的写法

.clearfix:after{
content: "";
display: table;
clear: both;
}

9. CSS动画规范

(1)不要使用all属性做动画

使用transition做动画的时候不要使用all所有属性,在有一些浏览器上面可能会有一些问题,如下

transition: all 2s linear;

正确的做法是要用哪个属性做动画就写哪个,如果有多个就用隔开

transition: transform 2s linear,
opacity 2s linear;

(2)使用transform替代position做动画

如果能用transform做动画的,就不会使用left/top/margin等,因为transform不会造成重绘,性能要比position那些高很多,特别是在移动端的时候效果比较明显。基本上位移的动画都能用transform完成,不需要使用CSS2的属性,如一个框从右到左弹出。

(3)偏向于使用CSS动画替代JS动画

例如把一个框,从下到上弹出,可以用jQuery的slideUp函数,或者自己写setInterval函数处理,但是这些没有比用CSS来得好。使用CSS,初始状态可以把框translate移动屏幕外,然后点击的时候加上一个类,这个类的transform值为0,然后再用transition做动画就好了。

10. 行内元素可以直接设置margin-left/margin-right

如下有些人为了把span撑开,设置span display: inline-block:

span.phone-numer{
display: inline-block;
margin-left: 10px;
}

其实行内元素可直接margin的左右,能够把它撑开,不需要设置inline-block:

span.phone-numer{
margin-left: 10px;
}

  另外需要注意的是img/input/textarea/button默认就是inline-block,也不用再设置。

前端(HTML/CSS/JS)-CSS编码规范的更多相关文章

  1. 【转发】网易邮箱前端技术分享之javascript编码规范

    网易邮箱前端技术分享之javascript编码规范 发布日期:2013-11-26 10:06 来源:网易邮箱前端技术中心 作者:网易邮箱 点击:533 网易邮箱是国内最早使用ajax技术的邮箱.早在 ...

  2. Vue.js 组件编码规范

    本规范提供了一种统一的编码规范来编写 Vue.js 代码.这使得代码具有如下的特性: 其它开发者或是团队成员更容易阅读和理解. IDEs 更容易理解代码,从而提供高亮.格式化等辅助功能 更容易使用现有 ...

  3. html、css、js的命名规范

    最佳原则 坚持制定好的代码规范. 无论团队人数多少,代码应该同出一门. 项目命名 全部采用小写方式, 以下划线分隔. 例:my_project_name 目录命名 参照项目命名规则: 有复数结构时,要 ...

  4. HTML+CSS+JS设计注册页面

    HTML实战--设计一个个人信息填写界面 应用的技术:HTML+CSS+JS CSS和JS是套用的模板,主要练习了表单的验证和正则表达式的使用 效果图: 代码: <!DOCTYPE html&g ...

  5. 前端(HTML/CSS/JS)-HTML编码规范

    一.HTML编码规范 1. img标签要写alt属性 根据W3C标准,img标签要写alt属性,如果没有就写一个空的.但是一般要写一个有内容的,根据图片想要表达的意思,因为alt是在图片无法加载时显示 ...

  6. HTML/CSS/JS编码规范

    最近整理了一份HTML/CSS/JS编码规范,供大家参考.目录:一.HTML编码规范二.CSS编码规范三.JS编码规范 一.HTML编码规范 1. img标签要写alt属性 根据W3C标准,img标签 ...

  7. 前端、HTML+CSS+JS编写规范(终极版)

    HTMLCSS文档规范 HTML和CSS文档必须采用UTF-8编码格式: HTML文档必须使用HTML5的标准文档格式: HTMLCSS编写规范 HTML和CSS的标签.属性.类名.ID都必须使用小写 ...

  8. 前端编码规范之CSS

    "字是门面书是屋",我们不会去手写代码,但是敲出来的代码要好看.有条理,这还必须得有一点约束~ 团队开发中,每个人的编码风格都不尽相同,有时候可能存在很大的差异,为了便于压缩组件对 ...

  9. 前端编码规范(4)—— CSS 和 Sass (SCSS) 规范

    CSS and Sass (SCSS) style rules ID and class naming ID和class(类)名总是使用可以反应元素目的和用途的名称,或其他通用名称.代替表象和晦涩难懂 ...

  10. 前端HTML与CSS编码规范

    HTML 语法 HTML5 doctype 语言属性(Language attribute) 字符编码 IE 兼容模式 引入 CSS 和 JavaScript 文件 实用为王 属性顺序 布尔(bool ...

随机推荐

  1. Codeforces Round #253 (Div. 2)B(暴力枚举)

    就暴力枚举所有起点和终点就行了. 我做这题时想的太多了,最简单的暴力枚举起始点却没想到...应该先想最简单的方法,层层深入. #include<iostream> #include< ...

  2. linux进程学习-创建新进程

    init进程将系统启动后,init将成为此后所有进程的祖先,此后的进程都是直接或间接从init进程“复制”而来.完成该“复制”功能的函数有fork()和clone()等. 一个进程(父进程)调用for ...

  3. python lambda 用途

    可以让一个带参数函数,传递并以无参调用 def test(a): print a a=test # #a() a=897987 fun=lambda : test(a) fun()

  4. freemarker实现第一个HelloWorld

    第一步:引入freemarker jar包 第二步:创建templates下的test01.ftl 第三步:在web.xml下 第四步:编写后台代码 package com.wisezone.test ...

  5. BZOJ4923 [Lydsy1706月赛]K小值查询

    题意 维护一个长度为n的正整数序列a_1,a_2,...,a_n,支持以下两种操作: 1 k,将序列a从小到大排序,输出a_k的值. 2 k,将所有严格大于k的数a_i减去k. \(n \leq 10 ...

  6. Mxgraph使用总结一

    一.Mxgraph介绍: mxGraph 是一个 JS 绘图组件适用于需要在网页中设计/编辑 Workflow/BPM流程图.图表.网络图和普通图形的 Web 应用程序.mxgraph 下载包中包括j ...

  7. MySQL自带的性能压力测试工具mysqlslap详解

    使用语法如下:# mysqlslap [options] 常用参数 [options] 详细说明: --auto-generate-sql, -a 自动生成测试表和数据,表示用mysqlslap工具自 ...

  8. PCIE编程1:lspci操作

    lspci 是一个用来显示系统中所有PCI总线设备或连接到该总线上的所有设备的工具. 列出所有的PCIE设备: lspci 选项: -v 使得 lspci 以冗余模式显示所有设备的详细信息. -vv ...

  9. 前端HTML5介绍

    1.为什么学习HTML5? 跨平台要求低 硬件要求低 flash之外的选择(尤其手机端) 2什么是HTML5? HTML是用来描述网页的一种语言 HTML指超文本标记语言 HTML不是变成语言,是一种 ...

  10. shell脚本 - 快速到达目录

    服务器中存放很多工程目录,通过ssh登录,需要手动敲命令,很麻烦,可以建立自动登录脚本 1.在服务器登录是默认的目录中建立脚本文件 vi drivers.sh #建立登录脚本 cd data/work ...