Sealyu

          --- 博客已遷移至: http://www.sealyu.com/blog

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks

          為了向你展示這些 CSS Hack 是否正常運作,我新建六個 P 標簽,并給每一個 P 標簽一個特有的 id。這將向你展示 CSS Hack 的運作情況。

          <p id="opera">我來自 Opera 7.2 - 9.5</p> 

          <p id="safari">我是神奇的 Safari</p> 

          <p id="firefox">我來自 Firefox</p> 

          <p id="firefox12">我是你爺爺 Firefox 1 - 2 </p>

           <p id="ie7">我是囧 IE 7</p> 

          <p id="ie6">我是腦瘸 IE 6</p> 

            然后我讓這些 P 標簽默認都不顯示

          <style type="text/css"> body p{display: none;} </style> 

            使用 IE CSS 條件注釋區分 IE 瀏覽器

            最簡單的區分 IE 瀏覽器的方法自然是使用他們的條件注釋。 微軟創建了一個強大的語法來讓我們去實現這個功能。我不想再詳細地介紹 IE 條件注釋了,我想你在搜索引擎能搜索到上萬個搜索條目,我這里只要這兩個:

          <!--[if IE 7]> 

          <style type="text/css"> 

          </style> <![endif]-->

           <!--[if IE 6]> 

          <style type="text/css"> </style> 

          <![endif]--> 

            使用 CSS 解析器 Hacks 區分 IE

            雖說 IE 條件注釋十分簡單好用,但是如果你想把全部的 CSS 放到一個文件里的 話,那么你不得不使用別的方法。注意這里的 IE 7 Hack將只對 IE7 有效,因為 IE6 根本不知道 > 選擇符。同時你也得注意  > 選擇符對于其他瀏覽器同樣是無效的。

          html > body #ie7 {*display: block;} 

           body #ie6 {_display: block;} 

            CSS Hack 區分 Firefox

            第一個使用了 body:empty 來區分 Firefox 1 和 2 。第二個 hack使用了全部 Firefox 瀏覽器的專有擴展 -moz。 -moz 只對 Firefox有效,使用這個 Hack 大可不必擔心其他瀏覽器的影響。

          body:empty #firefox12 {display: block;}

          @-moz-document url-prefix() {#firefox { display: block; }}  

            CSS Hack 區分 Safari

            Safari 的 CSS hack 與 Firefox 的 hack 看起來很像,使用的是 Safari瀏覽器的專有擴展 -webkit 且只對 Safari 瀏覽器有效。

          @media screen and (-webkit-min-device-pixel-ratio:0) {#safari { display: block; }} 

            CSS Hack 區分 Opera

          @media all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:0) {head~body #opera { display: block; }} 

            然后,全部合在一起便是

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

          <html lang="en">

          <head>

          <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

          <title>CSS Browser Hacks - 52css.com</title>

          <style type="text/css">

          body p {

              display: none;

          }

          html:first-child #opera {

              display: block;

          }

           html > body #ie7 {

          *display: block;

          }

           body #ie6 {

              _display: block;

          }

          body:empty #firefox12 {

              display: block;

          }

           

          @-moz-document url-prefix() {

           #firefox {

              display: block;

          }

          }

          @media screen and (-webkit-min-device-pixel-ratio:0) {

          #safari {

          display: block;

          }

          }

          @media all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:0) {

          head~body #opera {

          display: block;

          }

          }

          </style>

          </head>

          <body>

          <p id="opera">我來自 Opera 7.2 - 9.5</p>

          <p id="safari">我是神奇的 Safari</p>

          <p id="firefox">我來自 Firefox</p>

          <p id="firefox12">我是你爺爺 Firefox 1 - 2 </p>

          <p id="ie7">我是囧 IE 7</p>

          <p id="ie6">我是腦瘸 IE 6</p>

          </body>

          </html>

           

            CSS Hack 雖好且方便兼容各瀏覽器,但是通不過 W3C 驗證,所以還得自己權衡是否有必要去使用。

          posted on 2010-12-08 15:39 seal 閱讀(795) 評論(0)  編輯  收藏 所屬分類: CSS
          主站蜘蛛池模板: 海淀区| 百色市| 阿克| 克什克腾旗| 沾益县| 凭祥市| 临猗县| 盐津县| 永康市| 洪江市| 大港区| 岫岩| 昆山市| 罗源县| 蒙自县| 岐山县| 澜沧| 图木舒克市| 额济纳旗| 烟台市| 宁化县| 本溪市| 合阳县| 延长县| 红河县| 贺州市| 镇江市| 西盟| 桂东县| 肥东县| 红河县| 宝丰县| 乌苏市| 新乡市| 元氏县| 丽水市| 青川县| 乌鲁木齐县| 建平县| 江门市| 长顺县|