IE6、IE7、Firefox之间的兼容写法

1、 IE6、IE7、Firefox之间的兼容写法:
  
  写法一:
  
  IE都能识别*;标准浏览器(如FF)不能识别*;
  IE6能识别*,但不能识别 !important,
  IE7能识别*,也能识别!important;
  FF不能识别*,但能识别!important;
  根据上述表达,同一类/ID下的CSS  hack可写为:
  .searchInput {
  background-color:#333;/*三者皆可*/
  *background-color:#666 !important; /*仅IE7*/
  *background-color:#999; /*仅IE6及IE6以下*/
  }
  一般三者的书写顺序为:FF、IE7、IE6.
  
  写法二:
  
  IE6可识别“_”,而IE7及FF皆不能识别,所以当只针对IE6与IE7及FF之间的区别时,可这样书写:
  .searchInput {
  background-color:#333;/*通用*/
  _background-color:#666;/*仅IE6可识别*/
  }
  
  写法三:
  
  *+html 与 *html 是IE特有的标签, Firefox 暂不支持。
  .searchInput {background-color:#333;}
  *html .searchInput {background-color:#666;}/*仅IE6*/
  *+html .searchInput {background-color:#555;}/*仅IE7*/
  
  屏蔽IE浏览器:
  
  select是选择符,根据情况更换。第二句是MAC上safari浏览器独有的。
  
  *:lang(zh) select {font:12px !important;} /*FF的专用*/
  select:empty {font:12px !important;} /*safari可见*/
  
  IE6可识别:
  
  这里主要是通过CSS注释分开一个属性与值,注释在冒号前。
  
  select { display /*IE6不识别*/:none;}
  
  IE的if条件hack写法:
  
  所有的IE可识别:Only IE


  只有IE5.0可以识别:Only IE 5.0


  IE5.0包换IE5.5都可以识别:Only IE 5.0+


  仅IE6可识别: Only IE 6-


  IE6以及IE6以下的IE5.x都可识别:Only IE 6/+


  仅IE7可识别: Only IE 7/-
  
  2、清除浮动:


  在Firefox中,当子级都为浮动时,那么父级的高度就无法完全的包住整个子级,那么这时用这个清除浮动的HACK来对父级做一次定义,那么就可以解决这个问题。
  select:after {
  content:”.”;
  display:block;
  height:0;
  clear:both;
  visibility:hidden;

2、火狐,IE兼容问题


1.今天做了一个后台管理系统的登录界面,原想把登录框放在居中的位置,在body里设置了text-align:center;当在IE6,IE7里浏览时都没有出现问题,可当在火狐里浏览是问题出现了,登录框没有居中,原先也出现这样的问题,也知道这是兼容问题,但没有去深究,只是在body里设置了个宽度,再用margin:0 auto;勉强解决了这个居中的问题,但是新的问题出现了,在一个分辨率里这个问题很好解决,当用到不同分辨率的显示器上这问题就出现了,因为设置了宽度,所以不是太长就是满屏。所以今天就特意去找了一下解决这个问题的方法,方法很简单就是在body设置text-align:center,再在div里设置margin:auto(主要是margin-left,margin-right)就可以居中了。
  如:
  body{
  text-align:center;}
  div{
  margin:auto;}
  2.在IE6里当你用div设置了一个高度很小的(<20px)分割线时,在IE6里浏览时即使你设置的高度是5px,但显示的高度远大于5px,这是IE6里DIV有一个宽度和最小高度。如果高度设得比这个最小高度小还是以最小高度显示;而在IE7,8里面已经没有最小宽度和最小高度之说了。此时只要在div里样式上加上overflow:hidden就可以解决这问题。 overflow:hidden这个属性是定义“不显示超过对象尺寸的内容”

你可能感兴趣的:(firefox)