Центрирование текста в таблице в Twitter Bootstrap

115

По какой-то причине текст внутри таблицы все еще не центрирован. Зачем? Как центрировать текст внутри таблицы?

Чтобы было действительно ясно: например, я хочу, чтобы «Lorem» находился посередине четырех «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

Свен
источник

Ответы:

149

.table td«S выравнивания текста устанавливается слева, а не центр.

Добавление этого должно центрировать все ваши 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

Тим
источник
48
В более поздних версиях для этого есть класс text-center.
MGP
9
остерегайтесь: .table тд {выравнивание текста: центр; } будет центрировать ВСЕ ваши TD
rbp
9
@ xr09 Да, есть .text-center, но специфика .table tdвсе равно победит. Вот почему бутстрап должен был начинаться с тэгов, а не запускаться непосредственно в классы вроде.table
Sinetheta
6
Добавить .texter-centerв <table>и все строки станут центром.
хаим
Комментарий @chaim должен быть размещен в качестве ответа. Работал над bootstrap-vue 2.0.1
MrCodeX
178

В Bootstrap 3 (3.0.3) добавление "text-center"класса к tdэлементу работает из коробки.

То есть, следующие центры some textв ячейке таблицы:

<td class="text-center">some text</td>
Алекс Че
источник
3
Мне понравилось это решение по изменению всего стиля .table td.
Стюарт
Вы также можете просто добавить класс «text-center» к элементу таблицы.
shad0wec
Это настоящий ответ.
Nyxynyx
33

Я думаю, кто лучший микс для html и CSS для быстрого и чистого мода:

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

закройте <table>тег инициализации и скопируйте туда, куда хотите :) Надеюсь, это может быть полезно. Удачного дня w stackoverflow

ps Bootstrap v3.2.0

dbjoomla
источник
1
хотя на этот вопрос уже есть ответ, нет смысла публиковать новый ответ !!
Pragnesh Ghoda シ
29

Вы можете сделать выравнивание td без изменения css, добавив div с классом "text-center" внутри ячейки:

    <td>
        <div class="text-center">
            My centered text
        </div>
    </td>
user2507821
источник
1
Кто определил class?
Amol M Kulkarni
6
Насколько я могу судить, в Bootstrap 2.3 td {text-align:left}он отменяет любые дополнительные попытки центрировать вещи. Я просто попытался сделать это таким образом, но безуспешно.
Джейсон Ловенталь
13
<td class="text-center">

и исправим .text-center в bootstrap.css:

.text-center {
    text-align: center !important;
}
XAOPT
источник
3
Я считаю, что вы не хотите напрямую изменять bootstrap.css.
Майк Коул,
3
Мне не нужно было исправлять .text-center в bootstrap.css, это работало без него.
user573335
6

У меня была та же проблема, и лучший способ решить ее без использования !important- это определение следующего в моем CSS:

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

Таким образом, специфика text-centerкласса корректно работает в таблицах.

VSP
источник
6

Если это всего один раз, вам не следует изменять таблицу стилей. Просто отредактируйте это td:

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

ура

Брено
источник
4

Одна из главных особенностей Bootstrap заключается в том, что он упрощает использование тега! Important. Использование приведенного выше ответа приведет к поражению цели. Вы можете легко настроить начальную загрузку, изменив классы в своем собственном файле css и связав его после включения ускоренного css.

Тоши Б
источник
4

Добавить:

<p class="text-center"> Your text here... </p>
Артем Зиновьев
источник
0

просто дайте окружению <tr>собственный класс, например:

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

и выберите css только те, <td>которые находятся внутри <tr>вашего пользовательского класса.

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

таким образом вы не рискуете переопределить другие таблицы или даже переопределить базовый класс начальной загрузки (как предлагали некоторые из моих предшественников).

Питер Пайпер
источник