摘要:對瀏覽器兼容問題,一般分,,兼容,兼容。特別是增加了許多新標簽,低版本瀏覽器會存在不兼容的情況。出現這個問題的原因是之前的瀏覽器都會給標簽一個最小默認的行高的高度。
**我所說的兼容性問題,主要是說IE與幾個主流瀏覽器如firefox,google等。而對IE瀏覽器來說,IE7又是個跨度,因為之前的版本更新甚慢,bug甚多。從IE8開始,IE瀏覽器漸漸遵循標準,到IE9后由于大家都一致認為標準很重要,可以說在兼容性上比較好了,但是在中國來說,由于xp的占有率問題,使用IE7以下的用戶仍然很多,所以我們不得不考慮低版本瀏覽器的兼容。
對瀏覽器兼容問題,一般分,HTML,Javascript兼容,CSS兼容。 其中html相關問題比較容易處理,無非是高版本瀏覽器用了低版本瀏覽器無法識別的元素,導致其不能解析,所以平時注意一點就是。特別是HTML5增加了許多新標簽,低版本瀏覽器會存在不兼容的情況。**
問題癥狀:隨便寫幾個標簽,不加樣式控制的情況下,各自的margin 和padding差異較大。
碰到頻率:100%
解決方案:css里 *{margin:0;padding:0;}
備注:這個是最常見的也是最易解決的一個瀏覽器兼容性問題,幾乎所有的css文件開頭都會用通配符*來設置各個標簽的內外補丁是0。
問題癥狀:常見癥狀是ie6中后面的一塊被頂到下一行
碰到頻率:90%(稍微復雜點的頁面都會碰到,float布局最常見的瀏覽器兼容問題)
解決方案:在float的標簽樣式控制中加入 display:inline;將其轉化為行內屬性
備注:我們最常用的就是div+css布局了,而div就是一個典型的塊屬性標簽,橫向布局的時候我們通常都是用div float實現的,橫向的間距設置如果用margin實現,這就是一個必然會碰到的兼容性問題。
問題癥狀:ie6、7和遨游里這個標簽的高度不受控制,超出自己設置的高度
碰到頻率:60%
解決方案:給超出高度的標簽設置overflow:hidden;或者設置行高line-height 小于你設置的高度。
備注:這種情況一般出現在我們設置小圓角背景的標簽里。出現這個問題的原因是ie8之前的瀏覽器都會給標簽一個最小默認的行高的高度。即使你的標簽是空的,這個標簽的高度還是會達到默認的行高。
問題癥狀: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是正道。
問題癥狀:因為min-height本身就是一個不兼容的css屬性,所以設置min-height時不能很好的被各個瀏覽器兼容
碰到幾率:5%
解決方案:如果我們要設置一個標簽的最小高度200px,需要進行的設置為:{min-height:200px; height:auto !important; height:200px; overflow:visible;}
備注:在B/S系統前端開時,有很多情況下我們有這種需求。當內容小于一個值(如300px)時。容器的高度為300px;當內容高度大于這個值時,容器高度被撐高,而不是出現滾動條。這時候我們就會面臨這個兼容性問題。
方法是:每寫一小段代碼(布局中的一行或者一塊)我們都要在不同的瀏覽器中看是否兼容,當然熟練到一定的程度就沒這么麻煩了。建議經常會碰到兼容性問題的新手使用。很多兼容性問題都是因為瀏覽器對標簽的默認屬性解析不同造成的,只要我們稍加設置都能輕松地解決這些兼容問題。如果我們熟悉標簽的默認屬性的話,就能很好的理解為什么會出現兼容問題以及怎么去解決這些兼容問題。
盒模型盒模型有兩種:IE盒模型、標準的W3C盒模型。從圖1和圖2就可以看出,IE盒模型的width包括了border、padding、content,而W3C盒模型的width僅限于content。 在CSS3的屬性中,box-sizing可以設置盒模型類型,默認值為content-box,content-box表示W3C盒模型,border-box表示IE盒模型。
IE5.5及更早的版本使用的是IE盒模型。IE6及其以上的版本在標準兼容模式下使用的是W3C的盒模型標準。我們說這是一個好消息因為這意味著此盒模型問題只會出現在IE5.5及其更早的版本中。只要為文檔設置一個DOCTYPE,就會使得IE遵循標準兼容模式的方式工作。
IE盒模型
W3C盒模型
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/113515.html
摘要:介紹最近開始刷一些書和題此系列是介紹在讀最佳實踐的一些收獲和體會。先修改諸如命名,格式等不涉及具體邏輯的內容重構過程中要持續測試,在多個瀏覽器測試,確保重構的部分功能正確。 介紹 最近開始刷一些書和題,此系列是介紹在讀Web最佳實踐的一些收獲和體會。 showImg(https://segmentfault.com/img/remote/1460000011465909?w=309&...
摘要:介紹最近開始刷一些書和題此系列是介紹在讀最佳實踐的一些收獲和體會。先修改諸如命名,格式等不涉及具體邏輯的內容重構過程中要持續測試,在多個瀏覽器測試,確保重構的部分功能正確。 介紹 最近開始刷一些書和題,此系列是介紹在讀Web最佳實踐的一些收獲和體會。 showImg(https://segmentfault.com/img/remote/1460000011465909?w=309&...
摘要:介紹最近開始刷一些書和題此系列是介紹在讀最佳實踐的一些收獲和體會。先修改諸如命名,格式等不涉及具體邏輯的內容重構過程中要持續測試,在多個瀏覽器測試,確保重構的部分功能正確。 介紹 最近開始刷一些書和題,此系列是介紹在讀Web最佳實踐的一些收獲和體會。 showImg(https://segmentfault.com/img/remote/1460000011465909?w=309&...
摘要:國內各大公司都已經投入使用,在一些常見的網站,如淘寶騰訊小米等移動站點,隨處可見其蹤影。變革之騰訊手機淘寶的設計與實現前端亂燉適配總結樣式重置上文已提及,這里推薦閱讀同學寫的專題文章。 前言 CSS代碼難維護眾所皆知。 為一個元素設置樣式的方式可以通過定義的class、定義的id、元素的標簽名、元素的屬性等選擇器以及這些選擇器的組合來實現; 作用于某個元素上的樣式又可能來自單個樣式規...
摘要:國內各大公司都已經投入使用,在一些常見的網站,如淘寶騰訊小米等移動站點,隨處可見其蹤影。變革之騰訊手機淘寶的設計與實現前端亂燉適配總結樣式重置上文已提及,這里推薦閱讀同學寫的專題文章。 前言 CSS代碼難維護眾所皆知。 為一個元素設置樣式的方式可以通過定義的class、定義的id、元素的標簽名、元素的屬性等選擇器以及這些選擇器的組合來實現; 作用于某個元素上的樣式又可能來自單個樣式規...
閱讀 3440·2023-04-25 23:25
閱讀 2068·2021-11-12 10:36
閱讀 2815·2019-08-30 12:47
閱讀 2036·2019-08-29 18:45
閱讀 435·2019-08-29 17:28
閱讀 1785·2019-08-29 17:15
閱讀 1707·2019-08-29 16:05
閱讀 1404·2019-08-29 14:17