初学CSS容易出现的错误

网络整理 - 07-29
一些新手容易忽略或者出现错漏的地方。

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最需要的就是多动多实践,那样才能学的快。