2010-01-18 38 views
38

Ho una cella in un codice HTML <table>. Vorrei che una parte del contenuto della cella fosse giustificata e che la parte fosse giustificata correttamente. È possibile?Allinea a destra e allinea il testo alla sinistra nella stessa cella della tabella HTML

+0

Questo significa ... centrato? – duffymo

+3

@duffy: no lui significa allineato. Ho notato che le persone spesso confondono "giustificare" con "allineato" non facendo la distinzione tra giustificazione - cioè. un bordo della linea a filo - e allineamento - un bordo irregolare. infatti in molte applicazioni c'è solo "left justify". – prodigitalson

+0

grazie per la correzione - immagino di essere una di quelle persone confuse. – duffymo

risposta

72

Se li volete su righe separate fare quello che ha detto Balon. Se li volete sulle stesse linee, fare:

<td> 
    <div style="float:left;width:50%;">this is left</div> 
    <div style="float:right;width:50%;">this is right</div> 
</td> 
+0

Perché o perché dovresti usare un float qui quando puoi semplicemente usare 'text-align' sullo stesso elemento invece? – prodigitalson

+2

questo mantiene ancora il testo in allineamento a sinistra div allineato a sinistra – LukeP

+3

quindi "

this is right
" – kjagiello

0

sicuro, ma è necessario avvolgere quei "blocchi" in tag separati e applicare l'allineamento a quelli.

+0

quale tag userò per quei blocchi? – Brian

+0

a div o ap a seconda. Id probabilmente mantenerlo a livello di blocco però. p è che div è arbitary e in realtà non ha uno stile predefinito dove ap significa semanticamente un paragrafo e ha margini predefiniti e cosa non definito dalle regole css interne del browser (a meno che tu non lo abbia resettato, che è una buona pratica) – prodigitalson

2

Intendi questo?

<!-- ... ---> 
<td> 
    this text should be left justified 
    and this text should be right justified? 
</td> 
<!-- ... ---> 

Se sì

<!-- ... ---> 
<td> 
    <p style="text-align: left;">this text should be left justified</p> 
    <p style="text-align: right;">and this text should be right justified?</p> 
</td> 
<!-- ... ---> 
+0

I don ' Penso che questo sia ciò che vuole l'OP. La mia ipotesi è che abbia bisogno di una soluzione in cui le due stringhe sono poste l'una accanto all'altra - "nella stessa linea" –

+0

Forse hai ragione. Non ero sicuro di cosa avesse chiesto esattamente Comunque, lascerò il mio commento perché potrebbe essere utile a qualcuno – kjagiello

2

td style non è necessario, ma renderà più facile vedere questo esempio browser

<table> 
<tr> 
    <td style="border: 1px solid black; width: 200px;"> 
    <div style="width: 50%; float: left; text-align: left;">left</div> 
    <div style="width: 50%; float: left; text-align: right;">right</div> 
    </td> 
</tr> 
</table> 
0

Si potrebbe usare qualcosa come:

<td> 
    <div style="float:left;width:49%;text-align:left;">this is left</div> 
    <div style="float:right;width:49%;text-align:right;">this is right</div> 
</td> 

Il 49% è quello di dare un po 'di spazio per il rendering per avvolgere le cose intorno.

E si può utilizzare sia <div> o <span>

+1

Se si utilizza uno span, è necessario impostare anche 'display: block' affinché la proprietà width abbia effetto. –

8

E 'possibile, ma come dipende da ciò che si sta cercando di realizzare. Se è questo:

| Allineato a sinistra               allineato a destra | in una cella è possibile utilizzare div galleggianti all'interno del tag td:

<td> 
<div style='float: left; text-align: left'>Left-aligned</div> 
<div style='float: right; text-align: right'>Right-aligned</div> 
</td> 

Se è | Allineato a sinistra
                                                                                      Diritto allineato |

Quindi la soluzione di Balon è corretta.

Se è: | Allineamento a sinistra         |       con allineamento a destra |

allora è:

<td align="left">Left-aligned</td> 
<td align="right">Right-Aligned</td> 
8

sono arrivato fino a questo mentre si cerca di capire come visualizzare la valuta ('$' a sinistra, il numero a destra) nelle celle di tabella:

<div class="currency">20.34</div> 

.currency { 
    text-align: right; 
    width: 100%; 
} 

.currency:before { 
    content: "$"; 
    float: left; 
} 
1

La risposta di Tor Valamo con un piccolo contributo da parte mia: usa l'attributo "nowrap" nell'elemento "td", e puoi rimuovere la specifica "larghezza". Spero che sia d'aiuto.

<td nowrap> 
    <div style="float:left;">this is left</div> 
    <div style="float:right;">this is right</div> 
</td> 
Problemi correlati