北大青鳥課程講解之:css hack

      北京北大青鳥學(xué)校學(xué)術(shù)部老師講解:CSS hack由于不同的瀏覽器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,對CSS的解析認識不一樣,因此會導(dǎo)致生成的頁面效果不一樣,得不到我們所需要的頁面效果。 這個時候我們就需要針對不同的瀏覽器去寫不同的CSS,讓它能夠同時兼容不同的瀏覽器,能在不同的瀏覽器中也能得到我們想要的頁面效果。這個針對不同的瀏覽器寫不同的CSS code的過程,就叫CSS hack!

      北大青鳥學(xué)校丁老師介紹:編輯本段CSS Hack的原理是什么
      由于不同的瀏覽器對CSS的支持及解析結(jié)果不一樣,還由于CSS中的優(yōu)先級的關(guān)系。我們就可以根據(jù)這個來針對不同的瀏覽器來寫不同的CSS。

      CSS Hack大致有3種表現(xiàn)形式,CSS類內(nèi)部Hack、選擇器Hack以及HTML頭部引用(if IE)Hack,CSS Hack主要針對IE瀏覽器。

      類內(nèi)部Hack:比如 IE6能識別下劃線"_"和星號" * ",IE7能識別星號" * ",但不能識別下劃線"_",而firefox兩個都不能認識。等等

      選擇器Hack:比如 IE6能識別*html .class{},IE7能識別*+html .class{}或者*:first-child+html .class{}。等等

      HTML頭部引用(if IE)Hack:針對所有IE:<!--[if IE]><!--您的代碼--><![endif]-->,針對IE6及以下版本:<!--[if lt IE 7]><!--您的代碼--><![endif]-->,這類Hack不僅對CSS生效,對寫在判斷語句里面的所有代碼都會生效。

      書寫順序,一般是將識別能力強的瀏覽器的CSS寫在后面。下面如何寫里面說得更詳細些。(北大青鳥課程

       

      北大青鳥學(xué)校丁老師介紹:如何寫CSS Hack

      比如要分辨IE6和firefox兩種瀏覽器,可以這樣寫:

        <style>

        div{

        background:green; /* for firefox */

        *background:red; /* for IE6 */

        }

        </style>

      我在IE6中看到是紅色的,在firefox中看到是綠色的。(北大青鳥課程)

      北大青鳥學(xué)校解釋一下:

      上面的css在firefox中,它是認識不了后面的那個帶星號的東東是什么的,于是將它過濾掉,不予理睬,解析得到的結(jié)果是:div{background:green},于是理所當然這個div的背景是綠色的。

      在IE6中呢,它兩個background都能識別出來,它解析得到的結(jié)果是:div{background:green;background:red;},于是根據(jù)優(yōu)先級別,處在后面的red的優(yōu)先級高,于是當然這個div的背景顏色就是紅色的了。(北大青鳥課程)

        CSS hack:區(qū)分IE6,IE7,firefox

        區(qū)別不同瀏覽器,CSS hack寫法:

        區(qū)別IE6與FF:

        background:orange;*background:blue;

        區(qū)別IE6與IE7:

        background:green !important;background:blue;

        區(qū)別IE7與FF:

        background:orange; *background:green;

        區(qū)別FF,IE7,IE6:

        background:orange;*background:green;_background:blue;

        background:orange;*background:green !important;*background:blue;

        注:IE都能識別*;標準瀏覽器(如FF)不能識別*;

        IE6能識別*,某些情況下不能識別 !important,(北大青鳥課程)

        -----------------------------------------------------------------------------------------------

        IE6支持重定義中的!important,例如:

        .yuanxin {color:#e00!important;}

        .yuanxin {color:#000;}

        你將會發(fā)現(xiàn)定義了樣式class="yuanxin"時,在IE下,字體顯示為紅色(#e00)。

        但不支持同一定義中的!important。例如:

        .yuanxin {color:#e00!important;color:#000}

        此時在IE6下不支持,你將會發(fā)現(xiàn)定義了樣式class="yuanxin"時,字體顯示為黑色(#000)。

        不包括如下這種形式的同一定義中的!important。

        #pageOver{height:expression(document.documentElement.offsetHeight)!important;

        height:100%;}此種形式的定義,IE6中是可以解釋到important的。

        -----------------------------------------------------------------------------------------------

        IE7能識別*,也能識別!important;

        FF不能識別*,但能識別!important;

                                IE6                 IE7                 FF

        *                         √                 √                 ×

        !important         ×                 √                √

      瀏覽器優(yōu)先級別:FF<IE7<IE6,CSS hack書寫順序一般為FF IE7 IE6

       

        以: " #demo {width:100px;} "為例;(北大青鳥課程)

        #demo {width:100px;} /*被FIREFOX,IE6,IE7執(zhí)行.*/

        * html #demo {width:120px;} /*會被IE6執(zhí)行,之前的定義會被后來的覆蓋,所以#demo的寬度在IE6就為120px; */

        *+html #demo {width:130px;} /*會被IE7執(zhí)行*/

        ---------------

        所以最后,#demo的寬度在三個瀏覽器的解釋為:

        FIREFOX:100px;

        ie6:120px;

        ie7:130px;

        IE8 最新css hack:

        "\9" 例:"border:1px \9;".這里的"\9"可以區(qū)別所有IE和FireFox.

         "\0" IE8識別,IE6、IE7不能.

        "*" IE6、IE7可以識別.IE8、FireFox不能.

        "_" IE6可以識別"_",IE7、IE8、FireFox不能.(北大青鳥課程)

      以上內(nèi)容由北京北大青鳥學(xué)校學(xué)術(shù)部提供

      北大青鳥網(wǎng)上報名
      北大青鳥招生簡章
      主站蜘蛛池模板: 亚洲日韩激情无码一区| 日韩精品一区二区午夜成人版 | 亚洲Av高清一区二区三区| 国产亚洲福利精品一区二区 | 波多野结衣一区二区三区高清在线 | 精品三级AV无码一区| 国产伦精品一区二区| 加勒比无码一区二区三区| 99精品一区二区三区| 日韩人妻无码一区二区三区久久99 | 色系一区二区三区四区五区 | 538国产精品一区二区在线| 国产一区二区三区手机在线观看| 91无码人妻精品一区二区三区L| 亚洲午夜福利AV一区二区无码| 99久久精品国产高清一区二区| 四虎一区二区成人免费影院网址 | 好爽毛片一区二区三区四| 精品在线一区二区三区| 国产乱码精品一区二区三区香蕉| 中文无码一区二区不卡αv| 亚洲国产视频一区| 97se色综合一区二区二区| 一区高清大胆人体| 国产成人精品日本亚洲专一区| 青青青国产精品一区二区| 中文字幕一区一区三区| 亚洲国产精品综合一区在线 | 尤物精品视频一区二区三区 | 国产主播在线一区| 精品人妻无码一区二区色欲产成人| 无码少妇一区二区浪潮免费| 日韩三级一区二区| 日韩视频在线观看一区二区| 国精产品一区二区三区糖心| 人妻无码第一区二区三区| tom影院亚洲国产一区二区| 日本国产一区二区三区在线观看 | 国产成人av一区二区三区不卡| 国产一区在线观看免费| 中文字幕精品无码一区二区三区|