首页 > Web开发 > 详细

css 兼容

时间:2014-08-14 13:58:38      阅读:375      评论:0      收藏:0      [点我收藏+]

初学前端,正在做一个项目,发现浏览器兼容问题,然后上网搜了一下,网上有很多整理的解决方法,为了以后自己看着方便,现在自己也整理一下。

1 css的hack知识

/* CSS属性级Hack */
 
color:red; /* 所有浏览器可识别*/
 
_color:red; /* 仅IE6 识别 */
 
*color:red; /* IE6、IE7 识别 */
 
+color:red; /* IE6、IE7 识别 */
 
*+color:red; /* IE6、IE7 识别 */
 
[color:red; /* IE6、IE7 识别 */
 
color:red\9; /* IE6、IE7、IE8、IE9 识别 */
 
color:red\0; /* IE8、IE9 识别*/
 
color:red\9\0; /* 仅IE9识别 */
 
color:red \0; /* 仅IE9识别 */
 
color:red!important; /* IE6 不识别!important 有危险*/
 
/* CSS选择符级Hack */
 
*html #demo { color:red;} /* 仅IE6 识别 */
 
*+html #demo { color:red;} /* 仅IE7 识别 */
 
body:nth-of-type(1) #demo { color:red;} /* IE9+、FF3.5+、Chrome、Safari、Opera 可以识别 */
 
head:first-child+body #demo { color:red; } /* IE7+、FF、Chrome、Safari、Opera 可以识别 */
 
:root #demo { color:red\9; } : /* 仅IE9识别 */
 
/* IE条件注释Hack */
 
<!--[if IE 6]>此处内容只有IE6.0可见<![endif]-->
 
<!--[if IE 7]>此处内容只有IE7.0可见<![endif]-->

2 ul和ol列表缩进

ul ol {
     list-style:none;
     margin:0px;
     padding:0px;
}

注:在IE中,设置margin:0px可以去除列表的上下左右缩进、空白以及列表编号或圆点,设置padding对样式没有影响;在 Firefox 中,设置margin:0px仅仅可以去除上下的空白,设置padding:0px后仅仅可以去掉左右缩进,还必须设置list- style:none才 能去除列表编号或圆点。也就是说,在IE中仅仅设置margin:0px即可达到最终效果,而在Firefox中必须同时设置margin:0px、 padding:0px以及list-style:none三项才能达到最终效果。

3 css透明

.transparent {
       filter:alpha(opacity=50);  /*IE*/
    -moz-opacity:0.5;  /*老版本的Mozilla浏览器*/
    -khtml-opacity: 0.5;  /*老版本的sAFARI浏览器*/
    opacity: 0.5;   /*CSS标准*/
}

4 css圆角

.borderRadius {
       border-radius:4px;/*css标准*/
       -moz-border-radius:4px;/* Mozilla浏览器的私有属性 */ 
       -webkit-border-radius: 5px; /* Webkit浏览器的私有属性 */ 
}

低版本的ie是不支持圆角的,也可以通过jquery来设置圆角

5 css双线凹凸边框

.border {
      border:2px outset;/*IE*/ 
      -moz-border-top-colors: #d4d0c8 white;
      -moz-border-left-colors: #d4d0c8 white;
      -moz-border-right-colors:#404040 #808080;
      -moz-border-bottom-colors:#404040 #808080; 
}

6 css阴影

.shadow {
    -moz-box-shadow: 3px 3px 4px #000;
    -webkit-box-shadow: 3px 3px 4px #000;
    box-shadow: 3px 3px 4px #000;
    /* For IE 8 */
    -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color=‘#000000‘)";
    /* For IE 5.5 - 7 */
    filter: progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color=‘#000000‘);
}

 

浏览器bug

1 ie双边距

 设置为float的div在ie下设置的margin会加倍。这是ie6的bug

解决方案:在这个div里面加上display:inline; 

.Float{ 
  float:left; 
  margin:5px;/*IE下理解为10px*/ 
  display:inline;/*IE下再理解为5px*/ 
} 

 

css 兼容,布布扣,bubuko.com

css 兼容

原文:http://www.cnblogs.com/xmlovejaejoong/p/3912289.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!