打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
高手总结CSS书写技巧

      不同的浏览器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,对CSS的解析认识不一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果。这里我们就需要注意CSS书写技巧了。

      这个时候我们就需要针对不同的浏览器去写不同的CSS,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果。这个针对不同的浏览器写不同的CSS code的过程,就叫CSS hack,也叫写CSS hack。

      由于不同的浏览器对CSS的支持及解析结果不一样,还由于CSS中的优先级的关系。我们就可以根据这个来针对不同的浏览器来写不同的CSS。

      比如 IE6能识别下划线"_"和星号" * ",IE7能识别星号" * ",但不能识别下划线"_",而firefox两个都不能认识。等等

      书写顺序,一般是将识别能力强的浏览器的CSS写在后面。下面列举常用的CSS hack方法

      CSS书写技巧-1:!important

      !important作用是提高指定样式规则的应用优先权。

      IE7以及所有标准浏览器能识别!important

      区别IE6与IE7与其他浏览器

              
      1. .browserTest
      2. {
      3. border:20pxsolid#60A179!important;
      4. border:20pxsolid#00F;
      5. }

      在Mozilla中或者IE7浏览时候,能够理解!important的优先级,因此显示#60A179的颜色:

      在IE6中浏览时候,不能够理解!important的优先级,因此显示#00F的颜色:

      CSS书写技巧-2:*

      IE都能识别*;标准浏览器(如火狐)不能识别*

      区别IE6与火狐

              
      1. .browserTest
      2. {
      3. border:20pxsolid#60A179;
      4. *border:20pxsolid#00F;
      5. }

      区别IE7与火狐

              
      1. .browserTest
      2. {
      3. border:20pxsolid#60A179;
      4. *border:20pxsolid#00F;
      5. }

      区别IE7,IE6与火狐

              
      1. .browserTest
      2. {
      3. border:20pxsolid#60A179;
      4. *border:20pxsolid#00F!important;
      5. *border:20pxsolid###;
      6. }

      CSS书写技巧-3:_

      IE6支持下划线,IE7和firefox均不支持下划线

      区别IE7,IE6与火狐

              
      1. .browserTest
      2. {
      3. border:20pxsolid#60A179;
      4. *border:20pxsolid#00F;
      5. _border:20pxsolid###;
      6. }
      7. /*不管是什么方法,书写的顺序都是firefox的写在前面,IE7的写在中间,IE6的写在最后面*/

      CSS书写技巧-4:*+html 与 *html

      *+html 与 *html 是IE特有的标签, firefox 暂不支持.而*+html 又为 IE7特有标签

              
      1. .browserTest{width:120px;}/*FireFoxfixed*/
      2. *html.browserTest{width:80px;}/*ie6fixed*/
      3. *+html.browserTest{width:60px;}/*ie7fixed*/

      注意:

      *+html 对IE7的HACK 必须保证HTML顶部有如下声明:

      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

      /*****************************************************************************/

      /*****************************************************************************/

      以下是一些常用的CSS兼容技巧

      1)火狐下给div设置padding后会导致width和height 增加, 但IE不会.(可用!important解决)

      2)垂直居中,将 line-height设置为当前div相同的高度, 再通过vertical-align: middle;( 注意内容不要换行)

      3)水平居中,margin:0 auto;(当然不是万能)

      4)若需给a标签内内容加上样式, 需要设置 display: block;(常见于导航标签)

      5)浮动IE产生的双倍距离

      在IE下,当一个div设置了float后,然后给他设置margin,就会出现加倍的margin,解决的办法是给div设置

              
      1. display:inline
      2. <divid=”float”></div>
      3. 相应的css为
      4. #float
      5. {
      6. float:left;
      7. margin:5px;/*IE下理解为10px*/
      8. display:inline;/*IE下再理解为5px*/
      9. }

      Block元素的特点是:总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是:和其他元素在同一行上,...不可控制(内嵌元素);

      6)IE和FF对盒模型的解释区别

              
      1. #browserTest{width:650px!important;width:648px;padding-left:2px;background:#fff;}

      browserTest显示的宽度是650px;

      IE Box的总宽度是:width+padding+border+margin宽度总和;

      FF Box的总宽度就是:width的宽度,padding+border+margin的宽度在含在width内。

      如果有BOX{WIDTH:"300"; PADDING:"5PX";}

      则BOX在IE的宽度应该为:310

      而在FF的宽度则是300

      所以在BOX有填充的情况下应该这样使用

      BOX{WIDTH:"300" !IMPORTANT; WIDTH:"290";}

      7)ul标签在FF下面默认有list-style和padding, 最好事先声明, 以避免不必要的麻烦;(常见于导航标签和内容列表)

      8)作为外部wrapper的div不要定死高度, 最好还加上 overflow: hidden;以达到高度自适应;

      9)页面的最小宽度

      min-width是个非常方便的CSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。但IE不认得这个, 而它实际上把width当做最小宽度来使。为了让这一命令在IE上也能用,可以把一个<div> 放到 <body> 标签下,然后为div指定一个类:

      然后CSS这样设计:

              
      1. #container{min-width:600px;width:expression(document.body.clientWidth<600?"600px":"auto");}

      第一个min-width是正常的;但第2行的width使用了Javascript,这只有IE才认得,这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。

      CSS书写技巧-10:万能float闭合

      将以下代码加入Global CSS 中,给需要闭合的div加上

              
      1. <style>
      2. /*ClearFix*/
      3. .clearfix:after
      4. {
      5. content:".";
      6. display:block;
      7. height:0;
      8. clear:both;
      9. visibility:hidden;
      10. }
      11. *html.clearfix{
      12. height:1%;
      13. }
      14. *+html.clearfix{
      15. height:1%;
      16. }
      17. .clearfix
      18. {
      19. display:inline-block;
      20. }
      21. /*HidefromIEMac*/
      22. .clearfix{display:block;}
      23. /*EndhidefromIEMac*/
      24. /*endofclearfix*/
      25. </style>
      26. /**********************************************/
      27. <divid="wrap">
      28. <divclass="column_left">
      29. <h1>Floatleft</h1>
      30. </div>
      31. <divclass="column_right">
      32. <h1>Floatright</h1>
      33. </div>
      34. </div>
      35. #wrap{border:6px#cccsolid;overflow:auto;_height:1%;}
      36. .column_left{float:left;width:20%;padding:10px;}
      37. .column_right{float:right;width:75%;padding:10px;border-left:6px#eeesolid;}

    本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
    打开APP,阅读全文并永久保存 查看更多类似文章
    猜你喜欢
    类似文章
    【热】打开小程序,算一算2024你的财运
    不能被撑开div之float,clear特性
    ecshop模板css兼容性问题_height:auto火狐下无效
    DIV高度自适应及应该注意的问题
    CSS图文混排 采用dl dt dd
    CSS+DIV怎么不叫它位置乱跑
    div高度自适应方法总结
    更多类似文章 >>
    生活服务
    热点新闻
    分享 收藏 导长图 关注 下载文章
    绑定账号成功
    后续可登录账号畅享VIP特权!
    如果VIP功能使用有故障,
    可点击这里联系客服!

    联系客服