日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
解決IE6、IE7、IE8、Firefox兼容的幾種方案

你是否在位IE6、IE7、IE8、Firefox不兼容問題而煩惱,這里向大家簡單介紹一下解決IE6、IE7、IE8、Firefox兼容的幾種方案,希望對你的學習有所幫助。

創(chuàng)新互聯(lián)公司主營襄城網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,app開發(fā)定制,襄城h5微信小程序定制開發(fā)搭建,襄城網(wǎng)站營銷推廣歡迎襄城等地區(qū)企業(yè)咨詢

解決IE6、IE7、IE8、Firefox兼容的幾種方案

瀏覽器不兼容,你知道源頭嗎?

凡事都要知其然,才能知其所以然,前端開發(fā)的朋友想畢都會碰到瀏覽器兼容的問題,今天在網(wǎng)上覓到此文,希望對大家有用。

瀏覽器的不兼容,大家肯定都是深惡痛絕的,往往我們只是去做修補,卻忘了更重要的事情,那就是追溯根源,避免類似的不兼容再次出現(xiàn)。在下不才,歸納幾點html編碼要素,望能指點各位:

1.文字本身的大小不兼容。同樣是font-size:14px的宋體文字,在不同瀏覽器下占的空間是不一樣的,IE下實際占高16px,下留白3px,F(xiàn)irefox下實際占高17px,上留白1px,下留白3px,opera下就更不一樣了。解決方案:給文字設定line-height。確保所有文字都有默認的line-height值。這點很重要,在高度上我們不能容忍1px的差異。

2.Firefox下容器高度限定,即容器定義了height之后,容器邊框的外形就確定了,不會被內(nèi)容撐大,而IE下是會被內(nèi)容撐大,高度限定失效。所以不要輕易給容器定義height。

3.還討論內(nèi)容撐破容器問題,橫向上的。如果float容器未定義寬度,F(xiàn)irefox下內(nèi)容會盡可能撐開容器寬度,IE下則會優(yōu)先考慮內(nèi)容折行。故,內(nèi)容可能撐破的浮動容器需要定義width。

小實驗:有興趣大家可以看看這段實驗。在不同瀏覽器下分別測試以下各項代碼。

 
 
 
  1. a.
 
  •  
  • b.
  •  
  •  
  • c.
  •  
  •  
  • d.
  •  
  •  
  • 上面的代碼在不同瀏覽器中是不一樣的,實驗起源于對小height值div的運用,

    ,小height值要配合overflow:hidden一起使用。實驗好玩而已,想說明的是,瀏覽器對容器的邊界解釋是大不相同的,容器內(nèi)容的影響結(jié)果各不相同。

    4.浮動的清除,F(xiàn)irefox下不清除浮動是不行的。

    糾正大家一個誤區(qū),遇到不兼容就說Firefox爛是不對的,其實更多時候是IE的奇怪表現(xiàn)讓我們無所適從。以下列出IE6的種種劣跡。

    5.最被痛恨的,double-marginbug。IE6下給浮動容器定義margin-left或者margin-right實際效果是數(shù)值的2倍。解決方案,給浮動容器定義display:inline。

    6.mirrormarginbug,當外層元素內(nèi)有float元素時,外層元素如定義margin-top:14px,將自動生成margin-bottom:14px。padding也會出現(xiàn)類似問題,都是IE6下的特產(chǎn),該類bug出現(xiàn)的情況較為復雜,遠不只這一種出現(xiàn)條件,還沒系統(tǒng)整理。解決方案:外層元素設定border或設定float。

    引申:Firefox和IE下對容器的margin-bottom,padding-bottom的解釋有時不一致,似乎與之相關(guān)。

    7.吞吃現(xiàn)象,限于篇幅,我就不展開了。還是IE6,上下兩個div,上面的div設置背景,卻發(fā)現(xiàn)下面沒有設置背景的div也有了背景,這就是吞吃現(xiàn)象。對應上面的背景吞吃現(xiàn)象,還有滾動下邊框缺失的現(xiàn)象。解決方案:使用zoom:1。這個zoom好象是專門為解決IE6bug而生的。

    8.注釋也能產(chǎn)生bug~~~“多出來的一只豬。”這是前人總結(jié)這個bug使用的文案,IE6的這個bug下,大家會在頁面看到豬字出現(xiàn)兩遍,重復的內(nèi)容量因注釋的多少而變。解決方案:用“picRotatestart”方法寫注釋。

    9.

  • 里加float
    ,這是一個典型的,棘手的兼容問題,希望引起大家正視,給li不同的屬性會有不同的解釋效果,F(xiàn)irefox下的解釋稍可理解,IE6下的解釋會讓你摸不著頭腦,由于問題的復雜性,將另起一文專門討論該問題。在《ul使用心得》一文里有相關(guān)成果,卻沒給出問題解決的過程。

    10.使用了“float:left;display:inline”的ul的奇怪表現(xiàn)??梢钥闯鲞@句css是針對IE6下的doublemarginbug而加上的display:inline,這也是我的css體系里的重要一環(huán),在《ul使用心得》一文中有相關(guān)闡述。而這句css用在ul上會讓你痛苦不堪。點到為止,這里不能多說哈。

    11.img下的留白,大家看這段代碼有啥問題:

     
     
     
    1.  
    2.  
     
  •  
  • 把div的border打開,你發(fā)現(xiàn)圖片底部不是緊貼著容器底部的,是img后面的空白字符造成,要消除必須這樣寫

     
     
     
    1.  
    2.  
    3.  
     
  •  
  • 后面兩個標簽要緊挨著。IE7下這個bug依然存在。解決方案:給img設定display:block。

    12.失去line-height。文字

    ,很遺憾,在IE6下單行文字line-height效果消失了。。。,原因是這個inline-block元素和inline元素寫在一起了。解決方案:讓img和文字都float起來。

    引申:大家知道img的align有text-top,middle,absmiddle啊什么的,你可以嘗試去調(diào)整img和文字讓他們在IE和Firefox下能一致,你會發(fā)現(xiàn)怎么調(diào)都不會讓你滿意。索性讓img和文字都float起來,用margin調(diào)整。

    13.鏈接的hover狀態(tài)。a:hoverimg{width:300px}我們想讓鼠標hover時,鏈接里包含的圖片寬度變化,可惜在IE6下無效,IE7、Firefox下有效。

    14.非鏈接的hover狀態(tài)。div:hover{}這樣的樣式IE6是不認的,在IE7、Firefox下才有效果。

    15.block化的a鏈接,其內(nèi)套absolute層,absolute層內(nèi)放置img,IE下,鼠標點擊img不會有鏈接效果,F(xiàn)irefox、op下正常。

    想不出來了,以后想到再加吧。上面的諸多問題如果你掌握了其中奧妙,90%的不兼容問題不需要另起csshack的。

    16.無法徹底清除的float。如果讓ul下的li具有了float屬性,如何clear浮動的li呢?

    或者
    • class=”c”>
    或者
    • class=”c”>
    或者
    class=”c”>
    或者上述的組合?這個問題,我無法給出解答。下面有個例子與此相關(guān)

     
     
     
    1.  
    2. ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd> 
    3.  
    4.  
    5. .c{clear:both;overflow:hidden;+overflow:visible}  
    6. .bd{border:1pxsolidred}  
    7.  
    8. ul.ex{list-style:none;}  
    9. ul.exli{float:left;border:1pxsolidgreen;}  
    10.  
    11.  
    12. sfsdfsfdf
    13.  
    14. sfsdfsfdf
    15.  
    16.  
     
  • sfsdfsfdf
  •  
  •  
  • 請在IE下測試,僅僅將margin-top:19px改為margin-top:20px你發(fā)現(xiàn)什么了?要素:doctype必須有,IE6、IE7下margin-top:19px還好好的,margin-top:20px就出問題了,無法解釋。。。大家還可以將clear層換不同的位置測試。

    解決方案:給ul屬性zoom:1(給li加zoom:1沒用)

    引申:clear層應該單獨使用。也許你為了節(jié)省代碼把clear屬性直接放到下面的一個內(nèi)容層,這樣有問題,不僅僅是Firefox和op下失去margin效果,IE下某些margin值也會失效
     

     
     
     
    1. dd
     
  • Firefox
  •  
  •  
  • 17.IE下overflow:hidden對其下的絕對層position:absolute或者相對層position:relative無效。解決方案:給overflow:hidden加position:relative或者position:absolute。另,IE6支持overflow-x或者overflow-y的特性,IE7、Firefox不支持。

    18.IE6下嚴重的bug,float元素如沒定義寬度,內(nèi)部如有div定義了height或zoom:1,這個div就會占滿一整行,即使你給了寬度。float元素如果作為布局用或復雜的容器,都要給個寬度的。

    19.IE6下的bug,絕對定位的div下包含相對定位的div,如果給內(nèi)層相對定位的div高度height具體值,內(nèi)層相對層將具有100%的width值,外層絕對層將被撐大。解決方案給內(nèi)層相對層float屬性。

    20.IE6下的bug,內(nèi)有的情況下,position:relative層下的float層內(nèi)文字無法選中。這個bug迫使我修公用樣式庫。

    21.終于來了個Firefox的缺點。width:100%這個東西在IE里用很方便,會向上逐層搜索width值,忽視浮動層的影響,F(xiàn)irefox下搜索至浮動層結(jié)束,如此,只能給中間的所有浮動層加width:100%才行,累啊。opera這點倒學乖了跟了IE。

    【編輯推薦】

    1. IE6 IE7 IE8瀏覽器的兼容性對弈
    2. DIV層在IE6下被下拉框遮擋的解決方法
    3. JavaScript巧解IE6至IE8兼容問題
    4. 微軟展示IE9瀏覽器 力推IE8將取代IE6市場
    5. 使用X-UA-Compatible來設置IE8兼容模式

    分享名稱:解決IE6、IE7、IE8、Firefox兼容的幾種方案
    文章分享:http://www.dlmjj.cn/article/cdhgioh.html

    其他資訊