Centering text in a table in Twitter Bootstrap
Twitter BootstrapTwitter Bootstrap Problem Overview
For some reason, The text inside the table still is not centered. Why? How do I center the text inside the table?
To make it really Clear: For example, I want "Lorem" to sit in the middle of the four "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>
Twitter Bootstrap Solutions
Solution 1 - Twitter Bootstrap
In Bootstrap 3 (3.0.3) adding the "text-center"
class to a td
element works out of the box.
I.e., the following centers some text
in a table cell:
<td class="text-center">some text</td>
Solution 2 - Twitter Bootstrap
The .table td
's text-align is set to left, rather than center.
Adding this should center all your td
s:
.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>
Solution 3 - Twitter Bootstrap
I think who the best mix for html & Css for quick and clean mod is :
<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>
close the <table>
init tag then copy where you want :)
I hope it can be useful
Have a good day
w stackoverflow
p.s. Bootstrap v3.2.0
Solution 4 - Twitter Bootstrap
You can make td's align without changing the css by adding a div with a class of "text-center" inside the cell:
<td>
<div class="text-center">
My centered text
</div>
</td>
Solution 5 - Twitter Bootstrap
<td class="text-center">
and fix .text-center in bootstrap.css:
.text-center {
text-align: center !important;
}
Solution 6 - Twitter Bootstrap
If it's just once, you shouldn't alter your style sheet.
Just edit that particular td
:
<td style="text-align: center;">
Cheers
Solution 7 - Twitter Bootstrap
I had the same problem and a better way to solve it without using !important
was defining the following in my CSS:
table th.text-center, table td.text-center {
text-align: center;
}
That way the specifity of the text-center
class works correctly in tables.
Solution 8 - Twitter Bootstrap
One of the main feature of Bootstrap is that it alleviates the use of !important tag. Using the above answer would defeat the purpose. You can easily customise bootstrap by modifying the classes in your own css file and linking it after including the boostrap css.
Solution 9 - Twitter Bootstrap
add:
<p class="text-center"> Your text here... </p>
Solution 10 - Twitter Bootstrap
just give the surrounding <tr>
a custom class like:
<tr class="custom_centered">
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
and have the css only select <td>
s that are inside an <tr>
with your custom class.
tr.custom_centered td {
text-align: center;
}
like this you don't risk to override other tables or even override a bootstrap base class (like some of my predecessors suggested).