什麼是css hack
由於不同廠商的流覽器或某瀏覽器的不同版本(如ie6-ie11,firefox/safari/opera/chrome等),對css的支援、解析不一樣,導致在不同瀏覽器的環境中呈現出不一致的頁面展現效果。這時,我們為了獲得統一的頁面效果,就需要針對不同的瀏覽器或不同版本寫特定的css樣式,我們把這個針對不同的瀏覽器/不同版本寫相應的css
code的過程,叫做css hack!
css hack的原理
由於不同的瀏覽器和瀏覽器各版本對css的支援及解析結果不一樣,以及css優先順序對瀏覽器展現效果的影響,我們可以據此針對不同的瀏覽器情景來應用不同的css。
如果想系統的學習css hacker的相關資料,推薦檢視這篇文章(
這行**是永遠以最新的ie版本模式來顯示網頁,使ie支援html5。
這行**是360瀏覽器渲染頁面需預設用極速核心
各瀏覽器css相容問題彙總:
條件樣式替代css hacks方案:
建議:使用ietester軟體測試ie6、7、8。
顧名思義,!important的優先順序要高. 舉例說明:
body
ie6選擇最後乙個,即: (因為ie6對important不感冒)
ie7選擇第二個,即:background-color:#000000;(因為ie7開始對important感冒了,同時還死守著它對 * 感情的最後一版本,但important並未起到優先順序的作用)
ie8和firefox、opera、safari選擇第乙個,即:!important;(ie8完全感冒於important,同時丟棄了對*的感情)
另外再補充乙個,下劃線"_",
ie6支援下劃線,ie7、ie8和firefox、opera、safari均不支援下劃線。
整理二:ie6,ie7,firefox,opera,safari相容css的解決方法及css差別
ie6,ie7,firefox,opera,safari相容css的解決方法及css差別
參考**:
以下兩種方法幾乎能解決現今所有hack:
1. !important
隨著ie7對!important的支援, !important 方法現在只針對ie6的hack.(注意寫法.記得該宣告位置需要提前.)
2. ie6/ie7對firefox
*+html 與 *html 是ie特有的標籤, firefox 暫不支援.而*+html 又為 ie7特有標籤.
3.當網頁在
ie 中有異常表現時,可以嘗試激發 haslayout 來看看是不是問題所在。常用的方法是給某元素 css 設定 zoom:1。使用
zoom:1 是因為大多數情況下,它能在不影響現有環境的條件下激發元素的
haslayout。而一旦問題消失,那基本上就可以判斷是haslayout 的原因。然後就可以通過設定相應的 css
屬性來對這個問題進行修正了。建議首先要考慮的是設定元素的width/height 屬性,其次再考慮其他屬性。
對 ie6
及更早版本來說,常用的方法被稱為霍莉破解(holly hack),即設定這個元素的高度為
1%(height:1%;)。需要注意的是,當這個元素的 overflow 屬性被設定為 visible 時,這個方法就失效了。或者使用
ie的條件注釋。對 ie7 來說,最好的方法是設定元素的最小高度為 0 (min-height:0;)。
4.ie-css3.htc讓ie6, 7, 8也支援css3圓角,陰影,文字陰影等效果。
附**:
5.在mozilla
firefox和ie中的box模型解釋不一致導致相差2px解決方法:div,注意這兩個margin的順序一定不能寫反,據阿捷的說法!important這個屬性ie不能識別,但別的瀏覽器可以識別。所以在ie下其實解釋成這樣:div
重複定義的話按照最後乙個來執行,所以不可以只寫margin:xxpx!important;
6.設定為float的div在ie下設定的margin會加倍。這是乙個ie6都存在的bug。解決方案是在這個div裡面加上display:inline。
7.min-width是個非常方便的css命令,它可以指定元素最小也不能小於某個寬度,這樣就能保證排版一直正確。但ie不認得這個,而它實際上把 width當做最小寬度來使。為了讓這一命令在ie上也能用,可以把乙個
放到 標籤下,然後為 div指定乙個類:
然後css這樣設計:
selector
或selector
8.ie下元素消失,給該元素新增:position:relative;
9.ie7瀏覽器下,文字越多,按鈕兩側padding留白就越大,解決辦法是新增overflow:visible屬性。
相容性小結
1.不同瀏覽器的標籤預設的外補丁和內補丁不同。解決 2.chorme瀏覽器下字型最小12px 解決 font size 12px webkit transform origin x 0 webkit transform scale 0.5833333333333334 scale 12 3.ie瀏覽...
CSS常用瀏覽器相容調整小結
頁面亂的原因是因為ie6認為乙個div超寬了,所以把本應float right的div擠了下去。而如果設定為ie6下顯示正常的寬度,則在ie7和firefox下看頁面就會少了一塊一樣,也很彆扭 怎麼辦?用css hack 來改寫css 改寫前 yyy 當設為ie7和firefox下顯示正常的600p...
CardView使用與相容
1.5.0版本 2.細節 margin與陰影 5.0 4.4因為陰影比較大,所以需要設定android layout margin 0dp 減小陰影 3.按壓下沉,陰影加重效果 5.0以上才有 4.4需要自己自定義 5.0上面需要設定這個,不然裡面textview會貼到圓角上 圖1 圖2 圖34.4...