Come impedire il wrapping del testo in una cella di tabella


285

Qualcuno sa come posso evitare che il testo in una cella di una tabella venga spostato? Questo è per l'intestazione di una tabella e l'intestazione è molto più lunga dei dati sottostanti, ma ne ho bisogno per essere visualizzata su una sola riga. Va bene se la colonna è molto ampia.

L'HTML della mia tabella (semplificata) è simile al seguente:

<table>
  <thead>
    <tr>
      <th>
        <div>Really long column heading</div>
      </th>
      <th>
        <div>Really long column heading</div>
      </th>
      <th>
        <div>Really long column heading</div>
      </th>
      <th>
        <div>Really long column heading</div>
      </th>
      <th>
        <div>Really long column heading</div>
      </th>
      <th>
        <div>Really long column heading</div>
      </th>
      <th>
        <div>Really long column heading</div>
      </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>
        <div>data</div>
      </td>
      <td>
        <div>data</div>
      </td>
      <td>
        <div>data</div>
      </td>
      <td>
        <div>data</div>
      </td>
      <td>
        <div>data</div>
      </td>
      <td>
        <div>data</div>
      </td>
      <td>
        <div>data</div>
      </td>
    </tr>
  </tbody>
</table>

L'intestazione stessa è racchiusa in un div all'interno del thtag per motivi attinenti al javascript nella pagina.

Il tavolo esce con le intestazioni che si avvolgono su più righe. Questo sembra accadere solo quando la tabella è sufficientemente ampia, poiché il browser sta cercando di evitare lo scorrimento orizzontale. Nel mio caso, però, voglio uno scorrimento orizzontale.

Qualche idea?

Risposte:


486

Dai un'occhiata alla white-spaceproprietà, utilizzata in questo modo:

th {
    white-space: nowrap;
}

Ciò forzerà la <th>visualizzazione del contenuto di su una riga.

Dalla pagina collegata, ecco le varie opzioni per white-space:

normale
Questo valore indica agli interpreti di comprimere le sequenze di spazi bianchi e di interrompere le linee, se necessario, per riempire le caselle.

pre
Questo valore impedisce agli interpreti di comprimere sequenze di spazi bianchi. Le linee sono spezzate solo ai caratteri di nuova riga conservati.

nowrap
Questo valore comprime lo spazio bianco come per "normale", ma elimina le interruzioni di riga all'interno del testo.

pre-wrapping
Questo valore impedisce agli interpreti di comprimere sequenze di spazi bianchi. Le linee sono spezzate ai caratteri di nuova riga conservati e, se necessario, per riempire le caselle di linea.

pre-riga
Questo valore indica agli interpreti di comprimere sequenze di spazi bianchi. Le linee sono spezzate ai caratteri di nuova riga conservati e, se necessario, per riempire le caselle di linea.


8
non funziona per il campo di input e il pulsante nella stessa cella. posiziona casualmente sotto.
Doomsknight,

16
TableL'elemento deve avere table-layout:fixed;affinché questo funzioni.
daniloquio,

@Doomsknight Hai trovato un modo per raggiungerlo con un campo di input e un altro elemento nella stessa cella?
loveNoHate,

spazio bianco: pre; era quello che mi serviva perché -28.04 si stava avvolgendo tra il - e il 28.04
Brent l'

1
@Doomsknight Ho avuto lo stesso problema con una casella di controllo e risolto aggiornando il CSS coninput { display: inline; }
Programster



6

Sono arrivato a questa domanda che ha bisogno di impedire il ritorno a capo del trattino.

Ecco come l'ho fatto:

<td><nobr>Table Text</nobr></td>

Riferimento:

Come prevenire l'interruzione di riga in trattini su tutti i browser


Vale la pena notare che il nobrtag è non standard, come fuori punte nella risposta accettata collegato in questa risposta: stackoverflow.com/a/8755071/4257
pkaeding

Giusto. Il tuo punto è ben accolto. Ho letto tutti quei commenti, ho notato l'esperienza dei corrispondenti commentatori e ho fatto una richiesta di giudizio. Il trattino è un po 'complicato. (Nota: la domanda che hai collegato nel tuo commento è la stessa che ho collegato nella mia risposta)
cssyphus

Sì, doveva essere la stessa domanda. Volevo solo essere sicuro che l'avvertimento fosse pubblicato qui nel caso in cui qualcuno avesse trovato questa risposta in futuro e non mi preoccupassi di leggere il riferimento collegato.
pkaeding

1

Da utilizzare con l'interfaccia utente React / Material

Nel caso in cui ti stia chiedendo come funziona l'interfaccia utente materiale durante la creazione in React, ecco come aggiungere questo al tuo <TableHead>componente:

<TableHead style={{ whiteSpace: 'nowrap'}}>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.