瀏覽器相容性常見 瀏覽器相容問題⼀:不同瀏覽器的標簽預設的外補丁和內補丁不同 問題癥狀:隨便寫⼏個標簽,不加樣式控制的情況下,各⾃的margin 和padding差異較⼤。 碰到頻率:100% 解決⽅案:CSS⾥ *{margin:0;padding:0;} 備註:這個是最常 的也是最易解決的⼀個瀏 ...
瀏覽器相容性常見
瀏覽器相容問題⼀:不同瀏覽器的標簽預設的外補丁和內補丁不同
問題癥狀:隨便寫⼏個標簽,不加樣式控制的情況下,各⾃的margin 和padding差異較⼤。
碰到頻率:100%
解決⽅案:CSS⾥ *{margin:0;padding:0;}
備註:這個是最常 的也是最易解決的⼀個瀏覽器相容性問題,⼏乎所有的CSS⽂件開頭都會⽤通配符*來設置各個標簽 的內外補丁是0。
瀏覽器相容問題⼆:塊屬性標簽float後,⼜有橫⾏的margin情況下,在IE6顯⽰margin⽐設置的⼤
問題癥狀:常 癥狀是IE6中後⾯的⼀塊被頂到下⼀⾏
碰到頻率:90%(稍微複雜點的 ⾯都會碰到,float佈局最常 的瀏覽器相容問題)
解決⽅案:在float的標簽樣式控制中加⼊ display:inline;將其轉化為⾏內屬性
備註:我們最常⽤的就是div+CSS佈局了,⽽div就是⼀個典型的塊屬性標簽,橫向佈局的時候我們通常都是⽤div float實 現的,橫向的間距設置如果⽤margin實現,這就是⼀個必然會碰到的相容性問題。
瀏覽器相容問題三:設置較⼩⾼度標簽(⼀般⼩於10px),在IE6,IE7,遨游中⾼度超出⾃⼰設置⾼度
問題癥狀:IE6、7和遨游⾥這個標簽的⾼度不受控制,超出⾃⼰設置的⾼度
碰到頻率:60%
解決⽅案:給超出⾼度的標簽設置overflow:hidden;或者設置⾏⾼line-height ⼩於你設置的⾼度。
備註:這種情況⼀般出現在我們設置⼩圓⾓背景的標簽⾥。出現這個問題的原因是IE8之前的瀏覽器都會給標簽⼀個最⼩ 預設的⾏⾼的⾼度。即使你的標簽是空的,這個標簽的⾼度還是會達到預設的⾏⾼。
瀏覽器相容問題四:⾏內屬性標簽,設置display:block後採⽤float佈局,⼜有橫⾏的margin的情況,IE6間距bug
問題癥狀:IE6⾥的間距⽐超過設置的間距
碰到⼏率:20%
解決⽅案:在display:block;後⾯加⼊display:inline;display:table;
備註:⾏內屬性標簽,為了設置寬⾼,我們需要設置display:block;(除了input標簽⽐較特殊)。在⽤float佈局並有橫向的 margin後,在IE6下,他就具有了塊屬性float後的橫向margin的bug。不過因為它本⾝就是⾏內屬性標簽,所以我們再加 上display:inline的話,它的⾼寬就不可設了。這時候我們還需要在display:inline後⾯加⼊display:talbe。
瀏覽器相容問題五:⼦元素綁架⽗元素的margin-top
問題癥狀:這個問題主要出現在⾮IE瀏覽器中。如果⼦元素和⽗元素之間沒有任何內容,將⼦元素設置margin-top後,⼦ 元素不會動,⽽⽗元素會因為margin-top往下移動。
碰到⼏率:80%
解決⽅案:在⽗元素和⼦元素之間加⼊<div stye=‘height:0’> </div>。或者設置⽗元素的padding-top。