瀏覽器hack


首先我們來了解下什么是瀏覽器hack,瀏覽器hack也有人叫做CSS hack。在Internet Explorer 6,Internet Explorer 7,360.,Mozilla Firefox等不同的瀏覽器下,對CSS解析的優先級不一樣,也就是不同的瀏覽器對css的認識不一樣,因此會導致生成的頁面效果不一樣,得不到我們所 需要的頁面效果,或者效果有很大的差異。 這個時候我們就需要針對不同的瀏覽器去寫不同的CSS,讓它能夠同時兼容不同的瀏覽器,能在不同的瀏覽器中也能得到我們想要的頁面效果。
  我們 知道了什么是hack,還得知道css hack的原理是什么,這樣也有利於后面css hack編寫過程。其實就是上面所提到的,由於不同的瀏覽器對CSS的支持及解析結果不一樣,還由於CSS中的優先級的關系,來書寫css hack,這對於認識不同瀏覽器的解析特性和解析優先級的了解,來寫css hack代碼就至關重要了。
  下面我們就將瀏覽器支持的不同符號總結:
  注:Ie6支持下划線,例如:_select.
  有了上面瀏覽器支持的符號,離寫出滿意的css hack距離還很遙遠,下面我在總結下,在處理css hack方面的一些技巧積累。
  1. div的垂直居中問題
  {marding:0 auto;padding:0 auto}
  2. div浮動ie文本產生3像素的bug
  左邊對象浮動,右邊采用外 的左邊距來定位,右邊對象內的文本會離左邊有3px的間距。
  第一種方法是不讓重復的內容放入一個div中。
  第二種是,如何重復的最后一行是li就加上

  • hidden

  如果是div就換成
hidden

  4. ie6。ie7下背景重復問題
  在相應的屬性中加入:font-size:0px就可以。
  5. Form標簽
  這個標簽在ie中,會自動marging一些邊距,而在ff中marging則是0,因此,如果想顯示一直,可以{padding:0px;marging:0px}
  技巧的總結是經驗的積累,也是一個漫長的過程,下面我對hack的管理分享:
  1. 如果沒有必要,不要使用
  使用了hack后會帶來后期很大的維護成本,個人覺得要是小於10px的差距,就沒有必要去使用hack技術。
  2. 充分了解css和css hack技術
  要想寫出比較完美的代碼,必須充分了解css技術。
  3. 經常注釋
  在XHTML中注釋是個很好的習慣,不然代碼亂成一團,到了后來就奔上不知道代碼的邏輯性,沒有重用性,閱讀性和可維護性,二次開發性。
 
 

IE Hack

IE系列瀏覽器的hack大略如下:

  • _nowamagic:1px;-----------ie6
  • *nowamagic:1px;-----------ie7
  • nowamagic:1px\0;----------ie89
  • nowamagic:1px\9\0;--------ie9
  • :root nowamagic:1px;    ----ie9(實際情況可能ie9還是有問題,再用這種方式)

這樣就基本上就可以兼容所有IE。

其中粉紅色部分為屬性hack,黃色部分為選擇器hack,它們可以結合使用。此外Firefox和Chrome也有它們專有的hack,詳細hack方式及使用示例如下:

Firefox 與 Chrome 的 Hack

Firefox:

1 @-moz-document url-prefix()    /*寫在選擇器外層時(只可寫在此處):Firefox only*/

Chrome:

1 @media screen and (-webkit-min-device-pixel-ratio:0)    /*寫在選擇器外層時(只可寫在此處):Chrome only*/

使用示例:

1 @-moz-document url-prefix()    /*Firefox*/
2 {
3     body
4     {
5         background-color:pink;
6     }
7 }

瀏覽器對css的解析是從前到后的,並且采用最后一個樣式聲明。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM