zoukankan      html  css  js  c++  java
  • CSS Hack

          说到浏览器兼容性问题,就必须说CSS Hack!
     
          在CSS中,Hack是指一种兼容CSS在不同浏览器中正确显示的技巧方法。说的更直白一些就是,你平时做个页面,布局正确,CSS正确,可就是在不同的浏览器中显示的效果不一样,要么错位,要么多几个像素,怎么都找不到原因,这时候我们就会用一些技巧方法来让不同的浏览器显示一样的效果,这种方法我们就称之为CSS Hack。
         CSS Hack是通过不同的标记来区分不同的浏览器。
     
    ①!important作用:用来解决一些在IE6上显示的效果与IE7/IE8/IE9/FireFox上的效果不一样的情况。比如有下面的一段代码:
    #content{
         height:960px !important;
         height:900px;
    }

    IE7/IE8/IE9/FireFox可以识别上面附加"!important"的语句,看到附加"!important"的语句后,就不会再去执行第二句,尽管他们也“认识”第二句,但是附加"!important"的语句拥有绝对优先级,只要有它存在,第二句就不允许执行。附加“!important”语句IE6无法识别,所以IE6会跳过附加“!important”的语句直接去执行第二句“height:900px”,第一句在IE6看来就是不存在的语句。

          利用浏览器对加了"!important"语句的识别能力,来解决一些在IE6上显示的效果与IE7/IE8/IE9/FireFox上的效果不一样的情况。


    ②*(星号)

    作用:用来解决一些在IE6/IE7上显示的效果与IE8/IE9/FireFox上的效果不一样的情况。比如有下面的一段代码:
    #content{
         height:960px;
        *height:900px;
    }

    IE8/IE9/FireFox不能识别附加有*的CSS属性语句,所以IE8/IE9/FireFox只能读第一句“height:960px;”而忽略第二句,IE6/IE7可以识别附加有*的CSS属性语句,也就是说第一句和第二句都认识,所以它们先读第一句,将高度定为960px,而后又读第二句“*height:900px;”,将高度从960px修改为900px,所以我们在IE中看到的最终效果就是高度为900px;


           利用浏览器对加了“*”语句的识别能力,来解决一些在IE6/IE7上显示的效果与IE8/IE9/FireFox上的效果不一样的情况。
     
     
    补充:

    IE6能识别下划线"_"和星号" * ",IE7能识别星号" * ",但不能识别下划线"_",IE8能识别" 9",但不能识别下划线"_",而firefox两个都不能认识,却可以识别‘!important’.

     

  • 相关阅读:
    51nod_1445 变色DNA 最短路模板 奇妙思维
    51nod_1459 最短路 dijkstra 特调参数
    UVA_10653 公主与王子 #刘汝佳DP题刷完计划
    HOJ 13819 Height map
    51nod_1255字典序最小的子序列
    电梯设计需求调研报告
    梦断代码读后感
    求一循环数组的最大子数组的和
    求二维数组中最大子数组的和
    四则运算
  • 原文地址:https://www.cnblogs.com/iRavior/p/3403472.html
Copyright © 2011-2022 走看看