怎樣解決不同瀏覽器的相容性問題,如何解決不同瀏覽器之間的相容性問題

2021-09-28 23:46:55 字數 5750 閱讀 7367

1樓:

瀏覽器相容問題一:不同瀏覽器的標籤預設的margin和padding不同

問題症狀:隨便寫幾個標籤,不加樣式控制的情況下,各自的margin 和padding差異較大。

碰到頻率:100%

解決方案:

css里加一行1*

備註:這個是最常見的也是最易解決的一個瀏覽器相容性問題,幾乎所有的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。

瀏覽器相容問題五:**預設有間距

問題症狀:幾個img標籤放在一起的時候,有些瀏覽器會有預設的間距,加了問題一中提到的萬用字元也不起作用。

碰到機率:20%

解決方案:使用float屬性為img佈局

備註:因為img標籤是行內屬性標籤,所以只要不超出容器寬度,img標籤都會排在一行裡,但是部分瀏覽器的img標籤之間會有個間距。去掉這個間距使用float是正道。

(我的一個學生使用負margin,雖然能解決,但負margin本身就是容易引起瀏覽器相容問題的用法,所以我禁止他們使用)

瀏覽器相容問題六:標籤最低高度設定min-height不相容

問題症狀:因為min-height本身就是一個不相容的css屬性,所以設定min-height時不能很好的被各個瀏覽器相容

碰到機率:5%

解決方案:如果我們要設定一個標籤的最小高度200px,需要進行的設定為:

備註:在b/s系統前端開時,有很多情況下我們又這種需求。當內容小於一個值(如300px)時。

容器的高度為300px;當內容高度大於這個值時,容器高度被撐高,而不是出現滾動條。這時候我們就會面臨這個相容性問題。

瀏覽器相容問題七:各種特殊樣式的相容,比如透明度、圓角、陰影等。特殊樣式每個瀏覽器的**區別很大,所以,只能現查資料通過給不同瀏覽器寫不同的**來解決。

js解決ie6下png透明失效的問題

做相容頁面的方法是:每寫一小段**(佈局中的一行或者一塊)我們都要在不同的瀏覽器中看是否相容,當然熟練到一定的程度就沒這麼麻煩了。建議經常會碰到相容性問題的新手使用。

很多相容性問題都是因為瀏覽器對標籤的預設屬性解析不同造成的,只要我們稍加設定都能輕鬆地解決這些相容問題。如果我們熟悉標籤的預設屬性的話,就能很好的理解為什麼會出現相容問題以及怎麼去解決這些相容問題。

2樓:左手倒影

先從網上找一些針對瀏覽器相容性的hack,寫的時候注意些, 然後就是最後用各種瀏覽器測試除錯了

如何解決不同瀏覽器之間的相容性問題

3樓:李鴻博

常見的瀏覽器相容性問題與解決方案大致有以下九種形式:

一、不同瀏覽器的標籤預設的外邊界和內填充不同

問題表現:不加樣式控制下,margin和padding差異較大

解決方案:css裡 *

備註:這是最常見也是最易解決的一個相容問題,幾乎所有的css檔案開頭都會用萬用字元*來設定各個標籤外邊界和內填充為0

二、塊屬性標籤float後,又有橫向的margin情況下,在ie6顯示margin比設定的大

解決方案:在float的標籤樣式控制中加入display:inline;轉化為行內屬性

備註:橫向浮動的div佈局,使用上margin進行邊界設定時,必然會碰到此問題

三、設定較小高度標籤(一般小於10px),在ie6、ie7,遨遊中高度超出設定高度值

問題表現:ie6、7和遨遊裡這個標籤的高度不受控制,超出自己設定的高度

解決方案:給超出高度的標籤設定overflow:hidden;或者設定行高line-height小於你設定的高度

備註:一般出現在設定小圓角背景的標籤裡。出現該問題原因是ie8之前的瀏覽器都會給標籤一個最小預設行高的高度,即使標籤是空內容,標籤的高度還是會有預設行高。

四、行內屬性標籤,設定display:block後採用float佈局,又有橫向的margin情況,ie6間距bug

問題表現:ie6的間距比超過設定的間距

解決方案:在display:block;後面加入display:inline;display:table;

備註:行內屬性標籤,為了設定寬度,需要設定為display:block;(表單元素除外)在用float佈局且有橫向margin後,在ie6下,就具有了塊屬性float後的橫向margin的bug。

由於設定為display:inline,高度失效,所有在後面補上display:table。

五、**預設有間距

問題表現:幾個img標籤放在一塊,有些瀏覽器會有預設的間距,有萬用字元也不起作用

解決方案:使用float屬性為img佈局

備註:img標籤是行內屬性標籤,只要不超出容器高度,img會排在一行裡,使用float是比較好的選擇

六、標籤最低高度設定min-height不相容

問題表現:min-height本身就是一個不相容的css屬性,所以設定min-height時不能相容所有瀏覽器

解決方案:如果設定一個標籤最小高度為200px,需要進行設定 

備註:b/s系統前端時,當內容小於一個值時,容器的高度保持該值,當內容大於該值時,高度自適應且不出現滾動條。

七、游標手形

問題表現:firefox不支援hand,但ie支援pointer

解決方案:統一使用cursor:pointer;

八、字型大小定義不同

問題表現:對字型大小small定義不同,firefox為13px,而ie為16px,差別比較大

解決方法:使用指定的字型大小如14px或者使用em

九、ie6 3px bug

問題表現:左側div浮動left,右邊div可以接著橫向排列,形成典型一列固定,第二列自適應,ie6出現之間3px間隙

解決方法:對左側left的盒子補上_margin-right: -3px;

如何解決html在各種瀏覽器的相容性

4樓:一騎當後

方法/步驟

不同瀏覽器對html標記所具有的內外邊距屬性具有不同的定義。

因此如果想消除這種差距,應該在相應的css部分加入以下css**:

*借於此,所有標記的內外邊距被統一起來。

優先順序問題:

對於同一標記屬性所給定的值,有不同的優先順序。其中優先順序最高的是內聯**,其實是頁內css,接下來是瀏覽器預設設定,最後才是外部css所做的限制。

margin不一致的問題:

當有多張**需要排在一行時,我們通常使用「float:left」來實現,這樣一來,瀏覽器就存在相容性問題。導致**與後面的內容存在margin不一致的問題。

對此一種解決方法就是給**新增「display:inline」項即可。

div居中問題:

通常我們會利用「vertical-align:middle」來實現,這對於搜狗瀏覽器來說,是正常的,但是對於ie瀏覽器來說,卻並沒有效果。對此,一種較好的解決方法是:

將文字的行高設定與div一樣時即可解決問題。

內外邊框合併問題。通常情況下,對於兩個相關div塊,相鄰時採用外邊距合併原則,其結果只最兩個div塊中margin最大值做為兩個div之間的間距。包含的兩個div之間的間距也遵行同樣的規則。

掌握了這一規則,在利用div塊進行佈局時我們就可以做的更加得心應手。

web瀏覽器相容性問題怎麼解決辦法

5樓:coral小考拉

瀏覽器相容問題一:不同瀏覽器的標籤預設的外補丁和內補丁不同

問題症狀:隨便寫幾個標籤,不加樣式控制的情況下,各自的margin 和padding差異較大。

碰到頻率:100%

解決方案:css裡 *

備註:這個是最常見的也是最易解決的一個瀏覽器相容性問題,幾乎所有的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之前的瀏覽器都會給標籤一個最小預設的行高的高度。

即使你的標籤是空的,這個標籤的高度還是會達到預設的行高。

怎樣可以很好地保證網頁的瀏覽器相容性

一 怎樣可以很好地保證網頁的瀏覽器相容性 儘量使用標準的網頁佈局方式,也就是符合w3c的佈局,再加上css的使用也符合w3c的使用,推薦firefox,chrome,這樣基本上,firefox,chrome,safari,opera,ie9都能表現一致,然後再針對ie8 7 6進行修改,這樣完成一個...

win7中vc6 0的相容性問題解決

不是win7的問題,是你程式有誤,所以編譯時出錯 重新安裝一下試試.vc6.0怎麼才能和window7相容 用vs吧,vc在win7上是不相容,vs都和vc一樣,沒事的。確實,我曾經在win7下安過vc6.0也出現了相容性的問題。也想過用vc更高階的版本,例如2010的。但是我最終放棄了安棄2010...

如何解決不能正常關機的問題

電腦不能正常關機怎麼辦?怎麼解決?具體解決方式如下 1.儘量關掉其他軟體,當準備要關機的時候,要事先關掉所有的軟體,比如qq 瀏覽器 辦公軟體等。2.工作管理員按住ctrl alt delete,出現windows工作管理員,點選上邊的關機,即可關機。3.快捷鍵關機按住windows u鍵,即可關機...