自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

IE7和IE8的CSS樣式八大差異

開發(fā) 前端
本文向大家描述一下IE7和IE8的CSS樣式八大差異,Microsoft官方并未提供關(guān)于IE7及IE8的CSS差異說明文件,只是說IE8目前更趨近于CSS2.1而非CSS2.0,這里規(guī)類出8個最常見的差異供讀者們參考。

你對IE7和IE8的CSS樣式八大差異是否了解,這里和大家分享一下,IE7所設(shè)計(jì)的網(wǎng)頁,在IE8上的呈現(xiàn)會有所出入,所幸拜IE7相容檢視功能所賜,目前因使用IE8而導(dǎo)致版面錯誤的網(wǎng)站并不多。

IE7和IE8的CSS樣式八大差異

InternetExplorer8預(yù)設(shè)是以CSS2.1為標(biāo)準(zhǔn),并修正了許多InternetExplorer7的CSSBug,這意味著有一部份以往依據(jù)IE7所設(shè)計(jì)的網(wǎng)頁,在IE8上的呈現(xiàn)會有所出入,所幸拜IE7相容檢視功能所賜,目前因使用IE8而導(dǎo)致版面錯誤的網(wǎng)站并不多。但一值依賴IE7相容檢視功能并非長久之計(jì),盡早將網(wǎng)站修改為IE8相容才是長久之計(jì),因?yàn)楫吘笴SS是持續(xù)更新的,現(xiàn)在不改,日后大修的機(jī)會就更大。不幸的是,Microsoft官方并未提供關(guān)于IE7及IE8的CSS差異說明文件,頂多只是告訴我們IE8目前更趨近于CSS2.1而非CSS2.0,因此筆者在造訪許多網(wǎng)站后,規(guī)類出8個最常見的差異供讀者們參考。

1、起始座標(biāo)位置

先天上,IE7與IE8在預(yù)設(shè)網(wǎng)頁版面的起始位置就不同,以下面的代碼來說,在IE7及IE8上啟始的位置就有差異。
 

  1.  
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  3. <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml"> 
  4. <head> 
  5. <title>title> 
  6. head> 
  7. <body> 
  8. <divstyledivstyle="height:100px;width:200px;border:solid1pxblack"> 
  9. <div> 
  10. <ahrefahref="http://www.hinet.net">Hineta> 
  11. div> 
  12. div> 
  13. body> 
  14. html> 
  15.  

不過由于是整個偏移,對網(wǎng)頁的影響相當(dāng)小。

2、DIV中的P

下面的執(zhí)行結(jié)果呈現(xiàn)了IE7及IE8在處理DIV中的P之差異性。
 

  1.  
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  3. <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml"> 
  4. <head> 
  5. <title>title> 
  6. head> 
  7. <body> 
  8. <divstyledivstyle="height:100px;width:200px;border:solid1pxblack"> 
  9. <div> 
  10. <p>TESTFontp> 
  11. div> 
  12. div> 
  13. body> 
  14. html> 
  15.  

很明顯的,IE8中對于DIV中的P預(yù)設(shè)位置與IE7不同,IE7是將margin-top預(yù)設(shè)為0px,排在最上方,,IE8卻未預(yù)設(shè)margin-top,
解決方法是將margin-top加上。
 

  1.  
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  3. <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml"> 
  4. <head> 
  5. <title>title> 
  6. head> 
  7. <body> 
  8. <divstyledivstyle="height:100px;width:200px;border:solid1pxblack"> 
  9. <div> 
  10. <pstylepstyle="margin-top:0px">TESTFontp> 
  11. div> 
  12. div> 
  13. body> 
  14. html> 
  15. (IE8Withmargin-top)  
  16.  

 #p#3、負(fù)數(shù)margin

許多網(wǎng)頁設(shè)計(jì)師常常以負(fù)數(shù)的margin來定位HTML元素的位置,目的是讓該元素與圖形對齊,IE7及IE8對于負(fù)數(shù)的解釋有蠻大的差異性。
程式4
 

  1.  
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  3. <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml"> 
  4. <head> 
  5. <title>title> 
  6. head> 
  7. <body> 
  8. <divstyledivstyle="height:100px;width:200px;border:solid1pxblack"> 
  9. <divstyledivstyle="background-color:Red;margin:-5px6px7px8px"> 
  10. <ahrefahref="http://www.hinet.net">Hineta> 
  11. div> 
  12. div> 
  13. body> 
  14. html> 
  15.  

由比較圖可看出,IE7遭遇負(fù)數(shù)時,并不會移出DIV的范圍,而IE8會,在筆者撰寫本文之時,大多數(shù)的不相容IE8網(wǎng)頁錯誤都源自于此。

4、TableWithBorderStyle

元素的Layout在每個瀏覽器上都會有些許差異的表現(xiàn),下面的代碼是一個在IE7及IE8上呈現(xiàn)相異的范例。Table
 

  1.  
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  3. <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml"> 
  4. <head> 
  5. <title>title> 
  6. head> 
  7. <body> 
  8. <tablestyletablestyle="border:double7pxgreen"> 
  9. <tr> 
  10. <tdstyletdstyle="border:double1pxgreen">atd> 
  11. <tdstyletdstyle="border:double1pxgreen">atd> 
  12. <tdstyletdstyle="border:double1pxgreen">atd> 
  13. tr> 
  14. <tr> 
  15. <tdstyletdstyle="border:double1pxgreen">atd> 
  16. <tdstyletdstyle="border:double1pxgreen">atd> 
  17. <tdstyletdstyle="border:double1pxgreen">atd> 
  18. tr> 
  19. <tr> 
  20. <tdstyletdstyle="border:double1pxgreen">atd> 
  21. <tdstyletdstyle="border:double1pxgreen">atd> 
  22. <tdstyletdstyle="border:double1pxgreen">atd> 
  23. tr> 
  24. table> 
  25. body> 
  26. html> 
  27.  

很明顯的,IE7的border寬度計(jì)算比IE8高,不過由于這是整體偏移,加上我們很少會設(shè)定太大的border寬度,影響程度幾乎等于0。#p#

5、bottom、top

當(dāng)使用絕對位置時,IE7與IE8會產(chǎn)生些許的偏移,這些偏移是整體性的,所以影響很小
例子:
 

  1.  
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  3. <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml"> 
  4. <head> 
  5. <title>title> 
  6. head> 
  7. <body> 
  8. <divstyledivstyle="height:100px;width:200px;border:solid1pxblack"> 
  9. <divstyledivstyle="background-color:Red;bottom:5px;top:5px;position:absolute;height:40px"> 
  10. TEST  
  11. div> 
  12. div> 
  13. body> 
  14. html> 
  15.  

很難看出來吧,因?yàn)槠坪苄。贿^確實(shí)是偏移了。

6、li+float

UL、LI加上float,在IE7于IE8有相當(dāng)大的差異,見:
 

  1.  
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  3. <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml"> 
  4. <head> 
  5. <title>title> 
  6. head> 
  7. <body> 
  8. <div> 
  9. <div> 
  10. <ul> 
  11. <listylelistyle="cursor:hand;float:left;"> 
  12. TEST1li> 
  13. <listylelistyle="cursor:hand;float:left;"> 
  14. TEST2li> 
  15. <listylelistyle="cursor:hand;float:left;"> 
  16. TEST3li> 
  17. <listylelistyle="cursor:hand;float:left;"> 
  18. TEST4li> 
  19. <listylelistyle="cursor:hand;float:left;"> 
  20. TEST5li> 
  21. ul> 
  22. div> 
  23. div> 
  24. body> 
  25. html> 
  26.  

在IE7上,LI的項(xiàng)目符號被取消了,而在IE8上則正常顯示,但卻因?yàn)槭莊loat,所以后面的項(xiàng)目符號蓋到前一項(xiàng)目了。修改為程式8的模樣后
,兩者就趨近相同了。

  1.  
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  3. <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml"> 
  4. <head> 
  5. <title>title> 
  6. head> 
  7. <body> 
  8. <div> 
  9. <div> 
  10. <ulstyleulstyle="list-style-type:none"> 
  11. <listylelistyle="cursor:hand;float:left;"> 
  12. TEST1li> 
  13. <listylelistyle="cursor:hand;float:left;"> 
  14. TEST2li> 
  15. <listylelistyle="cursor:hand;float:left;"> 
  16. TEST3li> 
  17. <listylelistyle="cursor:hand;float:left;"> 
  18. TEST4li> 
  19. <listylelistyle="cursor:hand;float:left;"> 
  20. TEST5li> 
  21. ul> 
  22. div> 
  23. div> 
  24. body> 
  25. html> 
  26.  

在嘗試尋找CSS相異點(diǎn)時,許多網(wǎng)站都有這類問題,因?yàn)槲覀兂S眠@種手法來處理頁簽類的顯示。
PS:list-style-type在IE7時,只要li是float,就會被完全忽略。#p#

7、div+heightwithulandimage

當(dāng)DIV設(shè)定了固定大小,而內(nèi)容超出所定大小,然后后方跟著IMG時,在IE7及IE8會有相當(dāng)大的差異。
 

  1.  
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  3. <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml"> 
  4. <head> 
  5. <title>title> 
  6. head> 
  7. <body> 
  8. <div> 
  9. <divstyledivstyle="width:300px;height:22px;margin-top:5px"> 
  10. <ulstyleulstyle="list-style-type:none"> 
  11. <listylelistyle="cursor:hand;float:left;"> 
  12. TEST1li> 
  13. <listylelistyle="cursor:hand;float:left;"> 
  14. TEST2li> 
  15. <listylelistyle="cursor:hand;float:left;"> 
  16. TEST3li> 
  17. <listylelistyle="cursor:hand;float:left;"> 
  18. TEST4li> 
  19. <listylelistyle="cursor:hand;float:left;"> 
  20. TEST5li> 
  21. <listylelistyle="cursor:hand;float:left;"> 
  22. TEST6li> 
  23. ul> 
  24. div> 
  25. <ahrefahref="http://www.hinet.net>"> 
  26. <imgsrcimgsrc="21565.jpg"width="300px"height="200px"/> 
  27. a> 
  28. div> 
  29. body> 
  30. html> 
  31.  

很明顯的,IE7會尊重DIV所制定的大小來安排后面的IMG位置,所以在圖14上看不出有何問題,但是在IE8里,當(dāng)內(nèi)容超出制定大小時,
IMG位置會順移開,所以就造成了此問題。在實(shí)務(wù)上,這算是相當(dāng)常見的相容性錯誤。
解決方法很簡單,將要被蓋住的那個LI移掉就好了,這本來就是錯誤的設(shè)計(jì)。

8、p的子控件對齊

有些網(wǎng)頁設(shè)計(jì)師習(xí)慣使用P加上子控件來描繪單行輸入+按紐的樣式,這些網(wǎng)頁在IE8上會有或許的差異,如果里面使用的IMG太多,
差異就會大到很難忽視。
 

  1.  
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  3. <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml"> 
  4. <head> 
  5. <title>title> 
  6. head> 
  7. <body> 
  8. <p> 
  9. <inputtypeinputtype="text"/> 
  10. <imgsrcimgsrc="add2.png"height="16px"width="16px"/> 
  11. p> 
  12. body> 
  13. html> 
  14.  

很明顯,IE7會對IMG置中于P,但I(xiàn)E8不會。這類問題很難解決,需要透過CSS判斷IE版本來提供不同的CSS,讓兩者趨近相同。
 

  1.  
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  3. <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml"> 
  4. <head> 
  5. <title>title> 
  6. 2009-08-13 10:12:07

    IE的CSS Bug

2010-08-18 10:37:16

IE6IE7IE8

2010-09-15 11:08:48

CSSIE6IE7

2010-09-08 16:59:48

CSS兼容IE7IE8

2010-08-19 09:24:20

CSS兼容IE7IE8

2010-08-18 10:24:51

IE6IE7IE8

2010-08-17 15:38:49

CSS兼容IE7IE8

2010-09-16 13:17:31

IE6IE7IE8

2011-03-08 11:14:35

IE7、IE8、IE

2011-06-03 15:41:27

CSS HACK

2010-08-18 15:57:14

IE6IE7IE8

2010-08-19 14:33:18

2010-08-20 13:15:54

IE6IE7IE8

2010-09-15 10:25:18

IE7IE8CSS兼容性

2010-09-15 10:14:19

IE7IE8兼容CSS

2010-08-19 10:56:55

JSIE6IE7

2010-09-16 13:33:47

IE6IE7IE8

2010-08-20 13:08:41

IE6IE7IE8

2010-08-17 15:33:28

CSS兼容IE7IE8

2010-08-19 14:19:12

IE6IE7IE8
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

業(yè)務(wù)
速覽
在線客服