2009-09-03 11 views
2

IE7がこの例ではテーブルとulの間にスペースを入れようとしている理由を説明できますか?それはIE8やFFで起こっていないようです。UL7内のIE7の間隔

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<body> 
    <ul style="background-color: Blue;"> 
     <li> 
      <table cellpadding="0" cellspacing="0" border="0" width="100%" style="background-color: Red"> 
       <tr> 
        <td> 
         <img style="display: block" src="http://www.google.com/intl/en_ALL/images/logo.gif" 
          height="25" border="0" width="150" /> 
        </td> 
       </tr> 
      </table> 
      <ul style="background-color: Green"> 
       <li>One</li> 
       <li>Two</li> 
      </ul> 
     </li> 
    </ul> 
</body> 
</html> 
+0

関連性のないメモ、border = "0"は、cssでborder:none;または何か – marcgg

+0

問題は何とかimgタグに関連しています。私はテーブルと入れ子にされたulを取り除きましたが、スペースはまだ現れています。 – Jeremy

+0

アイドルの質問:ディスプレイを取り外すとスペースが表示されますか:画像からブロックしますか? – Martha

答えて

4

テーブルとulを含むliにhasLayoutを与える必要があります。

<ul style="background-color: Blue;"> 
    <li style="zoom:1;"> 
     <table cellpadding="0" cellspacing="0" border="0" width="100%" style="background-color: Red"> 
+0

偉大な記事、共有ありがとう! – Jeremy

+0

それは私のためにそれをした 'zoom'属性でした。とにかくそれは何ですか?私は何年もCSSをやっており、この属性については聞いたことがありません。あなたはIEを救う! – Chiramisu

2

すべてのブラウザのデフォルトスタイルは異なります。いくつかは他よりも理にかなっています。演奏フィールドのレベルを上げるには、CSS Resetを試してみてください。

+0

はこれをうまく説明できませんでした。+1 – marcgg

+0

私は上記の例でこれを試しましたが、YUIリセットを追加するとスペースが表示されます。 – Jeremy

+0

リセットが完璧ではないかもしれませんが、それは良い仕事をします。 – geowa4

1

これまでInternet Explorerでこの問題に挑戦しました。これが解決策です。</td></tr>タグの間のスペースを削除してください。

</td></tr></table> 

ブラウザは</td></tr>間TextNodeを作成し、これはあなたのページでご覧の追加スペースです:これは、あなたのHTMLがどうあるべきかです。

+0

なぜdownvote? :-S – Rodrigo

+0

レンダリングエンジンはこれを行います:s/\ s +/\ s/ – geowa4

+0

はい、エンジンはそのことをしていますが、試しましたか? – Rodrigo