国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > CSS > 正文

網頁在IE6下正常在IE7下錯位的問題

2024-07-11 08:21:47
字體:
來源:轉載
供稿:網友

問:

css+div做的網頁在ie7里錯位了,在ie6里好好的,這個在css里可以改嗎?

答:

用css+div來寫網站代碼的好處顯而易見,這里不多說了,但由于不同瀏覽器對css的解釋不統一,造成不同瀏覽器下頁面錯位的現象十分常見……
cs.phontol.com頁面亂的原因是因為ie6認為一個div超寬了,所以把本應float;right的div擠了下去。phontol.com而如果設置為ie6下顯示正常的寬度,則在ie7和firefox下看頁面就會少了一塊一樣,也很別扭….
cs.phontol.com怎么辦?用css hack 來改寫css代碼
cs.phontol.com
cs.phontol.com改寫前:xxx. yyy:{width:600px;} (當設為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順序千萬不要亂,因為當出現重復定義時,瀏覽器默認按最后一下渲染,所以一定要先正常,再*,最后_。phontol.com
cs.phontol.com這樣firefox讀取時只看到了正常的定義,而ie都能看到第二個*的定義,于是忽略第一個正常的定義,而ie中因為ie7不再支持_,所以按照第一個帶*號的執行,ie6支持_,所以認為帶*后的也是重復定義,予以忽略,執行最后一個定義。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 來源:收集整理于互聯網

ie下很多地方可以省略一些層定義的浮動屬性,但是ff不行,必須每個個層都寫清楚,幾個div層水平排列的時候,ie6中必須要加display:inline;,不然前端會出現雙倍間距,而ff中則加不加display都顯示正常.這些都是由瀏覽器默認值的不同而引起的,你看到那些大站的布局在各瀏覽器中都顯示正常,是因為他們把這些默認有區別的地方都定義清楚了.

下面的兼容要點引自互聯網

css對瀏覽器的兼容性具有很高的要求,通常情況下ie和firefox(簡稱ff)存在很大的解析差異,這里介紹一下兼容要點。

常見的兼容問題:

1.doctype影響css處理

2.firefox火狐:div設置margin-left,margin-right為auto時已經居中,ie不行

3.firefox火狐:body設置text-align時,div需要設置margin:auto(主要是margin-left,margin-right)方可居中

4.firefox火狐:設置padding后,div會增加height和width,但ie不會,故需要用!important多設一個height和width

5.firefox火狐:支持!important,ie則忽略,可用!important為firefox火狐特別設置樣式

6.div的垂直居中問題:vertical-align:middle;將行距增加到和整個div一樣高line-height:200px;然后插入文字,就垂直居中了。缺點是要控制內容不要換行

7.cursor:pointer可以同時在iefirefox火狐中顯示游標手指狀,hand僅ie可以

8.firefox火狐:鏈接加邊框和背景色,需設置display:block,同時設置float:left保證不換行。參照menubar,給a和menubar設置高度是為了避免底邊顯示錯位,若不設height,可以在menubar中插入一個空格。

9.在mozillafirefox和ie中的box模型解釋不一致導致相差2px解決方法:
div{margin:30px!important;margin:28px;}
注意這兩個margin的順序一定不能寫反,據阿捷的說法!important這個屬性ie不能識別,但別的瀏覽器可以識別。所以在ie下其實解釋成這樣:
div{maring:30px;margin:28px}
重復定義的話按照最后一個來執行,所以不可以只寫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}
關于這個/**/是什么我也不太明白,只知道ie5和firefox都支持但ie6不支持

11.ul標簽在mozilla中默認是有padding值的,而在ie中只有margin有值所以先定義
ul{margin:0;padding:0;}就能解決大部分問題

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安顺市| 承德县| 纳雍县| 保定市| 镇雄县| 乳山市| 邛崃市| 南和县| 建始县| 高碑店市| 大丰市| 石泉县| 中阳县| 岳西县| 垦利县| 义马市| 苏尼特左旗| 都江堰市| 包头市| 南召县| 寻甸| 武宁县| 涞源县| 都昌县| 汝州市| 盐亭县| 青河县| 浦江县| 响水县| 扬中市| 六安市| 大同县| 江孜县| 洛川县| 卢龙县| 都江堰市| 达尔| 侯马市| 鄂托克旗| 长垣县| 会东县|