书写整洁优雅的CSS3代码

标签: clean-css3 (X)HTML/CSS/XML/XSL css3-order css3 | 发表时间:2011-02-20 17:29 | 作者:Leeiio Han
出处:http://leeiio.me

CSS3已经开始被大家广泛的运用到产品中的页面代码中去,CSS3带来的革新式的变化我在这里就不一一细说了。不过因为目前的CSS3还处在草案阶段,所以绝大部分的浏览器(除了opera应该是)都是使用的私有属性的方式来实现对CSS3的支持。比如firefox的-moz-前缀和webkit核心浏览器的-webkit-前缀等。

整洁优雅的代码能提高生产效率,特别是在团队合作中。我想很多人都习惯把css代码写成一行的形式,诸如这样:

.main{width:960px;margin:0 auto;}
.sidebar{width:233px;float:left;}
.sidebar ul li{float:left}

采用这样的一行形式,能让你们整齐的排列相似父辈继承的样式,让他们很简单的能被查找到。当然为了更好的查找到代码,你们可能还需要一个注释。

/*
something u want to say --------------------------------------------------*/
.main{width:960px;margin:0 auto;}
.sidebar{width:233px;float:left;}
.sidebar ul li{float:left}


然后这时候我们想给sidebar加一个5像素的圆角,于是

/*
sidebar border-radius {3px} --------------------------------------------------*/
.main{width:960px;margin:0 auto;}
.sidebar{width:233px;float:left;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;}
.sidebar ul li{float:left}

这样你可能还不会觉得有什么,因为只是加了border-radius,如果我们继续加个box-shadow呢?

/*
sidebar border-radius {3px} --------------------------------------------------*/
.main{width:960px;margin:0 auto;}
.sidebar{width:233px;float:left;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;box-shadow:1px 1px 5px #rgba(0,0,0,0.1);-moz-box-shadow:1px 1px 5px #rgba(0,0,0,0.1);-webkit-box-shadow:1px 1px 5px #rgba(0,0,0,0.1);}
.sidebar ul li{float:left}

是不是看起来挺崩溃的,这不是坑爹么…sidebar的样式看起来糊成一团了,这些css3代码和普通的css代码混在一起十分难受…

于是这样同样有代码洁癖的老外童鞋给出了一种他的解决方案,请看

/*
sidebar border-radius {3px} --------------------------------------------------*/
.main{width:960px;margin:0 auto;}
.sidebar{width:233px;float:left;
	border-radius:3px;
	-moz-border-radius:3px;
	-webkit-border-radius:3px;
	box-shadow:1px 1px 5px #rgba(0,0,0,0.1);
	-moz-box-shadow:1px 1px 5px #rgba(0,0,0,0.1);
	-webkit-box-shadow:1px 1px 5px #rgba(0,0,0,0.1);
}
.sidebar ul li{float:left}

这样来区分开css3代码是不是整洁多了!

引申话题,该同学blog底部还就css3的样式顺序发表了观点,到底是私有属性-moz-border-radius放前面还是标准的border-radius放前面,这里有一篇来自CSS3-TRICKS的《Ordering CSS3 Properties》阐述了为什么私有属性要放在标准的前面,把标准的放在最底下。

那么最终的代码就是这个样子的

/*
sidebar border-radius {3px} --------------------------------------------------*/
.main{width:960px;margin:0 auto;}
.sidebar{width:233px;float:left;
	-moz-border-radius:3px;
	-webkit-border-radius:3px;
	border-radius:3px;
	-moz-box-shadow:1px 1px 5px #rgba(0,0,0,0.1);
	-webkit-box-shadow:1px 1px 5px #rgba(0,0,0,0.1);
	box-shadow:1px 1px 5px #rgba(0,0,0,0.1);
}
.sidebar ul li{float:left}

不知道大家有没有什么不同的代码书写风格,希望能在评论中得到不同的见地。

PS:为什么我不喜欢把每个样式都单独分成一行?因为…我觉得这样的代码可读性真是太差了,试想,一个类样式占了10多行…

本文地址:http://leeiio.me/writing-clean-css3-code/

截至您的阅读器抓取时已有评论 38 条,大家讨论的如此激烈,你为什么不过去瞧瞧?!
©Copyright 2007-2011 Leeiio Chaos Made http://Leeiio.me
本站更換RSS地址:http://feed.leeiio.me,麻煩大家更新下,謝謝!

声明: 本站遵循 署名-非商业性使用-相同方式共享 3.0 共享协议. 转载请注明转自 Leeiio.me

相关 [书写 css3 代码] 推荐:

书写整洁优雅的CSS3代码

- Han - Leeiio™ Chaos Made.
CSS3已经开始被大家广泛的运用到产品中的页面代码中去,CSS3带来的革新式的变化我在这里就不一一细说了. 不过因为目前的CSS3还处在草案阶段,所以绝大部分的浏览器(除了opera应该是)都是使用的私有属性的方式来实现对CSS3的支持. 比如firefox的-moz-前缀和webkit核心浏览器的-webkit-前缀等.

CSS3 代码生成工具:Create CSS3

- - 我爱水煮鱼
CSS3 具有相当多的新增属性,而且包括阴影、动画、过渡等华丽的效果. 但是由于 CSS3 出来并没有很久,各个浏览器厂商还在开发中,有些属性仍然会带有实验性前缀. 而且类似制作动画、渐变的 CSS3 代码也相当复杂,一旦写错就会导致出现问题. 为此,有人开发了一个生成 CSS3 代码的工具 Create CSS3.

代码检测HTML5/CSS3新特性的浏览器支持情况

- - 极客521 | 极客521
伴随着今年10月底HTML5标准版的发布,未来使用HTML5的场景会越来越多,这是令web开发者欢欣鼓舞的事情. 然而有一个现实我们不得不看清,那就是IE系列浏览器还占有一大部分市场份额,以IE8、9为主,windows8.1的用户已经用上了IE10/11,而考虑我国的国情,IE6、7依然存留不少.

【前端集锦】推荐十款精心挑选的在线 CSS3 代码生成工具

- - 博客园_梦想天空
  今天这篇文章向大家推荐十款非常有用的在线. CSS3 代码生成工具,这些工具能够帮助你方便的生成 CSS3 特效. CSS3 是对 CSS 规范的改善和增强,增加了圆角、旋转、阴影、渐变和动画等众多强大的特性,它使得 Web 开发人员可以很容易的在网站中加入时尚的效果. JavaScript 才能实现的效果,如今只需几句简单的.

css3 变形

- - 博客园_Ruby's Louvre
CSS3从IE滤镜偷窍过来的创意,但易用性明显提高了许多. 利用这个,我们可以对某个元素进行旋传,缩放,倾斜与位移,并且区分元素类型,无论对块状元素还是内联元素都有效. rotateX(angle) 单独设定 rX 轴的角度. rotateY(angle) 单独设定 rY 轴的角度. rotateZ(angle) 单独设定 rZ 轴的角度.

CSS3 文字渐变

- slackware - 前端观察
之前,我们有发表过CSS文字渐变效果,但是其实那并不是纯粹的基于CSS的渐变,它需要一张半透明渐变的png图片. 今天我们将介绍两种使用CSS3实现实现文字的方法. 嗯,只有webkit浏览器支持,请暂时无视其它浏览器. 在《CSS的未来:一些试验性CSS属性》中,我们提到了这个属性,相对于Firefox只能用svg做mask,webkit则灵活很多,图片和css3渐变均可.

用css3写个logo

- 丸子 - 崔凯,前端开发
演示地址:http://uicss.cn/css3/maxthon-logo.html. 先画一个外框 width: 240px; height: 240px;border-radius: 120px;. 填充背景色background:#b1e4ff;. 描边border:2px solid #789cb6;.

CSS3 pointer-events介绍

- Pstrey - 前端观察
其实早知道这个属性,但是一直没有去研究过. 今天正好在twitter看到这个词,就去研究了下,正好解决了目前遇到的一个小难题,所以分享下. 嗯,其实这是个比较简单的CSS3属性. 在某个项目中,很多元素需要定位在一个地图层上面,这里就要用到很多绝对定位或者相对定位的元素,但是这样的话,这些浮在上面的div或者其它元素一般都会给个宽高,或者relative的元素可以不给宽高,这个时候,这些元素就会盖住下面的地图层,以至于地图层无法操作.

HTML5 & CSS3 研究文档

- Kings - 幸福收藏夹
已经说了好久,一直没把这个文件夹分享出来. 这是我去年第四季度里做的,里面有 11 一个文档. 包括 HTML5 中最主要的 JS API 文档,还有 CSS3 中两个比较难的属性. 主要还停留在纯 API 层面上的研究,没有深入到应用中去. 不过,当做工具来使用,和入门文档,还是不错的. 特别是其中的 HTML5 JS API 文档.

纯CSS3透明水晶盒

- iVane - 前端观察
相信大家有看过这个例子:3D盒子,在书《CSS3 实战》上第282页有个综合实战“设计动态立体盒子”的例子,实现方式跟它一样,我的盒子也是以它为原型来设计的,不过在实现方面有做修改、优化,以及增添了一些细节,下面是我的盒子Firefox截图:. 透明化了盒子,通透性强了,因为透明了,所以背部的三个面也就要做出来了,所以总共6个面,比原作多3个;.