前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >css推荐写法

css推荐写法

作者头像
天天_哥
发布2018-09-29 14:43:49
9300
发布2018-09-29 14:43:49
举报
文章被收录于专栏:天天天天
1. tab键用四个空格代替

为了代码美观,易于观看

2. 每个样式属性后加 ";"

为了书写的一致性,还有就是避免出现不必要的问题

3. Class命名为了语义化中出现多个单词,采用” - “分隔
代码语言:javascript
复制
 /* 正确的写法 */
 .big-title {
     font-weight: bold;
 }

用"-"隔开比使用驼峰是更加清晰。产品线-产品-模块-子模块,命名的时候也可以使用这种方式

4. 空格的使用,以下规则必须执行:
代码语言:javascript
复制
 .box {
     width:200px;
     height:100px;
 }

选择器与 { 之前(必须)要有空格 属性名的 : 后(必须)要有空格 属性名的 : 前(禁止)加空格 一个原因是美观,其次IE 6存在一个bug, 戳bug

5.多选择器规则之间换行

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

代码语言:javascript
复制
 /* 推荐的写法 */
 a,
 input,
 input[type="submit"] {
    outline:none
 }
6. 禁止将样式写为单行
代码语言:javascript
复制
.hotel-content {margin: 10px; background-color: #efefef;}

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

7. 禁止向 0 后添加单位

前端高质量代码一书中提到过

代码语言:javascript
复制
.obj {
    left: 0px;
}
8. 禁止使用css原生import

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

Don't use @import

9. 属性的书写顺序推荐, 如:
代码语言:javascript
复制
.selector {
      /* Positioning */
      position: absolute;
      z-index: 10;
      top: 0;
      right: 0;
    
      /* Display & Box Model */
      display: inline-block;
      overflow: hidden;
      box-sizing: border-box;
      width: 100px;
      height: 100px;
      padding: 10px;
      border: 10px solid #333;
      margin: 10px;
    
      /* Color */
      background: #000;
      color: #fff
      
      /* Text */
      font-family: sans-serif;
      font-size: 16px;
      line-height: 1.4;
      text-align: right;
    
      /* Other */
      cursor: pointer;
      
    /*定位相关, 常见的有:display position left top float 等
    盒模型相关, 常见的有:width height margin padding border 等
    其他属性 ,按照这样的顺序书写提升浏览器渲染dom的性能*/
}

摘自

简单举个例子,网页中的图片,如果没有设置width和height,在图片载入之前,他所占的空间为0,但是当他加载完毕之后,那块为0的空间突然被撑开了,这样会导致,他下面的元素重新排列和渲染,造成重绘(repaint)和回流(reflow)。我们在写css的时候,把元素的定位放在前头,首先让浏览器知道该元素是在文本流内还是外,具体在页面的哪个部位,接着让浏览器知道他们的宽度和高度,border等这些占用空间的属性,其他的属性都是在这个固定的区域内渲染的,差不多就是这个意思吧~

10. 小图片或者icon使用sprite 合并

推荐文章:NodeJs智能合并CSS精灵图工具iSpriter

11. (推荐)当编写针对特定html结构的样式时,使用元素名 + 类名
代码语言:javascript
复制
/* 所有的inner都是针对div编写的 */
 div.inner {
     ......
 }

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

12. 推荐IE Hack List
代码语言:javascript
复制
 /* 针对ie的hack */
 selector {
     property: value;     /* 所有浏览器 */ 
     property: value\9;   /* 所有IE浏览器 */ 
     property: value\0;   /* IE8 */
     +property: value;    /* IE7 */
     _property: value;    /* IE6 */
     *property: value;    /* IE6-7 */
 }

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

13. 禁止使用行内样式
代码语言:javascript
复制
<p style="font-size: 12px; color: #FFFFFF">hello world</p>

像这样的行内样式,最好用一个class代替,尽量做到样式和结构分离~

14. 推荐normalize.css样式重置

github地址

15.禁止使用通配符"*"来选择所有元素
代码语言:javascript
复制
/*别这样写*/
* {
    margin: 0;
    padding: 0;
}

这样写是没有必要的,一些元素在浏览器中默认有margin或padding值,但是只是部分元素,没有必要将所有元素的margin、padding值都置为0,包括我们页面都没使用到的元素,这样对性能有影响,而且一个网页能用到的标签都是有限的,使用*有点杀鸡用牛刀的意思,还有就是等到哪个元素需要padding或者margin的时候还得给加上去,对性能都是不好的。

16. 链接的样式,务必按照这个顺序来书写
代码语言:javascript
复制
1. a:link
2. a:visited
3. a:hover
4. a:active
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.07.25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. tab键用四个空格代替
  • 2. 每个样式属性后加 ";"
  • 3. Class命名为了语义化中出现多个单词,采用” - “分隔
  • 4. 空格的使用,以下规则必须执行:
  • 5.多选择器规则之间换行
  • 6. 禁止将样式写为单行
  • 7. 禁止向 0 后添加单位
  • 8. 禁止使用css原生import
  • 9. 属性的书写顺序推荐, 如:
  • 10. 小图片或者icon使用sprite 合并
  • 11. (推荐)当编写针对特定html结构的样式时,使用元素名 + 类名
  • 12. 推荐IE Hack List
  • 13. 禁止使用行内样式
  • 14. 推荐normalize.css样式重置
  • 15.禁止使用通配符"*"来选择所有元素
  • 16. 链接的样式,务必按照这个顺序来书写
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档