2011-01-25 17 views

Respuesta

17

Las especificaciones CSS anteriores (que IE6 sigue - y utilizo la palabra "sigue" en términos generales) no están claros acerca de lo que el relleno definido en una tabla debe incluso decir. IE6, naturalmente, decidió interpretar esto de manera diferente que cualquier otro navegador, ignorando el relleno. Otros navegadores decidieron renderizarlo al agregar espaciado entre el borde de la tabla y las celdas más externas, sin afectar el espaciado dentro de las celdas o entre las celdas internas. Cuando salió IE7, las especificaciones se habían aclarado para funcionar como los otros navegadores, pero IE6 todavía tiene el problema, donde simplemente ignora el relleno.

La mejor solución es evitar poner relleno en la mesa, sino rodearlo con un div y colocar el relleno allí.

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

Por supuesto, si lo que quiere es el espacio entre celdas o relleno de celda (en lugar de sólo el relleno sobre la mesa), entonces debería usar los cellspacing o cellpadding atributos (incluso si no desea que éstos, al menos necesita cellspacing="0" para evitar otro problema por separado con la representación de tablas IE6).

Además, los estilos en línea aquí son para propósitos de demostración; usar clases de CSS generalmente se considera una mejor práctica.

+2

Muchas gracias, tu respuesta es muy completa. Tuve que usar el div con relleno y funcionó bien. Además, gracias por el consejo de usar cellspacing = "0" para IE6, no lo sabía. Hay muchas rarezas entre diferentes navegadores que, si supiera, me ahorrarían mucho tiempo. Espero algún día aprenderlos todos. Gracias de nuevo. – fabio

0

¿Intentaste usar <table cellpadding="5">? IE tiene problemas con algunos estilos css. También su sintaxis es incorrecta, olvidó un punto y coma.

+3

En realidad, no se requiere un punto y coma en la regla final en bloques css, por lo que aquí no hay ningún error de sintaxis. Dicho esto, se considera buena forma de agregar un punto y coma final de todos modos. –

+0

Buen punto, se olvidó de esa regla. Supongo que solo son viejos hábitos y ser anal sobre mi sintaxis: P – MidnightAnarchst

0

Me aventuraría a adivinar algo más está mal en su código.

Relleno funciona bien en IE:

http://jsbin.com/ewuho4/

+1

Esta vista previa es para versiones posteriores de IE; IE6 * did * tiene el problema de relleno. –

+0

Touche; Me había olvidado de esa abominación. – jvenema

+0

Hola chicos, mi IE es en realidad la versión 8 !! Creo que es una versión especial para un idioma diferente, no estoy seguro. – fabio

0

Si desea rellenar las celdas, utilice la función de formación de celdas attribure (cellpadding = "X") si desea rellenar una mesa, eso es incómodo teniendo en cuenta su estructura, le recomiendo que ponga un margen si desea algo de espacio entre eso y el resto de las cosas. Padding no funciona en IE aunque no soy fanático de IE No lo culpo por eso

+0

Pensé en un combate con margen, pero pensé que, dado que el relleno no funcionaba, no funcionaría tan bien. Ahora estoy usando un div con relleno de todos modos. Gracias – fabio