css编写规范

一、注释规范 

1、文件顶部注释(推荐使用) 

Css代码 
  1. /*  
  2. * @description: 中文说明  
  3. * @author: name  
  4. * @update: name (2013-04-13 18:32)  
  5. */  


2、模块注释 

模块注释必须单独写在一行 

Css代码 
  1. /* module: module1 by 张三 */  
  2. …  
  3. /* module: module2 by 张三 */  


3、单行注释与多行注释 

单行注释可以写在单独一行,也可以写在行尾,注释中的每一行长度不超过40个汉字,或者80个英文字符。 

Css代码 
  1. /* this is a short comment */  


多行注释必须写在单独行内 

Css代码 
  1. /*  
  2. * this is comment line 1.  
  3. * this is comment line 2.  
  4. */  


4、特殊注释 

用于标注修改、待办等信息 

Css代码 
  1. /* TODO: xxxx by name 2013-04-13 18:32 */  
  2. /* BUGFIX: xxxx by name 2012-04-13 18:32 */  


5、区块注释 

对一个代码区块注释(可选),将样式语句分区块并在新行中对其注释。 

Css代码 
    1. /* Header */  
    2. /* Footer */  
    3. /* Gallery */  

二、编码规范

 

1. tab键用(必须)四个空格代替

2. 每个样式属性后(必须)加 ";"

方便压缩工具"断句"。

3. Class命名中(禁止)出现大写字母,(必须)采用” - “对class中的字母分隔,如:

 /* 正确的写法 */.hotel-title {font-weight: bold;}/* 不推荐的写法 */.hotelTitle {font-weight: bold;}
  • 用"-"隔开比使用驼峰是更加清晰。
  • 产品线-产品-模块-子模块,命名的时候也可以使用这种方式(@Artwl)

 

4. 空格的使用,以下规则(必须)执行:

 .hotel-content {font-weight: bold;}
  • 选择器与 之前(必须)要有空格
  • 属性名的 后(必须)要有空格
  • 属性名的 前(禁止)加空格

一个原因是美观,其次IE 6存在一个bug, 戳bug

 

5.多选择器规则之间(必须)换行

当样式针对多个选择器时每个选择器占一行

 /* 推荐的写法 */a.btn,input.btn,input[type="button"] {......}

 

6. (禁止)将样式写为单行, 如

.hotel-content {margin: 10px; background-color: #efefef;}

单行显示不好注释,不好备注,这应该是压缩工具的活儿~

 

7. (禁止)向 后添加单位, 如:

.obj {left: 0px;
}

只是为了统一。记住,绿色字表强调,不表强制!

 

 

8. (禁止)使用css原生import

使用css原生import有很多弊端,比如会增加请求数等....


9. 不要轻易改动全站级CSS和通用CSS库。改动后,要经过全面测试。8. 避免使用filter

10. 避免在CSS中使用expression

11. 避免过小的背景图片平铺,小图片(必须)sprite 合并

12. 层级(z-index)必须清晰明确,页面弹窗、气泡为最高级(最高级为999),不同弹窗气泡之间可在三位数之间调整;普通区块为10-90内10的倍数;区块展开、弹出为当前父层级上个位增加,禁止层级间盲目攀比。

13. 背景图片请尽可能使用sprite技术, 减小http请求, 考虑到多人协作开发, sprite按照模块、业务、页面来划分均可。

 

14. (推荐)属性的书写顺序, 举个例子:

.hotel-content {/* 定位 */display: block;position: absolute;left: 0;top: 0;/* 盒模型 */width: 50px;height: 50px;margin: 10px;border: 1px solid black;/ *其他* /color: #efefef;}
  • 定位相关, 常见的有:display position left top float 等
  • 盒模型相关, 常见的有:width height margin padding border 等
  • 其他属性

    按照这样的顺序书写可见提升浏览器渲染dom的性能

 

15. (推荐)当编写针对特定html结构的样式时,使用元素名 + 类名

/* 所有的nav都是针对ul编写的 */ul.nav {......}

".a div"和".a div.b",为什么后者好?如果需求有所变化,在".a"下有多加了一个div,试问,开始的样式是不是会影响后来的div啊~

 

16. (推荐)IE Hack List

 /* 针对ie的hack */selector {property: value;     /* 所有浏览器 */ property: value\9;   /* 所有IE浏览器 */ property: value\0;   /* IE8 */+property: value;    /* IE7 */_property: value;    /* IE6 */*property: value;    /* IE6-7 */}

当使用hack的时候想想能不能用更好的样式代替

 

17. (不推荐)ie使用filter,( 禁止)使用expression

这里主要是效率问题,应该当格外注意,咱们要少用烧CPU的东西~ 

18. (禁止)使用行内(inline)样式

<p style="font-size: 12px; color: #FFFFFF">靖鸣君</p>

像这样的行内样式,最好用一个class代替。又如要隐藏某个元素,可以给他加一个class

.hide {display: none;
}

尽量做到样式和结构分离~

 

19. (推荐)reset.css样式

推荐网站:http://www.cssreset.com/

 

20.(禁止)使用"*"来选择元素

/*别这样写*/
* {margin: 0;padding: 0;
}

这样写是没有必要的,一些元素在浏览器中默认有margin或padding值,但是只是部分元素,没有必要将所有元素的margin、padding值都置为0。

21. 链接的样式,(务必)按照这个顺序来书写

a:link -> a:visited -> a:hover -> a:active

转载于:https://www.cnblogs.com/liyunhua/p/4537058.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/291182.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ng的link和comepile

angularJs应用启动之前&#xff0c;它们是以HTML文本形式存在文本编辑器当中。应用启动会进行编译和链接&#xff0c;作用域会同HTML元素进行绑定。 在编译的阶段&#xff0c;angularJs会遍历整个的文档并根据JavaScript中指令定义来处理页面上的指令。 如果设置了compile函数&…

php 实现的字典序排列算法,字典序的一个生成算法

字典序的一个生成算法。最近在LeetCode刷题&#xff0c;刷到一个题&#xff0c;链接&#xff1a;https://leetcode-cn.com/problems/permutation-sequence/这个题要求得长度为n的字典序列的第k个排列。我们知道&#xff0c;字典序列是一个长度为n(n>1)&#xff0c;元素为1~n…

MarkDown之typora

windows上面非常适合用typora&#xff0c;地址如下&#xff1a; https://typora.io/

BeetleX服务网关流量控制

为了保障后台服务应用更可靠地运行&#xff0c;网关提供了一些基础流量控制功能&#xff1b;通过这一功能可以限制流转到后台应用服务的处理量&#xff0c;从而让服务在可应对的并发范围内更可靠地运作。服务网关提供了流量控制有基础控制、IP、域名和请求路径。基础配置主要包…

【cocos2d-x】2.0升级为3.0一些常见变化纪录

1.去CC之前2.0的CC**,把CC都去掉&#xff0c;基本的元素都是保留的2.0CCSprite CCCallFunc CCNode ..3.0Sprite CallFunc Node ..2.cc***结构体改变2.0 ccp(x,y) ccpAdd(p1,p2)ccpSubccpMultccpLength(p)ccpDot(p1,p2);ccc3()ccc4()ccWHITECCPointZeroCCSizeZer…

如何查看自己的ubutu系统是32位的还是64位的

1.按ctrlshiftt 快捷键&#xff0c;打开终端&#xff0c;输入sudo uname --m &#xff0c;按下enter2.如果显示i686,你安装了32位操作系统如果显示 x86_64&#xff0c;你安装了64位操作系统3.如果想知道更多信息可以试试如下命令sudo uname --s 显示内核名字ssudo uname --r 显…

Java Web开发——Servlet监听器

一、Servlet监听器的概念 Servlet监听器是Servlet规范中定义的一种特殊类&#xff0c;用于监听ServletContext、HttpSession和ServletRequest等域对象的创建与销毁事件&#xff0c;以及监听这些域对象中属性发生修改的事件。 监听对象&#xff1a; 1、ServletContext&#xff1…

java之MessageDigest简单使用总结

1、说明 MessageDigest是Java自带的类2、简单代码 比如我们需要实现md5,或者sha加密public class MD5AndSHA { public final static String MD5_SHA(String s, String method) { char hexDigits[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f }; try { byte[] str…

通过Dapr实现一个简单的基于.net的微服务电商系统(十九)——分布式事务之Saga模式...

目录&#xff1a;一、通过Dapr实现一个简单的基于.net的微服务电商系统二、通过Dapr实现一个简单的基于.net的微服务电商系统(二)——通讯框架讲解三、通过Dapr实现一个简单的基于.net的微服务电商系统(三)——一步一步教你如何撸Dapr四、通过Dapr实现一个简单的基于.net的微服…

简单直接排序

#!/usr/bin/python #encoding:utf-8 #基本思想:#将一个记录插入到已排序好的有序表中&#xff0c;从而得到一个新&#xff0c;记录数增1的有序表。即&#xff1a;先将序列的第1个记录看成是一个有序的子序列&#xff0c;然后从第2个记录逐个进行>插入&#xff0c;直至整个序…

php怎么关闭oracle连接,PHP 连接 Oracle

起因由于项目的数据库需要用客户购买的Oracle数据库&#xff0c;所以需要php安装oci扩展。运行环境php : 7.2系统: windows10oracle: 11gR2安装相关环境由于php的oci8扩展还是需要使用到oracle的一些包&#xff0c;所以先下载这一些。下载完成后解压缩这个压缩包&#xff0c;并…

MySQL查询,按拼音首字母排序

MySQL按照汉字的拼音排序按照汉字的拼音排序&#xff0c;用的比较多是在人名的排序中&#xff0c;按照姓氏的拼音字母&#xff0c;从A到Z排序&#xff1b;如果存储姓名的字段采用的是GBK字符集&#xff0c;那就好办了&#xff0c;因为GBK内码编码时本身就采用了拼音排序的方法&…

Android Studio之debug调试卡在waiting for debugger界面的解决办法

1、问题 Android Studio debug调试项目卡在waiting for debugger界面2、解决办法 一开始从启adb服务adb stop-server adb start-server 发现没什么用&#xff0c;然后呢&#xff0c;估计是很多app再运行&#xff0c;然后我就重启了Android studio,问题就解决了如果要是万一还不…

.NET 深度指南:Colors

作者 &#xff5c; Peter Huber译者 &#xff5c; 王强策划 &#xff5c; 丁晓昀我不知道你们是什么情况&#xff0c;但我自己在过去多年中都因为.NET 色彩&#xff08;Colors&#xff09;类中可用的色彩数量有限而头痛不已&#xff0c;为此我试图用 ColorPickers 获得匹配的色…

php 怎么打出来的,word书名号怎么打出来

书名号怎么打出来&#xff1f;书名号相信大家都不会陌生了&#xff0c;正常情况下&#xff0c;我们会将书名、歌曲名、作品名等用书名号框起来&#xff0c;这样就可以让读者一目了然。然而很多用户在编辑Word和Excel文档时&#xff0c;想输入书名号却不知从何下手&#xff0c;这…

Android之用UncaughtExceptionHandler实现保存崩溃日志到sdcard目录下的文件夹

1、异常和UncaughtExceptionHandler的介绍 1)、Java异常处理机制中: 如果抛出的是Exception异常的话,需要有try catch进行处理,属于可以捕获exception。 如果抛出的是RuntimeException异常的话,发生异常之后将由JVM进行处理,属于不可捕获exception。 2)、Java 异常的分类…

http://www.appinn.com/bookmark-manager-chrome/

是有多手贱才装了这个。。弄得我的书签全都木有了。。我去。。终于回来了。。感觉太好了。。转载于:https://www.cnblogs.com/aniy/p/4547709.html

springMVC带文件的表单数据无法绑定到参数中

2019独角兽企业重金招聘Python工程师标准>>> 在一个带enctype"multipart/form-data"属性的表单提交时发现&#xff0c;该表单中包含的其他input无法设置到对应方法参数中。 如下&#xff1a; JSP&#xff1a;带enctype"multipart/form-data"属性…

关于Retinex图像增强算法的一些新学习。

最近再次看了一下IPOL网站&#xff0c;有一篇最近发表的文章&#xff0c;名字就是Multiscale Retinex&#xff0c;感觉自己对这个已经基本了解了&#xff0c;但还是进去看了看&#xff0c;也有一些收获&#xff0c;于是抽空把他们稍微整理了下&#xff0c;原始文章及其配套代码…

如何判断 .NET Core 应用程序是以管理员身份运行

有时候&#xff0c;我们需要知道当前程序是否以管理员身份运行&#xff0c;以便执行一些需要特殊权限的操作。在github(https://github.com/dotnet/runtime/issues/25118#issuecomment-367407469)上找到了一个解决方案&#xff1a;//需要引用nuget包Mono.Posix.NETStandard pub…