2011-01-25 10 views

risposta

17

Le specifiche CSS precedenti (che IE6 segue - e io uso la parola "segue" in senso lato) non sono chiare su ciò che imbottitura definita su un tavolo dovrebbe significa anche. IE6, naturalmente, ha deciso di interpretarlo diversamente da ogni altro browser, ignorando il padding. Altri browser hanno deciso di renderlo aggiungendo la spaziatura tra il bordo della tabella e le celle più esterne, senza influenzare la spaziatura all'interno delle celle o tra le celle interne. Quando è uscito IE7, le specifiche si sono chiarite per funzionare come gli altri browser, ma IE6 ha ancora il problema, in cui semplicemente ignora il padding.

La soluzione migliore è evitare di mettere il padding sul tavolo, ma invece circondarlo con un div e mettere il padding lì.

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

Naturalmente, se quello che vuoi è la spaziatura delle cellule o imbottitura cella (in contrasto con appena imbottitura sul tavolo), allora si dovrebbe utilizzare il cellspacing o cellpadding attributi (anche se non si desidera che questi, hai almeno bisogno di cellspacing="0" per evitare un altro problema separato con il rendering della tabella IE6).

Inoltre, gli stili in linea qui sono a scopo dimostrativo; usare le classi CSS è generalmente considerato una pratica migliore.

+2

Grazie mille, la tua risposta è molto completa. Ho dovuto usare il div con imbottitura e ha funzionato bene. Inoltre, grazie per il consiglio di usare cellspacing = "0" per IE6, non lo sapevo. Ci sono molte stranezze tra i diversi browser che se avessi saputo mi avrebbero risparmiato un sacco di tempo. Spero un giorno di impararli tutti. Grazie ancora. – fabio

0

Hai provato a utilizzare <table cellpadding="5">? IE ha problemi con alcuni stili CSS. Anche la tua sintassi è sbagliata, hai dimenticato un punto e virgola.

+3

In realtà, non è richiesto un punto e virgola sulla regola finale nei blocchi css, quindi non c'è alcun errore di sintassi qui. Detto questo, è considerata una buona forma aggiungere comunque un punto e virgola finale. –

+0

Buon punto, ho dimenticato questa regola. Indovina sono solo vecchie abitudini ed essere anale riguardo la mia sintassi: P – MidnightAnarchst

0

Mi azzarderei a indovinare qualcos'altro è sbagliato nel codice.

Imbottitura funziona bene in IE:

http://jsbin.com/ewuho4/

+1

Questa anteprima è per le versioni successive di IE; IE6 * ha * avuto il problema del padding. –

+0

Touche; Mi ero dimenticato di quell'abominazione. – jvenema

+0

Ciao ragazzi, il mio IE è in realtà la versione 8 !! Penso che sia una versione speciale per una lingua diversa, non lo so per certo. – fabio

0

Se si desidera eseguire il pad delle celle, quindi utilizzare l'attribuzione del blocco di celle (cellpadding = "X") se si desidera eseguire il padd di una tabella, quindi è imbarazzante considerando la sua struttura, si consiglia di inserire un margine se si desidera dello spazio tra questo e il resto della roba. Padding non funziona su IE an anche se non sono un fan di IE non biasimo per quello

+0

Ho pensato a un attacco con margine ma ho pensato che dal momento che il padding non funzionava non funzionava altrettanto bene. Ora sto usando un div con padding comunque. Grazie – fabio