优化你的CSS代码~!

  最近看过许多网友制作的SKIN的CSS文件,发现其中有着许多冗余的代码。下面我来跟大家介绍一下,如何清除这些冗余的代码,让你的CSS文件更加简洁。

  一、margin、padding属性
  参照相关资料我们可以知道,margin和padding代表的意思分别是外部边距和内部填充距离,在许多网友的CSS中,关于这两个属性的冗余代码是出现得最多的。比如:margin:0px,大家可以查看一下自己的CSS文件中,是否许多的margin:0px,其中有的是不需要的,你可以尝试删除它,当然也并不是所有的margin:0px都没有用,相同,padding:0px也一样。

  另外,margin和padding中各项属性的顺序是:上右下左,你只要记住是顺时针方向就好了。我们再看看这两段代码:
margin:0px 0px 0px 10px;
margin-left:10px;
其实他们的作用是一样的,下面的则是一种缩写,使用缩写我们可以减少CSS代码,并使阅读起来更为方便。(padding也相同。)

  二、!important;属性
  !important是CSS1就定义的语法,作用是提高指定样式规则的应用优先权。IE是不支持这个语法的,而其他的浏览器都支持,通过这一点,我们可以得知,设置了优先权的代码是不会被IE执行的。所以我们可以important的后面添加CSS样式,使其可以区别于IE和FireFox等浏览器。

  上次在看Miles的CSS代码时,我看到了这样一句:
height:50px !important;height:50px;
  这里就是多余的了,我们可以这样写:height:50px就够了,这个错误在我刚开始制作CSS时也曾出现过。

  三、text-align、font样式
  这两个样式的作用我就不说了,但是这两个样式在许多网友的CSS中也存在许多冗余。下面我来举例说明一下,层的定义如下:
<div id="main">
    <div id="body1">
        <div id="content1">
        </div>
    </div>
    <div id="body2">
    </div>
<div>

CSS文件如下(错误示例):
#main{width:500px;text-algin:left;font-size:12px;color:#000000;}
#body1{width:500px;text-algin:center;font-size:12px;color:#FF0000;}
#content{text-algin:left;font-size:12px;color:#000000;}
#body2{text-algin:left;font-size:12px;color:#000000;}

  大家可以从上面的代码中轻易地看出,有许多的冗余代码,现在我们来书写正确的代码:
#main{width:500px;text-algin:left;font-size:12px;color:#000000;}
#body1{text-algin:center;color:#FF0000;}
#content{width:300px;text-algin:left;color:#000000;}
#body2{}

  以上就是正确的代码,由于大家在制作SKIN时,对PJBLOG的DIV结构没搞清楚,才会出现这种错误。

  四、display:none的使用
  display:none的作用就是使被定义的层不显示。我们再来看看这段代码:
#blogTitle{font-size:0px;margin:10px 3px 3px 40px;height:20px;color:#FFC1E6;display:none}

  大家有没有觉得这有些多余呢,是的,既然设置了不显示,为何还要保留那些不必要的样式呢?出现这种情况我就知道,这个SKIN是改自某人的。

  五、还是margin和padding
  我还是通过例子来给大家说明,层的定义同上,以下是CSS的定义(错误示例):
#main{margin:5px 0px 5px 0px;}
#body1{margin:12px 0px 10px 0px;}
#content{margin:8px 0px 2px 0px;}
#body2{margin:10px 0px 15px 0px;}

  现在我们再来书写正确的样式:
#main{}
#body1{margin-top:17px ;}
#content{margin:8px 0px 2px 0px;}
#body2{margin:20px 0px ;}

  这里需要大家制作一下示例才能了解,首先#main{margin:5px 0px 5px 0px;}是没有必要的,他无非定义的就是整个页面的上、下外边距。(在一定场合下却需要这样书写)我们同样可以通过定义#body1的上边距和#body2的下边距来设置,所以才有了#body1{margin-top:17px ;}#body2{margin:20px 0px ;}(这里定义的是#body2的上下边距为20px,左右边距为0px,也是缩写的一种方式。)

  同样的道理,于是我们可以省略了#body1的下边距,在#content层在定义上边距,另外大家还需要先弄清楚层的嵌套关系,否则就会出错。

  好了,写到这里我也该去睡了,以上就是这些时间查看大家的CSS文件获得的经验,希望对大家书写CSS的时候有所帮助,制作出来的SKIN更加简洁、明了。

**本文为个人原创文章,转贴请注明出处 番茄'sBlog

42 Responses to “优化你的CSS代码~!”

  1. 狗狗×映象派 Says:

    不错,受教育了[lol]

  2. 幸福的子弹 Says:

    你写的CSS教程真是太及时了,我这几天确实也很为PADDING和MARGING着急。谢谢你了,支持。

  3. 幸福的子弹 Says:

    相关文章:
    用!important解决IE和Mozilla的布局差别:
    http://www.w3cn.org/article/tips/2004/91.html

  4. 幸福的子弹 Says:

    #main{width:500px;text-algin:left;font-size:12px;color:#000000;}
    #body1{text-algin:center;color:#FF0000;}
    #content{width:300px;text-algin:left;color:#000000;}
    #body2{}

    哪些是可以省略参数的?是不是父级已经定义,而子级又同父级一样就不用重复定义了,只定义不同的参数就可以了?

  5. 番茄红了 Says:

    正确~
    按道理#main{width:500px;text-algin:left;font-size:12px;color:#000000;}
    中的 text-algin:left 和color:#000000 也是可以不需要定义的,因为页面默认就是左对齐,黑色字体,为了方便起见我们给予了定义。
    #body1 是嵌套在 #main 中的,当#body1 中有的样式与 #main 一样时,就不需要再次定义了(指的是 font 、text-algin样式的属性 )。
    所以#body2 中就省略了定义,而 #content 是嵌套在#body1 中的,他们的文本对齐方式是不一样的,则需要重新定义~~

  6. 迪倫 Says:

    感謝您,我有轉貼,也有註明出處喔….^^[YoDylan

  7. OEGG Says:

    站长的Blog的引用功能还有问题哦~

    我的引用显示在”评论”中,但链接错误~
    (注:我是在MSN Blog上用的引用)

    实际地址:http://spaces.msn.com/members/oegg/Blog/cns!1pUvPYQUVejpB7uzfOT-EejA!185.entry

  8. 冷月宫主 Says:

    blog主确实强,写的文章我都能一口气读完,这样的好文章应多一点!谢谢

  9. 漂泊北京 Says:

    楼主实在谢谢了

  10. cinner Says:

      四、display:none的使用
      display:none的作用就是使被定义的层不显示。我们再来看看这段代码:
    #blogTitle{font-size:0px;margin:10px 3px 3px 40px;height:20px;color:#FFC1E6;display:none}

      大家有没有觉得这有些多余呢,是的,既然设置了不显示,为何还要保留那些不必要的样式呢?出现这种情况我就知道,这个SKIN是改自某人的。

    我不懂代码,所以我做皮肤时常是这么做的,把别人的各个皮肤文件拷下来,然后修改图片,如是是html代码,就好一点,我还多少能看懂一点,如是果CSS代码,就不行啦,最多能改点颜色代码。[ng]

  11. 良昊 Says:

    谢谢楼主了

  12. 会飞的驴zi Says:

    跪谢blog主,thx

  13. guest Says:

    楼主..写得不错呀.我来给你加油……望继续这种精神…..呵呵

  14. guest Says:

    感谢楼主,写的真的是很清楚,对我帮助很大

  15. 静水 Says:

    不错,谢谢了,我也能看懂,太好了,谢谢了

  16. slllllll Says:

    谢谢 楼主的教程

  17. 小学生 Says:

    多谢!辛苦了!

  18. 黑暗奶牛 Says:

    果然高手

  19. chenafang Says:

    看了你写的教程,我照着弄了一个框架,基本上实现了,但是我对中间的pagebody下包括的两个sidebar和mainbody两再没有加clear的前提下,sidebar和mainbody不能顶对其排列,这是怎么回事啊?

  20. 空中飞匠 Says:

    番茄's blog ,不得不说你写的非常好.难得这么有耐心.你的文章让我受益非浅.非常感谢你!!
    看完这篇文章可以算是入门了.我还在学习中.以后还会关注你的博客的.Good Luck!

  21. 没有信仰 Says:

    [b]写得真好
    通俗易懂,内容简捷,再接再厉,写更多的文章支持中国的IT事业,敬礼!!!!

  22. 路过 Says:

    楼主辛苦了,谢谢!!!

  23. gjj Says:

    不错,受益非浅。

  24. xy Says:

    通俗易懂,写得太好了!辛苦了

  25. 乐乐 Says:

    狂顶楼主,写得太好了
    让我对CSS有了重新的认识

  26. bevin Says:

    谢谢了

  27. boyzly Says:

    谢谢楼主,真的很好

  28. Sion Says:

    写得不错.
    一看就懂了哈.

  29. 伯爵 Says:

    太好啦,我会继续关注您的文章!

  30. wuaza Says:

    写得真好,支持。

  31. 游客密码 Says:

    关于 五、还是margin和padding
    我觉得不是错误
    有些情况就是需要这么写的

  32. lhg Says:

    二、!important;属性
      !important是CSS1就定义的语法,作用是提高指定样式规则的应用优先权。IE是不支持这个语法的,而其他的浏览器都支持,通过这一点,我们可以得知,设置了优先权的代码是不会被IE执行的。所以我们可以important的后面添加CSS样式,使其可以区别于IE和FireFox等浏览器。

    谁说IE不支持!important。

  33. kickz Says:

    已认真拜读过了,谢谢楼主辛苦创作,
    向楼主之精神致敬!!

  34. 幻想精灵 Says:

    受益非浅~~~
    谢谢~~~~~~

  35. 感谢 Says:

    [em_25]谢谢你~上帝会保佑你的,阿咪托佛~

  36. et Says:

    明显需要支持一下!

  37. kk Says:

    唔错。学到左D野!多谢!

  38. Says:

    写的蛮好的啊,希望下次还能够看到如此精彩的教程

  39. angel-fuck Says:

    太感谢了楼主!!!!!

  40. JACKY Says:

    好厉害!

  41. 不明白 Says:

    写的好

  42. 小敏 Says:

    我看不懂,但是看到大家的留言,我能感觉它真的不错。先顶下下,再去仔细磨磨[em_08]

发页文章评论

Theme Brought to you by Directory Journal and Elegant Directory