常見的瀏覽器相容性問題與解決方案大致有以下九種形式:
一、不同瀏覽器的標籤預設的外邊界和內填充不同
問題表現:不加樣式控制下,margin和padding差異較大
解決方案:css裡 *
備註:這是最常見也是最易解決的乙個相容問題,幾乎所有的css檔案開頭都會用萬用字元*來設定各個標籤外邊界和內填充為0
二、塊屬性標籤float後,又有橫向的margin情況下,在ie6顯示margin比設定的大
問題表現:ie6後面的一塊被頂到下一行
解決方案:在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在各種瀏覽器的相容性
方法 步驟 不同瀏覽器對html標記所具有的內外邊距屬性具有不同的定義。因此如果想消除這種差距,應該在相應的css部分加入以下css 借於此,所有標記的內外邊距被統一起來。優先順序問題 對於同一標記屬性所給定的值,有不同的優先順序。其中優先順序最高的是內聯 其實是頁內css,接下來是瀏覽器預設設定,...
區別不同瀏覽器的相容性
現在谷歌瀏覽器已經被很多使用者認可,不僅僅是它的外觀簡潔,而且功能也很強大,對於我們常常寫css的站長來說不僅要照顧谷歌瀏覽器,還要照顧各個主流的瀏覽器,有時候在按照常理寫css的時候其他瀏覽都相容某段css但是谷歌死活不相容我們要怎麼來做呢?我們知道各種瀏覽器都有他特殊區分的hack,比如我們要區...
瀏覽器相容性
瀏覽器相容性是乙個很長久的話題,之所以前端需要面對瀏覽器相容性,是因為使用者的環境有不同的平台,不同的瀏覽器。不同的廠商之間為了相互競爭,對標準的實現不一樣。不同的瀏覽器有不同的核心。即使同乙個瀏覽器也有不同的版本,不同的版本對同一特性的支援情況也不盡相同。也可能某個瀏覽器的某個版本針對某個特性存在...