2010-11-06 37 views
1

我有以下代碼:IE7中的Buggy HTML表格有幫助嗎?

<!DOCTYPE html> 
<html> 
    <head> 
     <style> 
      .tl, .tr, .bl, .br, .b, .t { 
       background: #f00; 
       width: 16px; 
       height: 16px; 
      } 

      .m { 
       background: url('https://www.google.com/images/logos/ssl_logo_lg.gif') #0f0; 
      } 

      table { 
       width: 512px; 
       height: 512px; 
       border-spacing: 0px; 
       border-collapse: collapse; 
       table-layout: fixed; 
      } 
     </style> 
    </head> 
    <body> 
     <table> 
      <tr> 
       <td class="tl">&nbsp;</td> 
       <td class="t">&nbsp;</td> 
       <td class="tr">&nbsp;</td> 
      </tr> 
      <tr> 
       <td>&nbsp;</td> 
       <td class="m">test</td> 
       <td>&nbsp;</td> 
      </tr> 
      <tr> 
       <td class="bl">&nbsp;</td> 
       <td class="b">&nbsp;</td> 
       <td class="br">&nbsp;</td> 
      </tr> 
     </table> 
    </body> 
</html> 

它工作正常,只要我不看它與IE7做。由於某種原因IE7不尊重我的寬度和高度設置爲16px,而是使所有行和列都取平均大小。奇怪的是,儘管它在怪癖模式下工作,但現在在標準模式下,這有什麼用?

P.S.有沒有其他的方式來完成一個類似的佈局,有16x16的角落,16px的頂部和底部,而中間適合?

回答

2

height:100%;.m

+0

它變得太高... – Tower 2010-11-06 14:19:33

+0

修改高度值以適合您的需求 – Sotiris 2010-11-06 14:24:25

1

嘗試給每個單元部分內容:

<td class="tl">&nbsp;</td> 

應該修復它。

+0

這沒有幫助。沒有什麼不同。 :/ – Tower 2010-11-06 13:06:57

+0

@rFactor第二次看,這不能工作,因爲表的總寬度超過3×16像素,可以嗎? – 2010-11-06 16:32:03

1

border-spacingborder-collapse在IE7及以下版本中不受支持。嘗試使用

<table cellspacing="0" cellpadding="0">

更新:

我沒有IE7也不IE6在這裏,所以這只是一個猜測:嘗試.M的寬度和高度設置爲自動。如果不工作(?因爲這將是太容易了吧:)),您可以手動設置尺寸480像素(512 - 2 * 16)

+0

沒有變化。還是行不通。 :/ – Tower 2010-11-06 13:58:06

+0

「自動」設置也不起作用。所以,我想我唯一能夠在IE 7中工作的機會是自己計算高度? – Tower 2010-11-07 11:21:35

+0

@rFactor您可以嘗試那些解決IE7和其他版本IE的問題的ie7.js腳本... – 2010-11-07 11:44:29

0

試試這個:

<style> 
      table { 
      width: 512px; 
      border-spacing: 0px; 
      border-collapse: collapse; 
      table-layout: fixed; 
     } 
     table .m 
     { 
      background: url('https://www.google.com/images/logos/ssl_logo_lg.gif') #0f0; 
      height: 512px; 
     } 
     .tl, .tr, .bl, .br, .b, .t { 
      background: #f00; 
      width: 16px; 
      height: 16px; 

     } 


    </style> 
+0

這是不是工作呢?至少當我在IE7中測試它時似乎沒問題。 – mikel 2010-11-20 11:57:21