網(wǎng)頁在IE6和IE7顯示錯位的問題問:
IE6網(wǎng)頁顯示錯位,IE7顯示正常 我用dreamweaver制作的靜態(tài)頁面,,DIV+CSS格式的,,在IE7.0瀏覽器和火狐瀏覽器中顯示都很正常,但是在IE6.0中顯示就不正常,,這是怎么回事呀,,請高手幫忙?,! 答: 區(qū)別不同瀏覽器,,CSS hack寫法: 區(qū)別IE6與FF: backgroundrange;*background:blue; 區(qū)別IE6與IE7: background:green !important;background:blue; 區(qū)別IE7與FF: backgroundrange; *background:green; 區(qū)別FF,IE7,,IE6: backgroundrange;*background:green !important;*background:blue; 注:IE都能識別*;標準瀏覽器(如FF)不能識別*,; IE6能識別*,但不能識別 !important, IE7能識別*,,也能識別!important; FF不能識別*,但能識別!important; 另外再補充一個,,下劃線"_", IE6支持下劃線,,IE7和firefox均不支持下劃線。 于是大家還可以這樣來區(qū)分IE6,,IE7,,firefox : background:orange;*background:green;_background:blue; 問: css+div做的網(wǎng)頁在ie7里錯位了,在ie6里好好的,,這個在css里可以改嗎,? 答: 用CSS+DIV來寫網(wǎng)站代碼的好處顯而易見,這里不多說了,,但由于不同瀏覽器對CSS的解釋不統(tǒng)一,,造成不同瀏覽器下頁面錯位的現(xiàn)象十分常見…… cs.Phontol.com頁面亂的原因是因為IE6認為一個DIV超寬了,所以把本應(yīng)float;right的DIV擠了下去,。Phontol.com而如果設(shè)置為IE6下顯示正常的寬度,,則在IE7和Firefox下看頁面就會少了一塊一樣,,也很別扭…. cs.Phontol.com怎么辦?用CSS HACK 來改寫CSS代碼 cs.Phontol.com cs.Phontol.com改寫前:xxx. yyy:{width:600px;} (當設(shè)為IE7和Firefox下顯示正常的600px時,,IE6下會錯位,,改為590px,則IE6下正常,,IE7和Firefox下顯示不完美) cs.Phontol.com改寫后: xxx. yyy{width:600px;* width:600px;_ width:590px;} cs.Phontol.com(Firefox不認識*和_,,而IE都認識*,IE7不支持_,,IE6支持_) cs.Phontol.com順序千萬不要亂,,因為當出現(xiàn)重復(fù)定義時,瀏覽器默認按最后一下渲染,,所以一定要先正常,,再*,最后_,。Phontol.com cs.Phontol.com這樣Firefox讀取時只看到了正常的定義,,而IE都能看到第二個*的定義,于是忽略第一個正常的定義,,而IE中因為IE7不再支持_,,所以按照第一個帶*號的執(zhí)行,IE6支持_,,所以認為帶*后的也是重復(fù)定義,,予以忽略,執(zhí)行最后一個定義,。Phontol.com cs.Phontol.com cs.Phontol.com有人喜歡用!important來進行CSS HACK,,但我覺得!important寫起來太長了,不如*和_簡單直觀,。Phontol.com cs.Phontol.com cs.Phontol.com只要記住IE7=*,,IE6=_,然后按照先Firefox后IE7,,最后IE6的順序進行編寫,,一般就可以保證大部分用戶瀏覽正常了。Phontol.com 來源:收集整理于互聯(lián)網(wǎng) IE下很多地方可以省略一些層定義的浮動屬性,但是FF不行,必須每個個層都寫清楚,幾個DIV層水平排列的時候,IE6中必須要加display:inline;,不然前端會出現(xiàn)雙倍間距,而FF中則加不加display都顯示正常.這些都是由瀏覽器默認值的不同而引起的,你看到那些大站的布局在各瀏覽器中都顯示正常,是因為他們把這些默認有區(qū)別的地方都定義清楚了. 下面的兼容要點引自互聯(lián)網(wǎng) CSS對瀏覽器的兼容性具有很高的要求,,通常情況下IE和Firefox(簡稱FF)存在很大的解析差異,,這里介紹一下兼容要點。 常見的兼容問題: 1.DOCTYPE影響CSS處理 2.FireFox火狐:div設(shè)置margin-left,margin-right為auto時已經(jīng)居中,IE不行 3.FireFox火狐:body設(shè)置text-align時,div需要設(shè)置margin:auto(主要是margin-left,margin-right)方可居中 4.FireFox火狐:設(shè)置padding后,div會增加height和width,但IE不會,故需要用!important多設(shè)一個height和width 5.FireFox火狐:支持!important,IE則忽略,可用!important為FireFox火狐特別設(shè)置樣式 6.div的垂直居中問題:vertical-align:middle;將行距增加到和整個DIV一樣高line-height:200px;然后插入文字,,就垂直居中了,。缺點是要控制內(nèi)容不要換行 7.cursor:pointer可以同時在IEFireFox火狐中顯示游標手指狀,hand僅IE可以 8.FireFox火狐:鏈接加邊框和背景色,,需設(shè)置display:block,同時設(shè)置float:left保證不換行,。參照menubar,給a和menubar設(shè)置高度是為了避免底邊顯示錯位,若不設(shè)height,可以在menubar中插入一個空格,。 9.在mozillafirefox和IE中的BOX模型解釋不一致導(dǎo)致相差2px解決方法: div{margin:30px!important;margin:28px;} 注意這兩個margin的順序一定不能寫反,據(jù)阿捷的說法!important這個屬性IE不能識別,,但別的瀏覽器可以識別,。所以在IE下其實解釋成這樣: div{maring:30px;margin:28px} 重復(fù)定義的話按照最后一個來執(zhí)行,所以不可以只寫margin:XXpx!important; 10.IE5和IE6的BOX解釋不一致 IE5下 div{width:300px;margin:0 10px 0 10px;} div的寬度會被解釋為300px-10px(右填充)-10px(左填充)最終div的寬度為280px,,而在IE6和其他瀏覽器上寬度則是以300px+10px(右填充)+10px(左填充)=320px來計算的,。這時我們可以做如下修改 div{width:300px !important;width/**/:340px;margin:0 10px 0 10px} 關(guān)于這個/**/是什么我也不太明白,只知道IE5和firefox都支持但IE6不支持 11.ul標簽在Mozilla中默認是有padding值的,而在IE中只有margin有值所以先定義 ul{margin:0;padding:0;}就能解決大部分問題 |
|