Centrer du texte dans un tableau dans Twitter Bootstrap


114

Pour une raison quelconque, le texte à l'intérieur du tableau n'est toujours pas centré. Pourquoi? Comment centrer le texte à l'intérieur du tableau?

Pour que les choses soient vraiment claires: par exemple, je veux que "Lorem" soit placé au milieu des quatre "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

Réponses:


149

L' .table tdalignement du texte de s est défini sur la gauche plutôt que sur le centre.

L'ajout de ceci devrait centrer tous vos tds:

.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>

JSFIDDLE mis à jour


48
Dans les versions ultérieures, il existe une classe de centre de texte pour cela.
MGP

9
attention: .table td {text-align: center; }
centrera

9
@ xr09 Oui .text-center, mais la spécificité de .table tdle vaincra toujours. C'est pourquoi bootstrap aurait dû commencer avec des tagnames au lieu de se lancer directement dans des classes comme.table
Sinetheta

6
Ajoutez .texter-centerle <table>et toutes les lignes deviendront centrées.
chaim

Le commentaire @chaim doit être publié en tant que réponse. A travaillé sur bootstrap-vue 2.0.1
MrCodeX le

177

Dans Bootstrap 3 (3.0.3), l'ajout de la "text-center"classe à un tdélément fonctionne hors de la boîte.

Ie, les centres suivants some textdans une cellule de tableau:

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

3
J'ai aimé cette solution plutôt que de changer tout le style .table td.
Stuart

Vous pouvez également simplement ajouter la classe "text-center" à l'élément de table.
shad0wec

C'est la vraie réponse.
Nyxynyx

33

Je pense que le meilleur mélange pour html & Css pour un mod rapide et propre est:

<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>

fermez la <table>balise init puis copiez où vous voulez :) J'espère que cela peut être utile Passez une bonne journée w stackoverflow

ps Bootstrap v3.2.0


1
alors que cette question a déjà une réponse, il n'y a aucun sens de poster une nouvelle réponse !!
Pragnesh Ghoda シ

29

Vous pouvez faire aligner td sans changer le css en ajoutant un div avec une classe de "text-center" à l'intérieur de la cellule:

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

1
Qui a défini class?
Amol M Kulkarni

6
Pour autant que je sache, dans Bootstrap 2.3, les td {text-align:left}tentatives supplémentaires de centrer les choses seront remplacées. J'ai juste essayé de le faire de cette façon, sans succès.
Jason Lowenthal

12
<td class="text-center">

et corrigez .text-center dans bootstrap.css:

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

3
Je pense que vous ne voulez pas modifier directement bootstrap.css.
Mike Cole

3
Je n'avais pas besoin de réparer .text-center dans bootstrap.css, cela fonctionnait sans lui.
user573335

6

J'ai eu le même problème et une meilleure façon de le résoudre sans utiliser !importantétait de définir ce qui suit dans mon CSS:

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

De cette façon, la spécificité de la text-centerclasse fonctionne correctement dans les tableaux.


6

Si ce n'est qu'une seule fois, vous ne devez pas modifier votre feuille de style. Modifiez simplement ce détail td:

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

À votre santé


4

L'une des principales caractéristiques de Bootstrap est qu'il réduit l'utilisation de la balise! Important. Utiliser la réponse ci-dessus irait à l'encontre du but. Vous pouvez facilement personnaliser le bootstrap en modifiant les classes dans votre propre fichier css et en le liant après avoir inclus le css boostrap.



0

donnez simplement à l'environnement <tr>une classe personnalisée comme:

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

et faites en sorte que le css ne sélectionne que les <td>s qui sont à l'intérieur d'un <tr>avec votre classe personnalisée.

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

comme ça, vous ne risquez pas de remplacer d'autres tables ou même de remplacer une classe de base bootstrap (comme certains de mes prédécesseurs l'ont suggéré).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.