2011-01-25 4 views
6

에이 내 IE에서 작동하지 않습니다 작동하지 않습니다패딩 테이블은 IE

<table style="padding:5px">...</table> 

를이 오페라에서 작동하지만.

해결 방법이 있습니까?

답변

17

초기의 CSS 사양을 (IE6는 다음 어떤 - 나는 단어가 느슨하게 "다음"을 사용) 테이블에 정의 된 어떤 패딩에 대해 명확하지 않다해야 심지어 의미. IE6는 자연스럽게 패딩을 무시함으로써 다른 모든 브라우저와 다르게 해석하기로 결정했습니다. 다른 브라우저는 셀 내부 또는 내부 셀 사이의 간격에 영향을주지 않고 테이블 테두리와 가장 바깥 쪽 셀 사이에 간격을 추가하여 렌더링하기로 결정했습니다. IE7이 나왔을 때, 사양은 다른 브라우저처럼 작동하도록 정리되었지만 IE6에는 여전히 패딩을 무시하는 문제가 있습니다.

가장 좋은 해결책은 테이블에 패딩을 넣지 않고 div로 둘러싼 다음 패딩을 놓는 것입니다. (그냥 테이블에 패딩 반대로) 당신이 원하는 것은 셀 간격 또는 셀 패딩이 경우 당신이 원하지 않는 경우에도

<div style="padding: 5px;"> 
    <table...> 
    </table> 
</div> 

은 물론, 당신은,합니다 (cellspacing 또는 cellpadding 속성을 사용한다 IE6 테이블 렌더링과 별개의 문제를 피하려면 최소한 cellspacing="0"이 필요합니다.

또한 인라인 스타일은 데모 목적으로 사용됩니다. CSS 클래스를 사용하는 것이 일반적으로 더 나은 방법으로 간주됩니다.

+2

답변 해 주셔서 감사합니다. div를 패딩과 함께 사용해야했는데 정상적으로 작동했습니다. 또한, IE6 용 cellspacing = "0"사용에 대한 조언을 주셔서 감사합니다, 나는 그것을 몰랐다. 다른 브라우저들 사이에는 많은 기이함이 있습니다. 알고 있으면 시간이 많이 절약됩니다. 언젠가 그들 모두를 배우기를 희망합니다. 다시 한번 감사드립니다. – fabio

0

<table cellpadding="5">을 사용해 보셨습니까? IE는 CSS 스타일링에 문제가 있습니다. 또한 구문을 잘못 입력하여 세미콜론을 잊어 버렸습니다.

+3

실제로 CSS 블록의 마지막 규칙에는 세미콜론이 필요하지 않으므로 여기에 구문 오류가 없습니다. 즉, 어쨌든 최종 세미콜론을 추가하는 것이 좋은 형태로 간주됩니다. –

+0

좋은 점, 그 규칙을 잊어 버렸습니다. 추측 컨데 그것은 단지 오래된 습관이고 내 구문에 항문 인 것 같습니다 : P – MidnightAnarchst

0

코드에서 다른 부분이 잘못되었을 것으로 추측합니다.

패딩 IE에서 잘 작동합니다

http://jsbin.com/ewuho4/

+1

이 미리보기는 IE의 이후 버전 용입니다. IE6 *에는 패딩 문제가 있습니다. –

+0

Touche; 그 가증 한 점을 잊어 버렸어. – jvenema

+0

안녕 얘들 아, 내 IE는 실제로 버전 8입니다 !! 나는 그것이 다른 언어를위한 특별판이라고 생각한다. 나는 확실히 모른다. – fabio

0

셀을 채우고 싶다면 테이블을 패딩하려는 경우 셀 패딩 속성 (cellpadding = "X")을 사용하십시오. 그러면 구조가 어색하기 때문에 공간을 원할 경우 여백을 두는 것이 좋습니다 그것과 나머지 물건들 사이에. Padding은 IE에서 작동하지 않습니다. IE의 팬이 아닙니다. 나는 그것을 비난하지 않습니다.

+0

나는 여백을 사용하여 한판 승부를 생각했지만 패딩이 잘 작동하지 않는다는 생각 때문에 작동하지 않았다. 어쨌든 padding으로 div를 사용하고 있습니다. 고맙습니다 – fabio