CSS hack之特殊符號的應用_瀏覽器兼容教程

      編輯Tag賺U幣
      教程Tag:csshack添加

      由于各大瀏覽器尤其IE瀏覽器對web標準支持情況不一,導致標準的網頁在各個瀏覽器中的表現不一,因此,解決各瀏覽器兼容性問題成為了前端工程師最重要的工作之一,而所謂的hack技術則是前端開發中必用的。

      CSS hack的寫法有很多種,其中,特殊符號的應用最為普遍,也最為簡潔,下面一一介紹了特殊符號類型的CSS hack技術:

      1、反斜線(\)

      適用瀏覽器:IE/Mac

      反斜線(\)hack利用了IE/Mac的一個bug。以\*/結束的注釋在IE/Mac上是不正確關閉的,所以那些需要在IE/Mac上被忽略的語句可以放在這種注釋后面。

      1. /* 在IE Mac上忽略下面的語句 \*/ 
      2.  
      3. selector { ...styles... } 
      4.  
      5. /* 忽略結束 */ 

      2、下劃線(_)

      適用瀏覽器:IE6及其以下版本

      IE 6 及以下的版本可以識別帶有下劃線前綴的屬性,而其它瀏覽器會忽略它。因此,一個屬性前面加上下劃線或者連字符,就成為了IE6及以下版本瀏覽器的專有屬性。

      1. #elem { 
      2. width: [W3C Model Width]; 
      3. _width: [BorderBox Model]; 

      PS:這個hack利用瀏覽器的bug使用了無效的CSS,因而不推薦使用。

      3、星號(*)

      適用瀏覽器:IE7以下版本

      除了下劃線和連字符,版本7及以下的IE可以識別以非字母字符為前綴的屬性,而其它瀏覽器會忽略。

      1. #elem { 
      2. width: [W3C Model Width]; 
      3. *width: [BorderBox Model]; 

      PS:這個hack利用瀏覽器的bug使用了無效的CSS,因而不推薦使用。

      4、星號 HTML(* html)

      適用瀏覽器:IE4-6

      HTML元素是W3C標準DOM的根元素,但是IE 4至6的版本中還有一個神秘的父元素。完全兼容的瀏覽器會忽略這個* html選擇器,但IE4-6卻會對它正常處理。

      1. * html p {font-size5em; } 

      PS:這個HACK使用了完全有效的CSS。

      5、星號加號(*+)

      適用瀏覽器:IE7

      1. *:first-child+html p { font-size5em; } 
      2.  
      3. 或者: 
      4.  
      5. *+html p { font-size5em; } 

      PS:只在IE7標準模型里工作正常,在怪異模式下不能用。同時,也被IE8的兼容模式(相當于IE7的標準模式)所支持。它也使用了有效的CSS。

      6、子選擇器(>)

      適用瀏覽器: IE6以上版本及非IE瀏覽器

      IE6和早期的版本不支持“子選擇器”(>),我們可以利用這個為其它瀏覽器指定特別的規則。

      1. html > body p { colorblue; } 

      7、子選擇器加注釋(>/**/)

      適用瀏覽器: IE7以上版本及非IE瀏覽器

      雖然IE7支持對子選擇器,但通過以下hack方法也可以把IE7也排除。當一個空的注釋緊跟在子選擇器的后面重復的時候,IE7會不識別后面的規則,就和較早版本的瀏覽器一樣。

      1. html >/**/ body p { colorblue; } 

      來源:五月蘭博客,http://www.wuyuelan.com

      來源:未知//所屬分類:瀏覽器兼容教程/更新時間:2012-08-12
      相關瀏覽器兼容教程