Centrare il testo in una tabella in Twitter Bootstrap


114

Per qualche motivo, il testo all'interno della tabella non è ancora centrato. Perché? Come centrare il testo all'interno della tabella?

Per renderlo davvero chiaro: ad esempio, voglio che "Lorem" si trovi nel mezzo dei quattro "1".

@import url('http://twitter.github.com/bootstrap/assets/css/bootstrap.css');
table,
thead,
tr,
tbody,
th,
td {
  text-align: center;
}
<table class="table">
  <thead>
    <tr>
      <th>1</th>
      <th>1</th>
      <th>1</th>
      <th>1</th>
      <th>2</th>
      <th>2</th>
      <th>2</th>
      <th>2</th>
      <th>3</th>
      <th>3</th>
      <th>3</th>
      <th>3</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td colspan="4">Lorem</td>
      <td colspan="4">ipsum</td>
      <td colspan="4">dolor</td>
    </tr>
  </tbody>
</table>

JSFiddle

Risposte:


149

L' .table tdallineamento del testo di è impostato a sinistra, anziché al centro.

L'aggiunta di questo dovrebbe centrare tutti i tuoi messaggi td:

.table td {
   text-align: center;   
}

@import url('https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css');
table,
thead,
tr,
tbody,
th,
td {
  text-align: center;
}

.table td {
  text-align: center;
}
<table class="table">
  <thead>
    <tr>
      <th>1</th>
      <th>1</th>
      <th>1</th>
      <th>1</th>
      <th>2</th>
      <th>2</th>
      <th>2</th>
      <th>2</th>
      <th>3</th>
      <th>3</th>
      <th>3</th>
      <th>3</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td colspan="4">Lorem</td>
      <td colspan="4">ipsum</td>
      <td colspan="4">dolor</td>
    </tr>
  </tbody>
</table>

Aggiornato JSFIDDLE


48
Nelle versioni successive c'è una classe di centro di testo per questo.
MGP

9
attenzione: .table td {text-align: center; }
centrerà

9
@ xr09 Sì .text-center, ma la specificità di .table tdsarà comunque sconfitta. Questo è il motivo per cui bootstrap avrebbe dovuto iniziare con tagnames invece di lanciarsi direttamente in classi come.table
Sinetheta,

6
Aggiungere .texter-centerin <table>e tutte le righe diventeranno centrato.
chaim

Il commento di @chaim dovrebbe essere pubblicato come risposta. Ha lavorato su bootstrap-vue 2.0.1
MrCodeX il

177

In Bootstrap 3 (3.0.3) l'aggiunta della "text-center"classe a un tdelemento funziona immediatamente.

Cioè, i seguenti centri some textin una cella di tabella:

<td class="text-center">some text</td>

3
Mi è piaciuta questa soluzione rispetto al cambiamento dell'intero stile .table td.
Stuart

Puoi anche aggiungere semplicemente la classe "text-center" all'elemento della tabella.
shad0wec

Questa è la vera risposta.
Nyxynyx

33

Penso che il miglior mix per html e Css per mod veloce e pulito sia:

<table class="table text-center">
<thead>
        <tr>                    
        <th class="text-center">Uno</th>
        <th class="text-center">Due</th>
        <th class="text-center">Tre</th>
        <th class="text-center">Quattro</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
        <td>4</td>
    </tr>
</tbody>
</table>

chiudi il <table>tag init quindi copia dove vuoi :) Spero che possa essere utile Buona giornata w stackoverflow

ps Bootstrap v3.2.0


1
anche se questa domanda ha già una risposta, non ha senso pubblicare una nuova risposta !!
Pragnesh Ghoda シ

29

Puoi allineare td senza modificare il css aggiungendo un div con una classe di "text-center" all'interno della cella:

    <td>
        <div class="text-center">
            My centered text
        </div>
    </td>

1
Chi l'ha definito class?
Amol M Kulkarni

6
Per quanto ne so, in Bootstrap 2.3 td {text-align:left}sovrascriverà qualsiasi ulteriore tentativo di centrare le cose. Ho appena tentato di farlo in questo modo, senza successo.
Jason Lowenthal

12
<td class="text-center">

e correggi .text-center in bootstrap.css:

.text-center {
    text-align: center !important;
}

3
Credo che tu non voglia modificare direttamente bootstrap.css.
Mike Cole

3
Non avevo bisogno di correggere .text-center in bootstrap.css, funzionava senza di esso.
user573335

6

Ho avuto lo stesso problema e un modo migliore per risolverlo senza utilizzare !importantera definire quanto segue nel mio CSS:

table th.text-center, table td.text-center { 
    text-align: center;
}

In questo modo la specificità della text-centerclasse funziona correttamente nelle tabelle.


6

Se è solo una volta, non dovresti alterare il tuo foglio di stile. Basta modificare quel particolare td:

<td style="text-align: center;">

Saluti


4

Una delle caratteristiche principali di Bootstrap è che allevia l'uso del tag! Important. Usare la risposta di cui sopra vanificherebbe lo scopo. Puoi personalizzare facilmente il bootstrap modificando le classi nel tuo file css e collegandolo dopo aver incluso il css boostrap.



0

basta dare all'ambiente circostante <tr>una classe personalizzata come:

<tr class="custom_centered">
  <td>1</td>
  <td>2</td>
  <td>3</td>
</tr>

e fai in modo <td>che il CSS selezioni solo i messaggi che si trovano all'interno di un <tr>con la tua classe personalizzata.

tr.custom_centered td {
  text-align: center;
}

in questo modo non rischi di sovrascrivere altre tabelle o addirittura sovrascrivere una classe base bootstrap (come suggerito da alcuni dei miei predecessori).

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.