點評:很早開始就知道css hack並使用之,以前覺得css hack是個很神奇的東西能解決很多相容性問題,漸漸地發現,其實不容hack的頁面才是更好的選擇
從頁面開始布局設計初就考慮到各個瀏覽器的問題,留出充足的餘量和給各個瀏覽器留出充足的發揮空間,這樣的頁面相容性才是最好的。
下面就來幾個問題:
1、div border不能顯示
問題描述:用一個div A層中間放了幾個div B來存放內容,因為內容是不固定的,於是就使用了對B層使用了float,讓A層自適應高度,後面對A層加上邊框,在ie中能顯示,但是在firefox中就始終沒法顯示。
問題分析:B層使用了float,位置浮起,A層邊框不能顯示
解決方案:對A開始使用一個浮動清除<div style="clear:both"></div>
2、cms ie6的內容頁面不能全部顯示
問題描述:cms內容頁中ie6能顯示部分的內容,在其他瀏覽器中顯示能正常全部顯示
問題分析:查看代碼,其中有.content{height:auto !importan;height:500px;min-height:500px;},應該是布局是為了好看,留下了500px的高度,其實內容頁自適應就可以了,在ie6中的min-height是不相容的於是就是固定高度500px,超出後也不能顯示了。
解決法案:.content{height:auto;}高度自適應
3、關於margin和padding撐破外層div的問題
問題描述:使用div margin padding 布局,整體架構設定號,開始新增內容時使用了margin padding對內容定位,最終在ie6中將整個div撐破,排版打亂
問題分析:ie6中間margin+padding+border+height(width)=盒子的實際尺寸,於是開始設計的尺寸加上定位的margin和padding就導致了撐破div
解決方案:定位改為position定位,使用position="relative"相對於本身原位置定位,自身位置保留,相鄰div依靠原位置,定位可以把原來margin和padding多撐出位置重疊在一起,多出重疊部分無內容對使用者體驗上無影響。
4、使用jquery slidetoggle 出現閃爍問題
問題描述:使用jquery slidetoggle ie6和ie7出現閃爍問題
問題分析:尋找資料 對slidetoggle 的子項目使用了position:relative position:absolute 等出現閃爍,自查原因使用了float:left出現閃爍
解決方案:解決方案:添加上<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">則可以解決問題,但是本句話前不能有其他注釋,開始未能解決時因為在頁面的開始有了一個空注釋(如問題5中),當問題5解決了,後面反思,得出了這個方案。
其實前面在網上也查了相關資料,解決法案正是如此,但是由於前面有一個空注釋,所以沒有出現效果,後面把空注釋解決了,才恍然醒悟。
5、靜態頁布局相容大部分瀏覽器,加上動態資料後在ie6 和 ie7中置中的內容就偏左了
問題描述:做靜態頁布局時,很是仔細,因為知道不用css hack的布局做出來的相容性才是最好的,於是很是仔細的做完,測試了各個瀏覽器,相容性也很好,但加上資料後就出現位移了。
問題分析:經過再三的堅持,發現,在輸出資料時,頁面的頭部多了一個<!---->空注釋,於是就位移了。
解決方案:去除頁面開始的<!---->
6、使用jquery slidetoggle是子項目出現快於父元素出現和消失,但下拉還未完成,子項目出現一閃出現,給人以突兀的感覺
問題描述:使用了jquery slidetoggle 元素下剛開始下來是,子項目則一閃而現,即一點擊則出現,很是突兀
問題分析:經過尋找,發現是子項目使用了position:relative的原因造成
解決法案:去除子項目中position:relative 的屬性