想成为一名css专家,仅仅熟练使用CSS选择符(selectors)是远远不够的。还在于对工作的整体规划,工作流程的把握以及提高样式表的可维护性和效率。在这篇文章里Jina Bolton从12个顶尖设计师那里精选出了10种css应用技巧推荐给大家。
最近,我一直在研究如何创建更具吸引力的样式表的方法。用css可以创建出我们想要的美妙绝伦的网站,而写css本身就是一种享受。
如何创建更具吸引力的样式表?你的样式表应该具有哪些特性?
几个月前,我有幸出席了在美国俄勒冈州波兰特举办的2007年网页视觉大会。为了这次盛会,我研究了12位在网页设计开发方面做出杰出贡献的设计师。这次研究的结果,结合我自己工作经验帮助我总结出一套制作精美样式表的好方法。
01.不要让css有过多的标记
链接或者导入样式表听起来似乎是一种无头绪的工作。但是我想要强调为什么这个那么重要。我看过很多的网站开发都有着整洁的、组织严密的css文档,但是慢慢的,由于可能达不到在短期内快速更新,或者直接懒得再去治理,这使得先前创建的精致的样式表变成了垃圾。
想象一下,你工作在需要发布上百条内容的庞大网站上面。因为时间有限,所以你需要通过嵌套或者排列css来进行快速修改或更新。一年一年的过去了,这种习惯维持着,直到一天你被告知这个网站要完全推翻重新设计(但是内容还是一样)而且你只有一周的时间去创建(包括测试)。
通常,更新样式表还算是一个非常简单的方法。除非你长时间对网站零散的区域做修改。你就不能对网站样式表结构有一个整体的把握。所以现在你有两个办法a把所有的内容进行整理,然后再一个月内重新设计(祝你好运)b 去找一份新工作。
不要让你的工作变成这个样子。链接或者导入你的样式表不是那样随意的事情。创建干净整洁的样式表,并保持下去,你的工作就会更开心。
注重:不要在你的样式表里加入太多标记。假如你试图在每次更新或者添加新内容的时候创建新的样式表,那你肯定是自找麻烦。过多的链接和导入样式表会使消除bug工作变得异常困难,让你的样式表很难维持。大一点的网站分别建立不同部分的样式表这是可以理解的。就是小心不要太走极端。
比较值得一提的是添加很多的样式表,会增加更多的http请求,可能还会影响到后面的工作。此外,微软ie6浏览器对32连接式样表还有一定的限制。.
02.语义不仅仅只是个行业词 要知道我不得不把它提上来说,语义会成为你的好朋友,除了选择最合适的,最有意义的元素来表述你的内容外,还要确定你选择class 和id属性值。在本职工作外,还会让你的生活变得简单(这也会让你工作团队里伙伴的生活变得简单----假如你在一个团队中工作的话)。看看下面的定义:
.l13k { color: #369; }
假如你刚来参加工作,你看到在这个css文件里,你会马上找到这个class吗?估计不太可能,因为这个类的名称可能是一种缩写,所以这里没有一个准确的方法能够让你立即说出来。或者可能是你把它放在那里,今天你知道它的意思,但是你能保证过了很多年后还知道它的意思吗?
现在,让我们来看看这个定义:
.left-blue { color: #369; }
你可能立即很明确的知道这个class选择符的用途就像你知道左边栏蓝色的模块在那里一样,所以这就表明它起作用了。我前面提到,可能你在一星期的时间需要重新设计。在重新设计的时候,这个模块被放置到了右边,而且还是红颜色。这个类就不再有存在的价值了。所以现在不得不选择,要么改变所有的属性值,要么放着它不动。(这可能导致更多的混乱。)
最好不要在你的类属性里面去加入颜色或者长宽的尺寸。你应该避免任何的属性值都是直接的词汇。(比如box)直接属性可以会导致内容的分离。
最后,让我们来看看更恰当的命名规范:
.product-description { color: #369; }
这里你可以看到。用这种样式定义的product-description(产品描述),不管你怎么改变,都很清楚。
03.加注释的好处 假如你的注释组织良好,且在css的控制范围,清楚的标注每节(section)。最好确保注释视觉突出,以便在内容滚动、一目十行时快速定位,那么注释你的css文档对你或者其他人在以后的开发中都会有很大的帮助。大部分基础的注释会提示为什么这个规则会用在这里。
提示和注重 添加注释可以帮助你或者以后的开发者避免出现不必要的混乱。保持这种习惯。看范例:
/* Turn off borders for linked images */
img { border: 0; }
时间和署名 一些设计师和开发人员喜欢在css文档最近更新中标明日子和时间,还有他们的名字和初始状态。这些信息可以提供给你谁参与了这些,也提示了最近的文档是怎样的。
/* Sushimonster Typography Styles
Updated: Thu 10.18.07 @ 5:15 p.m.
Author: Jina Bolton
----------------------------------------------------*/
这是个很好的主意非凡是当你工作在一个团队中,请记住,有些团队需要省去这种信息(一些公司宁愿在文档里不出现这些名字和日期。)所以,最好就是看一下是不是需要这种信息。
组织分类
用注释简单说明css里的各个部分是个不错的主意。例如,假如所有的标题类型都放在一起了,你就需要注视来区分他们。
/* HEADER
----------------------------------------------------*/
我会稍后在讨论“区分不同类型”的时候具体地说明这个。
注释加标 假如你的css文档在组织零散样式的时候跟我上面说的一样,注释加标可以帮助你在你想要找到那部分文件的时候变得更简单。你可以用特征符号、要害词然后找到最终结果。
/* =HEADER
----------------------------------------------------*/
这在又长又复杂的样式表中很有帮助。你可以在 Stop Design里读到这个。.
参考 假如大家在制作样式表的习惯上有所不同,用注释作为参考向导还是很有用的。这个你在Steve Smith’s的css文件中,看到的就是包含一个规定色彩的参考标准。
/* COLORS
Body Background: #2F2C22
Main Text: #B3A576
Links: #9C6D25
Dark Brown Border: #222019
Green Headline: #958944
*/
你可以把这个参考放在你css文档的最上面去帮助你记住什么颜色在你网站中用过。另外在这里你可以定义不同的部分,马上找到他们(也可以用注释加标)这就是那个例子
/* GENERIC
HEADER
SIDEBAR
FORMS
TABLES
FOOTER
*/
/* =GENERIC
----------------------------------------------------*/
04.知道什么时候添加有条件的注释和运用技巧。
很多文章写过一些关于问题解决的技巧,有条件的注释是控制ie发布的一个好方法。然后文章又说了其他的一些方面。我同意有条件的注释比在你的css文档里乱丢垃圾要好得多,但是最近我开始慢慢意识到,很多证据表明,这并不是最好的解决办法。
想象一下。你想在一个元素中设置它的最低高度,但是ie6浏览器却不执行它,所以你知道你能够使用的高度,也同样会被同样的处理。重新建一个样式表,然后把有条件的注释加入到你的标识中,你所有的需要都是要遵循这个规定?保持最低的高度和高度的规则在一起,选择一个小技巧在同样的css文档里,这样会更好吗?在这种情况下,我觉得用这种方法很难奏效。
另外一件需要考虑的事情就是:假如你风格的定位是多样的,过多的css文档和有条件的注释会让你的调试过程异常痛苦。所以,你需要改变一些事情(可能是上述表述中最低高度的值),你不得不打开不止一个文档来做这个修改。在很多情况下,这对你来说可能不是件大事,但是想象,假如你定义了一些事情,在你主要的css文档中,然后还要重新定义三个不同的ie样式表。
假如你确定要用有条件的注释,我推荐把注释留一份在你主要的样式表里,让你或者下一位开发者知道这是ie非凡规则的存在。这种方法就是当你不得不编辑一个高度或者别的东西的时候。你知道又会有不止一个文档开着。
假如你确定要使用技巧,记得更新浏览器能够改变接下来的工作,这次技巧的使用对于后面的版本控制也起不到作用。
05.组织选择及声明
要一直一直的保持你的css有规则,有组织性。最好把你的选择符进行归类。
• reset styles
• typography styles
• layout styles (header, content, footer, etc.)
• module or widget styles
• etc.
然后,在每一个组里面,通过dom层组织选择符。
• any parent styles (containing elements, working outside-in)
• block-level element styles (paragraphs, lists, etc.)
• inline element styles (links, abbreviations, etc.)
• etc.
其次在这里面,根据元素的类型工作:
• paragraphs
• blockquotes
• addresses
• lists
• forms
• tables
• etc.
最后,把css的声明也按上述进行归类。
• positioning (with coordinates) styles
• float/clear styles
• display/visibility styles
• spacing (margin, padding, border) styles
• dimensions (width, height) styles
• typography-related (line-height, color, etc.) styles
• miscellaneous (list-style, cursors, etc.) styles
有些人喜欢按照字母顺序来组织。这对我没有任何用处,但是可能会对你有帮助。不管你选择什么样的方法,一定要坚持下去。