日期:2014-04-17 浏览次数:21259 次
一些老手容易忽略或者出现错漏的地方。
1.首先是对于规划标签的定义。
有时候写好了css,但是反复调试总发现效果差强人意,有那么一块空白,挥之不去。其实这就是对于标签定义的不严谨形成的。由于在xhtml的部分标签里,有一些的默认属性值不一定是为空或零的。例如form,p,他们的margin默认值并不是0,所以在定义时定要多加留意。我们可以这样写来愈加严谨的定义:* { margin:0;padding:0 } /*注释:定义所有的标签的margin和padding为0*/
2.缩写和大小写问题
css对于class和id是区分大小写的,所以当款式不生效的时候建议先检查一下大小写问题。我建议所有名称统一小写,当然你有本人的编码风格也可以用。例如第二单词大写,oneTwo在css里有很多缩写的习惯,推荐使用缩写格式。基本的缩写有 属性缩写和颜色缩写等。
属性缩写的例子:
margin-top:1px;margin-left:1px;margin-right:1px;margin-bottom:1px;
可以简单的写成 marign:1px;代表了以上四个属性。节约了很多字节。
顺便提一下,margin的缩写比较特殊,给不会的朋友看看。
margin x;代表四个方向都为x
margin x y;代表上下为x,左右为y;
margin x y z a;x代表上,y代表右,z代表下,a代表左
其他的这种表示上下左右的属性同marign.
另一种缩写就是颜色缩写:比如 #aabbcc;可以简写为 #abc;
3.少用限定,多用承继
(1).少用限定:比如定义了一个类a,该类被用于一个id为b的div中,有人为了严谨,这样定义:#b.a {}
这样定义就违备了class的初衷-灵活性.所以普通定义class尽量不要限定他们的使用范围,除非有特殊需求。
子选择是一种不错的方法,比如一个li,我们可以不必为其定义id或class,一样可以设置它的属性。
例子:
<div id="header">
<ul><li></li></ul>
</div>
这种情况我们也可以这样写: #header ul li { 这里就是li的属性 }
(2).多用承继:
有人刚开始写css写的很死,例如这样写:
#a { font-size:12px;font-weight:bold;color:#abc; }
#b { font-size:12px;font-weight:bold;color:#123; }
其实在两个款式有许多雷同的时候,我们完全可发挥css的承继特性,例如把上面的例子改成这样:
#a,#b { font-size:12px;font-weight:bold;color:#abc; }
#b { color:#123; }
一组标签也同样适用此方法:h1,h2,h3 {....}
效果是完全一样的,是不是又节约了很多字节呢..
4.多重class及就近优先准绳
如果一个标签相反时使用两个class,不要这样写:<div class="a" class="b">这样是不对的
正确写法:<div class="a b">
如果同时定了两个p margin属性,后面的将覆盖前面的。还有定义了一个span的color属性,又定义了一个class,名为a的color属性,当<span class="a">时候,a的属性就会覆盖原span的属性。这就是就近优先准绳。。。。
5.链接的正确写法:
顺序是很重要的,一定要正确::link :visited :hover :active
否则有可能会出现错误。
学好css最需求的就是多动多实践,那样才能学的快。