2009-09-03 6 views
2

IE7이이 예에서 테이블과 ul 사이에 공백을 넣으려고하는 이유를 설명해 주실 수 있습니까? 그것은 IE8이나 FF에서 발생하지 않는 것 같습니다.UL7 내의 간격 IE

<!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