网页设计 » 讨论区 » 网页设计 » CSS样式表缩写介绍

中国著名设计公司早晨设计视觉同盟-中国创意设计人才网洛可可设计公司 - 国际认可的中国设计品牌
 

标题: CSS样式表缩写介绍

yikuangyu [使用道具]
VU Group
Rank: 7Rank: 7Rank: 7
UID 3725
精华 0
积分 24751
帖子 552
阅读权限 100
注册 2005-6-7
来自 大别山
状态 离线
1
 

CSS样式表缩写介绍

Web网站可用性的关键指标是速度,更确切地说,是页面能以多快的速度出现在访问者的浏览器窗口里。影响速度的因素有很多种,包括Web服务器的速度、访问者的Internet连接情况,以及浏览器必须下载的文件大小。尽管你无法控制服务器和连接的速度,但是你可以控制构成网站Web页面的文件大小。
     为了让网站能够更快,Web的建设者都会按常规地压缩和优化网站上的每一个图像文件,这常常使得为了将文件的大小减少几个百分点而牺牲了图像的质量。由于CSS样式表是纯文本文件,和图像相比相对较小,所以Web建设者很少考虑采取措施减少其CSS样式表文件的大小。但是,通过使用CSS缩写以及其他的一些简单技巧,你可以在很大程度上减少样式表的大小。在我对自己样式表的一次非正式的特别测试中,我把文件的大小降低了大约25-50%。

    使用CSS的缩写性质

    CSS的缩写性质(shorthand property)是一些专用的性质名,用来代替多个相关性质的集合。例如,间隙性质(padding property)是顶部间隙(padding-top)、右侧间隙(padding-right)、底部间隙(padding-bottom)和左侧间隙(padding-left)的缩写。

   使用速写性质让你能够把多个性质/属性对(property/attribute pair)压缩进CSS样式表的一行代码里。例如,想一想下面的代码:

.sample1 {
margin-top: 15px;
margin-right: 20px;
margin-bottom: 12px;
margin-left: 24px;
padding-top: 5px;
padding-right: 10px;
padding-bottom: 4px;
padding-left: 8px;
border-top-width: thin;
border-top-style: solid;
border-top-color: #000000;
}

将它用一些缩写性质来替代就能够把代码减少为下面这样,两者的实际效果是完全一样的:

.sample1 {
margin: 15px 20px 12px 24px;
padding: 5px 10px 4px 8px;
border-top: thin solid #000000;
}

要注意,缩写性质还有多个属性,每一个(属性)都对应一个被组合进入缩写性质的常规性质。属性由空白隔开。

当属性是类似的值的时候,例如用于边框空白性质(margin property)的线性测量的时候,接在缩写性质之后的属性的顺序很重要。属性的次序是从顶部(顶部的边框空白)开始,然后围绕格子(box)按顺时针次序继续。

如果缩写性质的所有属性都是相同的,那么你可以简单地列出单个属性,然后在前面将它复制四遍。因此,下面的两个性质是相等的:
margin: 5px 5px 5px 5px;
margin: 5px;
类似的,你可以使用接在边框空白或者间隔性质之后的两个属性来代表顶部/底部和右侧/左侧属性对。
margin: 5px 10px 5px 10px;
margin: 5px 10px;
属性的顺序在它们是不相似的值的时候是不重要的。因此,边框颜色、边框风格和边框宽度等属性可以以任何顺序接在大纲性质(outline property)之后。忽略某个属性等同于从样式规则里忽略掉对应的常规性质。

CSS缩写性质列表
下面是CSS缩写性质的列表以及它们所表示的常规性质。

Background(背景):背景附件、背景颜色、背景图像、背景位置、背景重复
Border(边框):边框颜色、边框风格、边框宽度
border-bottom(底部边框):底部边框颜色、底部边框样式、底部边框宽度
border-left(左侧边框):左侧边框颜色、左侧边框样式、左侧边框宽度
border-right(右侧边框):右侧边框颜色、右侧边框样式、右侧边框宽度
border-top(顶部边框):顶部边框颜色、顶部边框样式、顶部边框宽度
cue(声音提示):前提示、后提示
font(字体):字体、字号、字体样式、字体粗细、字体变体、线高度、字体大小调整、字体拉伸
list-style(列表样式):列表样式图像、列表样式位置、列表样式类型
margin(空白):顶部空白、右侧空白、底部空白、左侧空白
outline(大纲):大纲颜色、大纲样式、大纲宽度
padding(间隙):顶部间隙、右侧间隙、底部间隙、左侧间隙
pause(暂停):后暂停、前暂停

减少空白

减少CSS样式表大小的另一种方法是从文档里删掉大多数无用的空白。换句话说,将每条规则打破放进一行代码里,即把原来插入到代码里用来把每个性质/属性分割到不同行的换行符和缩进符删掉。

例如,下面的代码示例在内容上相同,但是第二个要精炼得多:

h1 {
font-size: x-large;
font-weight: bold;
color: #FF0000;
}


h1 {font-size: x-large; font-weight: bold; color: #FF0000}

删掉注释

    将注释从你的CSS代码里删掉是减少文件大小的另一种方式。尽管注释对于代码的阅读很有用,但是它无助于浏览器生成你的Web页面。很多Web建设者都习惯给每一行代码都加上注释,或者至少给每一条规则声明都加上。这样的慷慨注释在CSS样式表里是极少需要的,因为大多数CSS性质和属性都很容易阅读和理解。如果你对类、ID,以及其他的选择器都使用有意义的名称,你就可以省掉大多数的注释,同时仍然能够保持代码的可读性和可维护性。

h1 { /* Heading 1 style*/
font-size: x-large; /* x-large size */
font-weight: bold; /* Bold */
color: #FF0000; /* Red */
}

    使用速写性质、删除无用的空白、省略注释都能够在很大程度上减少你CSS样式表文件的大小。这反过来会对加速你Web网站速度的总体目标作出小的、但是可能会是显而易见的贡献。

[ 本帖最后由 yikuangyu 于 2007-7-13 15:30 编辑 ]

它山之石 可以攻玉
顶部
[广告] 赶快加入!视觉同盟创意企业同盟!
design_1 [使用道具]
一星盟友
Rank: 1
UID 50389
精华 0
积分 185
帖子 15
阅读权限 10
注册 2007-7-31
来自 山东
状态 离线
2
 
像块硬骨头得慢慢消化~~~谢谢LZ了~~

.· °⒈記住該記住的╁┈ャo忘記該忘記的ε ぁ. .;改變能改變的∷√接受不能改變的∮∴∴∴
顶部
[广告] 赶快加入!视觉同盟创意企业同盟!
yikuangyu [使用道具]
VU Group
Rank: 7Rank: 7Rank: 7
UID 3725
精华 0
积分 24751
帖子 552
阅读权限 100
注册 2005-6-7
来自 大别山
状态 离线
3
 

细则补充

font
简写:

font:italic small-caps bold 12px/1.5em arial,verdana;等效于:

font-style:italic;
font-variant:small-caps;
font-weight:bold;
font-size:12px;
line-height:1.5em;
font-family:arial,verdana;顺序:font-style | font-variant | font-weight | font-size | line-height | font-family

(注:简写时,font-size和line-height只能通过斜杠/组成一个值,不能分开写。)

background
简写:

background:#fff url(bg.gif) no-repeat fixed left top;等效于:

background-color:#fff;
background-image:url(bg.gif);
background-repeat:no-repeat;
background-attachment:fixed;
background-position:left top;顺序:background-color | background-image | background-repeat | background-attachment | background-position

margin & padding
简写:

margin:1px 0 2em -20px;等效于:

margin-top:1px;
margin-right:0;
margin-bottom:2em;
margin-left:-20px;顺序:margin-top | margin-right | margin-bottom | margin-left

padding的简写和margin完全一样。

border
简写:

border:1px solid #000;等效于:

border-width:1px;
border-style:solid;
border-color:#000;顺序:border-width | border-style | border-color

这三句也是简写,等于是把四边的样式合而为一了。(关于四边的问题,下文有详细说明)

border-top / border-right / border-bottom / border-left
简写:

border-top:1px solid #000;等效于:

border-top-width:1px;
border-top-style:solid;
border-top-color:#000;(和border一样)

list-style
简写:

list-style:square outside url(bullet.gif);等效于:

list-style-type:square;
list-style-positionutside;
list-style-image:url(bullet.gif);顺序:list-style-type | list-style-position | list-style-image

关于四边
有很多样式都涉及到了四边的问题,这里统一说明。

四边的简写一般如下:

padding:1px 2px 3px 4px;等效于:

padding-top:1px;
padding-right:2px;
padding-bottom:3px;
padding-left:4px;顺序:top | right | bottom | left

不论是边框宽度,还是边框颜色、边距等,只要css样式涉及四边,顺序通通都是“上右下左”(顺时针方向)。

如果四边的值省略一个,只写三个:

padding:1px 2px 3px;则等效于:

padding-top:1px;
padding-right:2px;
padding-bottom:3px;
padding-left:2px;(省略的“左”值等于“右”)

如果四边的值省略两个:

padding:1px 2px;则等效于:

padding-top:1px;
padding-right:2px;
padding-bottom:1px;
padding-left:2px;(省略的“下”值等于“上”)

如果只有一个值:

padding:1px;则等效于:

padding-top:1px;
padding-right:1px;
padding-bottom:1px;
padding-left:1px;

它山之石 可以攻玉
顶部
[广告] 赶快加入!视觉同盟创意企业同盟!