轉載 div+css瀏覽器兼容實例二:css hack的理解

上週給你們轉載了《Div+css瀏覽器兼容實例分析(一)》,今天繼續給你們轉載《div+css瀏覽器兼容實例二:css hack的理解》css

先來講一下什麼是css hack ,寫了這麼久的div+css代碼,我還真不知道這個hack是什麼?上網仔細查了一下。簡單的說針對不一樣的瀏覽器寫不一樣的CSS code的過程,就叫CSS hack,也叫寫CSS hackhtml

Css hack 的原理: 因爲不一樣的瀏覽器對 CSS 的支持及解析結果不同,還因爲 CSS 中的優先級的關係。咱們就能夠根據這個來針對不一樣的瀏覽器來寫不一樣的 CSS
好比 IE6 能識別下劃線 "_" 和星號 " * " IE7 能識別星號 " * " ,但不能識別下劃線 "_" ,而 firefox 兩個都不能認識。等等
書寫順序,通常是將識別能力強的瀏覽器的 CSS 寫在後面
瀏覽器優先級別 :FF < IE7 < IE6 , CSS hack 書寫順序通常爲 FF IE7 IE6
來看下面div+css瀏覽器兼容的例子:
#demo {width:100px;}     /* FIREFOX,IE6,IE7 執行 .*/
* html #demo {width:120px;} /* 會被 IE6 執行 , 以前的定義會被後來的覆蓋 , 因此 #demo 的寬度在 IE6 就爲 120px; */
*+html #demo {width:130px;} /* 會被 IE7 執行 */
因此最後 ,#demo 的寬度在三個瀏覽器的解釋爲 :
firefox:100px;
ie6:120px;
ie7:130px;
 
以上例子也能夠用個人上一篇文章「 div+css 瀏覽器兼 容實例一中的方法來解決!在這裏就再也不舉例了。」
Div+css 瀏覽器的兼容 技巧:
① 垂直居中.將 line-height 設置爲 當前 div 相同的高度, 再經過 vertical-align: middle.( 注意內容不要換行.)
② 水平居中. margin: 0 auto;(固然不是萬能)
③ 若需給 a 標籤內內容加上 樣式, 須要設置 display: block;(常見於導航標籤)
④ FF 和 IE 對 BOX 理解的差別致使相差 2px 的還有設爲 float的div在ie下 margin加倍等問題.
⑤ ul 標籤在 FF 下面默認有 list-style 和 padding . 最好事先聲明, 以免沒必要要的麻煩. (常見於導航標籤和內容列表)
⑥ 做爲外部 wrapper 的 div 不要定死高度, 最好還加上 overflow: hidden.以達到高度自適應.
⑦ 關於手形光標. cursor: pointer. 而hand 只適用於 IE.
⑧ FF下給 div 設置 padding 後會致使 width 和 height 增長, 但IE不會.(可用!important解決)

  注:針對firefox  IE6  IE7的css樣式
如今大部分都是用!important來hack,對於IE6和firefox測試能夠正常顯示,
可是IE7 !important能夠正確解釋,會致使頁面沒按要求顯示!找到一個針
對IE7不錯的hack方式就是使用「*+html」,如今用IE7瀏覽一下,應該沒有問題了。

如今寫一個 瀏覽器兼容CSS樣式
#cshk{ height:20px; } /* Moz */
* html #cshk {height:50px; } /* IE6 */
*+html #cshk {height:80px; } /* IE7 */
那麼在firefox下高度爲20,IE6下的高度爲50,IE7下的高度爲80。
 
給你們一點意見:能不用 CSS Hack仍是不用的好。其實在設計網站的時候,若是能考慮到一些可能出現CSS bug的地方,是最好的,我設計網站的時候都儘可能避免CSS bug.通常高手都不用hack.
 
本文轉載自 OECP社區 http://www.oecp.cn/hi/listly/blog/313
相關文章
相關標籤/搜索