2012-08-01 16 views
6

Anche in questo caso, Internet Explorer non diventa facile con me. Ho una tabella con due celle nella stessa riga. Voglio visualizzare del testo allineato a sinistra (prima cella) e un altro allineato a destra (seconda cella). Questo è il lavoro completamente in Chrome e Firefox, ma in IE tutto il testo appare allineato a sinistra:La tabella HTML/CSS allinea correttamente il testo non funziona in IE

<table width="660px"> 
<tr> 
    <td align="left" width="160px">Text 1</td> 
    <td align="right" width="160px">Text 2</td> 
</tr> 

Dopo alcune ricerche mi sono chiesto se dovrei metterlo sul CSS, così ho cambiato in:

HTML:

<table class="anchors" width="660px"> 
<tr> 
    <td class="left" width="160px">Text 1</td> 
    <td class="right" width="160px">Text 2</td> 
</tr> 

CSS:

table.anchors td.left 
{ 
    text-align: left; 
} 

table.anchors td.right 
{ 
     text-align: right; 
} 

Si continua a non funzionare in IE (versione 9, almeno). Qualcuno ha un suggerimento su questo? Dovrei usare qualcos'altro (un div, per esempio)?

+0

Ti dispiace fare un [violino] (http://jsfiddle.net)? – Inkbug

+0

Sembra funzionare bene in IE9 anche in fase di progettazione iniziale. Aggiungi un bordo alla tua tabella per ottenere più effetti visivi su come il testo è allineato. –

+0

Il modo più rapido per risolvere questi tipi di problemi è utilizzare gli strumenti di sviluppo IE (F12). Quindi puoi apportare modifiche al css e vedere i risultati in tempo reale. –

risposta

3

Il codice è sintatticamente errato (width attributi assumono valori numerici o percentuali, non con px unità), anche se questo graziato dai browser . Più seriamente, si stanno impostando requisiti in conflitto: la tabella deve essere larga 660 pixel ma consiste di due celle di 160 pixel di larghezza. Non sorprende che il comportamento del browser sia incoerente.

Tuttavia, IE 8 e IE 9 si comportano come gli altri browser in "Modalità standard". Altrimenti, in Quirks Mode, potrebbe accadere di tutto, e non è possibile chiamarlo un bug, perché il documento non è conforme. Quindi aggiungi una dichiarazione di doctype adeguata.

Inoltre, è consigliabile evitare requisiti in conflitto. Se hai bisogno di impostare una larghezza totale sulla tabella in pixel, così sia. Quindi, imposta le larghezze delle colonne in modo che si sommino o, più semplicemente, impostate per es. le larghezze al 50% (per una tabella a due colonne che dovrebbe essere bilanciata).

+0

Avevi ragione, Jukka. guarda i commenti al mio post originale qui sopra. Grazie per tutte le correzioni! – jaff

1

http://jsfiddle.net/6jvnQ/

Si può cambiare la larghezza della tabella in modo che sia il più ampio le due celle? Sospetto che tu abbia risultati diversi a causa delle strane larghezze.

+1

Era esattamente quello, Jonas. Vedi le mie risposte al mio stesso post per i dettagli. Grazie! – jaff

0

suo un bug

Questo collegamento può aiutare a

TEXT ALIGN BUGS

+0

La pagina dice che ha effetto su IE 6 e 7, ma l'OP ha dichiarato IE 9 –

+0

op ha detto, deve funzionare almeno in ie9. – Prashobh

+0

Era qualcos'altro, prash. Vedi i miei commenti al post originale per i dettagli. Tuttavia, grazie! – jaff

0

uso questo:

padding-left: 22% o 22px o qualsiasi lunghezza