- 浏览: 16496 次
- 性别:
- 来自: 杭州
-
文章分类
最新评论
本规范概述
制定本规范的目的在于使我们的CSS代码更加易于维护和重用,从而提升效率执行本规范时建议的流程 建议使用D(esign)C(oding)D(ebug)V(alidate)R(oundup),即DCDVR的流程。首先需要规划样式并分为共有样式和页面个性化样式,然后才开始编码,编码的同时进行Debug,Validate和代码片断的总结,而不是在所有模板都完成后才进行这三个步骤。
一、关于样式库构建规范
详见:http://aliceui.com/alice-css-guide/
二、selector 命名规范:
- 命名除 .fn- / .ui- / .sl- 外,可自定义命名。请慎用 selected current disabled first last success error
- 一般情况下,如果命名比较通用,比如 current,请限定在相应的上下文环境中。比如其父节点ID为#parent 等比较通用的命名,建议写成 #parent .current{},而非 .current{},即使是为了重用,也应该注意。只有在非常明确不会影响到其他组件工作,并且其他人不会写这种命名的情况下,才让它变成全局通用的。
- 作为JS接口的class或者ID,必须是以 J- 前缀开头的。除 JS 接口命名外,其他命名一律使用小写字母
三、注释:
-
组件注释:
/** * @name: 组件名 * @overview: 组件介绍 * @require: 依赖的样式 * @author: 小鱼(sofish@163.com) */
- 块状或行内元素,都请使用
/* comment */
注释,注释文字前后端保持各有一个空格 - 为了您的体验着想,一目了解的代码,就不要注释了,比如 “display:none; /* 让元素看不见 */” 工作还有很多啊,同学,请为了自己的体力着想。
四、CSS文件
- 文件编码必须使用utf-8(无BOM)
- 文件一律通过 link 链入 (NOT @import)
- 当只是单个页面使用时,才写在 <head> 的 <style> 中
五、Hack 规则
- 一般情况下,不要使用 IE 条件注释: <!–[if IE]><![endif]–>
-
通用 Hack
.all-IE{property:value\9;} :root .IE-9{property:value\0/;} .gte-IE-8{property:value\0;} .lte-IE-7{*property:value;} .IE-7{+property:value;} .IE-6{_property:value;} .not-IE{property//:value;} @-moz-document url-prefix() { .firefox{property:value;} } @media all and (-webkit-min-device-pixel-ratio:0) { .webkit{property:value;} } @media all and (-webkit-min-device-pixel-ratio:10000),not all and (-webkit-min-device-pixel-ratio:0) { .opera{property:value;} } @media screen and (max-device-width: 480px) { .iphone-or-mobile-s-webkit{property:value;} }
-
当然,强烈建议你使用更优雅的hack方式。那就是避免hack。或者在书写上,做点小trick。比如:
.selector .child{property:value;} /* for ie-6 */ .selector > .child{property:value;} /* except ie-6 */
- 关于Hack: 在firefox写完,IE有问题?还是其他浏览器也出现了。你知道IE Hack 能解决。我想,你也可能知道,用其他方法也能绕过。建议少用Hack。
六、书写规范:
1. 以如下写法为例:
第一种方式:(强烈推荐) /* 区域模块-1 */ .tech, .ued{ background:#f60 url(alipay.com/orange.png) no-repeat 0 0; } /* 区域模块-2 */ .tech{ width:950px; margin:0 auto; } .tech .wd{ width:620px; float:left; }
第二种方式:(如果让其他人看,请先格式化) /* 区域模块-3 */ .ued{width:100%;padding:30px 50px;} .ued .visual{display:inline-block;font:700 normal 12px/1.5 arial;}
2. 非常重要,需要你注意的点:
-
- 区域模块间用空行分隔
- 多个选择器写一起时,逗号(,)后紧跟一个空格
- 避免行内样式,即使是JS,也应该尽量使用class/ID来决定显示,而非行内样式
- 避免使用低效选择器(所以,别滥用class;当然,不滥用ID我相信你是知道的)详见:http://code.google.com/speed/page-speed/docs/rendering.html
-
尽量使用缩写,比如 font:700 normal 12px/1.5 arial; 一般不要写成
font-style:normal; font-size:12px; line-height:1.5; font-family:arail;
通常需要使用缩写规则的:
padding: toprightbottomleft; padding: top-bottomright+left; padding: topleft-rightbottom; padding: top-right-bottom-left; 如:padding:1px 2px3px4px; margin: 同上 如使用像`red`这样的颜色名,采用小写;16进制写法使用大写;写3位,还是6位,自便: color: red; color;#FFF; color:#ABCABC background: colorimageUrlrepeatattachmentposition; 如:background:#ddd url(alipay-wd.png) no-repeatscroll10px20px; border: sizestylecolor; 如: border:1px solid#ddd; font: weightvariantstylesize/lineHeightfamily; 如 font:700 small-capsitalic12px/1.5 "Courier New"; font-weight统一用 500代替 normal, 用 700代替 bold; list-style: typepositionimage; 如:list-style: squareinsideurl(alipay-wd.png);不过,通常我们要使用的是 list-style:none;
-
CSS3 书写规范:浏览器私有写法在前,标准写法在后
-moz-box-shadow: 1px2px3px#ddd; -webkit-box-shadow: 1px2px3px#ddd; box-shadow: 1px2px3px#ddd;
-
1.书写顺序
不强制书写顺序。但我们应该养成良好的习惯,让看代码的人更易理解。易读对于团队协作来说是非常重要的:1. 框架为先,细节次之比如写一个浮动容器的样式,我们应该先让这个容器的框架被渲染出来,让大家看到基本的网站框架。然后再再去渲染容器里面的内容。最终呈现给用户. 通常像 color font padding 之类的,写在后面。
.selector{float:left;width:300px;height:200px;font-size:14px;color:#f36;}
-
2. 有因才有果
比如想使用”图片替换文字“技术,通常要使用的text-indent。如果我们使用标签的是 span:<span class="thepic">这个文字将被图片替换</span>我们应该是先将 span 变成”块级元素“(使用 display:block,虽然他永远不是块级元素),再将文字 indent。而不是先 indent 再变成块级的:
.thepic{display:block;text-indent:-9999em;}
又如我们,如果想让一个 span 使用 margin, 那么我们应该这样写:span{display:block;margin-bottom:10px;} 而非 span{margin-bottom:10px;display:block;}。因为没有 display 之前,行内元素是没有 margin 的。
- 应该尽量避免使用 AlphaImageLoader
- 可以适当在投影/发光/渐变/去色方面上使用
-
我们是这样重用的:
<div id="module-1" class="module"> <h3>TITLE</h3> <p class="module-item"> some text </p> </div> <div id="module-2" class="module"> < h3>TITLE</h3> <p class="module-item"> some text </p> </div>
/* module, reuse style in module scrope*/ .module{} .module-status{} .module-item{} .module-status .module-1-item{} /* customize */ #module-1 .module-item{} #module-2 .module-item{}
-
HTML 的模块化:我们应该这样写(他们的视觉是一体的,代码也应该是一体的):
<div id="module-1" class="module"> <h3>TITLE</h3> <p class="module-item"> some text </p> </div> <!-- #module .module -->
而不是这样写:
<h3>TITLE</h3> <!-- 第一块 --> <div id="module-1" class="module> <p class="module-item"> some text </p> </div> <!-- 第二块 -->
- 一般我们都会写: background:url(path/to/image) no-repeat 0 0;
- 当元素背景是深色的时候,比如#000,我们通常会选择一种比较浅的颜色来做为文本的颜色,比如#fff,为了避免网速缓慢导致CSS已经 加载,而图片仍未加载完成或图片服务器挂掉时文本不可见,请尽量使用加上CSS定义的背景颜色,如:background:#e8edef url(path/to/image) no-repeat 0 0;
七、IE私有特性
1. expression
记住一句话:无论什么时候,都不要使用它。用 Javascript 吧。更优雅,更灵活。
2. filter
3. IE bug
常见BUG,详见:http://sofish.de/1400
八、如何规划你的 CSS 文件结构
1.一定要有全局设置
全局设置可以避免重复书写同样的东西。比如3人在一个项目中,假设项目中涉及到的链接有 10 种颜色,如果有全局重设,我们就可以统一设置颜色。如果没有,我们可能每个都会为自己所负责部分的链接定义相应的颜色。这样一来就导致多处定义,且定义不统一。以后维护需要到各个地方都改。这是很麻烦的事。另外就是css文件也会因此变大。所以,在写之前,大家应该先分析视觉稿,统一全局设置。
/* global reset */ body{padding:0;margin:0;font.....} a{color:#07f;} a:hover{color:#555;}
需要注意的是,一般情况下,不要直接给标签写样式。而应该使用 class。像下面这种写法,并不是很合适:
h1{font-size:30px} h2{font-size:20px} h3{font-size:10px;}
如果有另外一个 h2 也要使用 10px 的,而其他的都仍使用 20px 的,那可就不好办了。所以,推荐用这种方法:
/* global classes */ .text-size30{font-size:30px;} .text-size20{font-size:20px;} .text-size10{font-size:10px;}
<h2 class="text-size20">… <h2 class="text-size10">…
2.一定要模块化
有两点需要注意的,一是,注意代码重用的模块化;一是,注意 HTML 结构的模块化,而不是分块。
九、值得注意的事
1.Background Color:
2. has Layout
别用轻易使用hack,IE下很多兼容性问题都是 has Layout 引起的。试着给元素加上:
display: inline-blockheight: (除 auto外任何值) width: (除 auto外任何值) float: (left或 right) position: absolutewriting-mode: tb-rlzoom: (除 normal外任意值)
3. 代码测试:
一般情况下,我们需要测试通过的是电脑端的A-Grade浏览器:
Win XP Win 7 Mac 10.6.† iOS 3.† iOS 4.† Android 2.2.† | |||||
A-grade | |||||
A-grade | |||||
A-grade (upon GA release) | A-grade (upon GA release) | ||||
A-grade | A-grade | A-grade | |||
A-grade (upon GA release) | |||||
A-grade | A-grade | ||||
A-grade | |||||
A-grade | |||||
A-grade | A-grade | ||||
A-gradea |
更多关于这个列表的资料,请看:http://developer.yahoo.com/yui/articles/gbs/
发表评论
-
(转) 标签?ID?还是CLASS?
2012-12-01 11:01 671(转)http://www.qianduan.net/labe ... -
(转)从事前端开发必须要了解的CSS原理
2012-11-14 09:03 582(转)http://www.open-open.c ... -
(转)扩展 Twitter Bootstrap 的JavaScript插件
2012-11-08 08:52 1259(转)http://news.open-open.com/vi ... -
(转)8 个很有用的免费 CSS 的 UI 工具箱
2012-11-03 22:08 672文章转载自:开源中国社区 [http://www.os ... -
(转)爱上朴实的CSS细节
2012-11-03 13:36 671英文原文:Learning to Love the Bo ... -
(转)从事前端开发必须要了解的CSS原理
2012-11-03 13:32 703从事Web前端开发的人都与CSS打交道很多, ...
相关推荐
CSS规范常见问题的解决方法
以下是从标题“一些很标准的css规范”及描述“一些css规范,方便你写css,了解css”中提炼出的关键知识点,旨在帮助开发者更好地理解和应用CSS规范。 ### CSS命名规则 1. **选择器名称**:应采用小写字母(a-z),...
【CSS规范文档】是指导Web前端开发者遵循的一套标准规则,旨在提高开发效率,确保代码质量和易维护性。规范的核心原则是遵循Web标准,实现语义化的HTML,将结构、表现和行为分离,并保证良好的浏览器兼容性。以下是...
此外,京东的CSS规范可能包含对代码可读性的要求,比如合理的缩进、注释和命名约定。在布局方面,可以利用浮动(float)、定位(positioning)或更现代的Flexbox和Grid布局来实现京东页面的复杂布局。同时,要掌握...
以下是对《CSS规范手册》的详细解读: **一、CSS书写顺序** 1.1 CSS书写顺序通常按照功能模块来组织,先定义元素的基本显示属性,如`display`、`position`、`float`和`clear`,接着处理盒模型相关的属性,包括`...
NEC(可能指的是某种特定的命名规范或标准)规范下的CSS框架文件,则更强调遵循一定的规则和一致性,以提高代码质量和维护性。 在《nec规范之css框架文件》这篇博文中,作者详细探讨了如何在CSS框架中应用NEC规范。...
css规范和属性速查手册,网上有很多版本,但是我建议大家到真正的原翻译者的网站,Taylor Ren,W3C的CSS2多语言翻译计划中文组的成员,这个资源就是他最新翻译的CSS2规范中文版。规范是最严谨、标准的手册,一切答案都...
### DIV+CSS规范命名大全集合 #### CSS规范命名与实践指南 在网页设计与开发过程中,DIV+CSS的布局方式已经成为了业界的标准做法之一。合理的命名规则不仅能够提高代码的可读性和可维护性,还能有效提升团队协作...
CSS 命名规范(英文命名) CSS 命名规范是指在 CSS 文件中统一命名的规范,以便提高代码的可读性和维护性。以下是 CSS 命名规范的详细说明: 文件命名规范 在 CSS 中,文件命名是非常重要的。以下是一些常见的...
在Web前端开发中,CSS(层叠样式表)命名规范是至关重要的,它不仅有助于代码的可读性和可维护性,还能提升团队协作的效率。本文将深入探讨CSS命名规范及其重要性,并结合HTML和CSS的基础知识,为前端开发者提供一份...
CSS 命名规范和 CSS 书写规范 一、CSS 命名规范 CSS 命名规范是指在编写 CSS 代码时,遵守一定的命名规则,以便于代码的阅读、维护和重用。下面是一些常用的 CSS 命名规范: * 文件命名规范:global.css、layout....
在CSS开发中,保持良好的命名规范对于代码的可读性和维护性至关重要。以下是一些关于CSS命名规范的关键点,这些都是基于个人经验的总结: 1. **大小写规则**:推荐使用小写字母来编写CSS选择器,这符合CSS标准且...
《前端CSS规范整理》 前端开发中,CSS的组织和编写规范对于代码的可读性、维护性和团队协作至关重要。本文主要围绕文件规范、注释规范以及命名规范三个方面,梳理了前端CSS规范的重要内容。 一、文件规范 1. 文件...
### 豆瓣CSS规范详解 #### 一、引言 随着前端技术的不断发展与进步,CSS作为网页表现层的核心语言之一,在实现丰富的视觉效果和交互体验方面扮演着至关重要的角色。为了确保代码的一致性、可维护性和易读性,制定...
解决CSS样式不规范问题, 使用该工具可以将排版很乱的CSS样式表进行规范化 1.直接打开Debug目录下的 StartChange.exe 2.点击'打开文件' 选择要转换的css文件 3.点击生成, 提示成功后,在源文件路径下新增了一...
在CSS编码过程中,遵循一定的书写规范和顺序至关重要,这不仅有助于提高代码的可读性和维护性,还能确保团队协作时的统一性。以下是对标题和描述中提到的CSS书写规范和顺序的详细说明: **CSS书写顺序:** 1. **...
HTML/CSS代码开发规范文档
一份良好的编码规范有助于团队的高效执行,本资源介绍了常见的 CSS 编码中遇到的问题,以及给出的标准建议,命名规范,书写规范,属性、值与单位规范等
【CSS规范】是一份指导前端开发者编写高效、可维护、具有良好兼容性的CSS代码的重要文档。以下是对这份规范的详细解读: 1. **规范目的**: CSS规范的主要目的是提高团队协作效率,确保代码的可读性和可维护性,...