使用缩写可以帮助减少你CSS文件的大小,更加容易阅读。css缩写的主要规则如下:
颜色
16进制的色彩值,如果每两位的值相同,可以缩写一半,例如:
#000000可以缩写为#000;#336699可以缩写为#369;
盒尺寸
通常有下面四种书写方法:
•property:value1; 表示所有边都是一个值value1;
•property:value1 value2; 表示top和bottom的值是value1,right和left的值是value2
•property:value1 value2 value3; 表示top的值是value1,right和left的值是value2,bottom的值是value3
•property:value1 value2 value3 value4; 四个值依次表示top,right,bottom,left
方便的记忆方法是顺时针,上右下左。具体应用在margin和padding的例子如下:
margin:1em 0 2em 0.5em;
边框(border)
边框的属性如下:
•border-1px;
•border-style:solid;
•border-color:#000;
可以缩写为一句:border:1px solid #000;
语法是border:width style color;
背景(Backgrounds)
背景的属性如下:
•background-color:#f00;
•background-image:url(background.gif);
•background-repeat:no-repeat;
•background-attachment:fixed;
•background-position:0 0;
可以缩写为一句:background:#f00 url(background.gif) no-repeat fixed 0 0;
语法是background:color image repeat attachment position;
你可以省略其中一个或多个属性值,如果省略,该属性值将用浏览器默认值,默认值为:
•color: transparent
•image: none
•repeat: repeat
•attachment: scroll
•position: 0% 0%
字体(fonts)
字体的属性如下:
•font-style:italic;
•font-variant:small-caps;
•font-weight:bold;
•font-size:1em;
•line-height:140%;
•font-family:"Lucida Grande",sans-serif;
可以缩写为一句:font:italic small-caps bold 1em/140% "Lucida Grande",sans-serif;
font的缩写,如果省略family,
如这样子:
font:700 14px/22px;
则在Firefox下是不生效的
完整的写法是:font:700 14px/22px arial;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<style> www.111cn.net
.login_top{height:26px;font:bold 14px/26px "宋体"; border:1px solid #000}
.login_top2{height:26px; line-height:26px; font-weight:bold;font-size:14px;border:1px
solid #000; font-family:'宋体'}
</style>
<div class="login_top">我垂直不居中</div>
<br/ >
<div class="login_top2">我垂直居中</div>
注意,如果你缩写字体定义,至少要定义font-size和font-family两个值。
列表(lists)
取消默认的圆点和序号可以这样写list-style:none;,
list的属性如下:
•list-style-type:square;
•list-style-position:inside;
•list-style-image:url(image.gif);
可以缩写为一句:list-style:square inside url(image.gif);
outline
outline类似border,不同的是border会影响盒模型,而outline不会。
outline-数字+单位;
outline-style: none || dashed || dotted || double || groove || inset || outset || ridge || solid ;
outline-color: 颜色 ;
属性值为0书写原则是如果CSS属性值为0,那么你不必为其添加单位(如:px/em),你可能会这样写:
关于四个边的特别说明
关于四边,有很多样式都涉及到了四边(上下左右)的问题,我这里统一说明一下。
以padding属于为例,四边的简写如下:
padding:4px 6px 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:5px 10px;
它等效于:
padding-top:5px;
padding-right:10px;
padding-bottom:5px;
padding-left:5px;
也就是说,当只有2个值的时候,上下2边等于第一个值,左右2边等于第二个值,即省略的“下”值等于“上”。
如果只有一个值:
padding:3px;
它等效于:
padding-top:3px;
padding-right:3px;
padding-bottom:3px;
padding-left:3px;
这种情况下,上下左右4条边都等同于同一个值!
Margin(外边距/空白边)声明CSS magin值得时候通常会写成这样:
margin-top:0px;
margin-right:10px;
margin-bottom:0px;
margin-left:10px;
让我们试试把值为0的单位去掉,并把4条声明合并成一条声明:
margin:0 10px 0 10px;
当你生命padding、margin、border(还有一些其他属性)时,记得要把按照顺时针的方向来声明属性值,也就是按照上-右-下-左的方向。关于这些属性还有另一个更加简单的写法,看看属性中上和下、左和右是否值是相等的,如果是那么就可以进一步优化了,你可以省略掉后两个值,剩下的两个值前者指上下,后者指左右:
margin:0 10px;
它是指左右的值为10px,上下的值为0;
移除选择器 选择器是你在为一些元素应用CSS样式时的基本方法,比如h1, h2, h2, div, strong, pre, ul, ol等等…如果你使用了class(.类名)或ID(#id名),那么就不用再在声明CSS时包含选择器了。
div#logowrap
尝试扔掉多余的选择器吧:
#logowrap
在这个例子中所谓的那个选择器就是div
*总爱和你开玩笑 要明智的使用*而避免它在整个CSS样式表中乱开玩笑,*是个通配符,你可以使用它来为你的设计部分或全部进行一系列CSS声明。例如:
* {
margin: 0;
}
这个声明会将所有元素的margin值设置为0,同样的,为了严谨起见,你可以尝试这样设置:
#menu * {
margin: 0;
}
这样的声明是指将#menu下的所有元素的margin设为0。