Căn giữa văn bản trong bảng trong Twitter Bootstrap


114

Vì một số lý do, Văn bản bên trong bảng vẫn không được căn giữa. Tại sao? Làm cách nào để căn giữa văn bản bên trong bảng?

Để làm cho nó thực sự rõ ràng: Ví dụ, tôi muốn "Lorem" nằm ở giữa bốn "1". Các bác sĩ cho biết thêm:

@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

Câu trả lời:


149

Các .table td's text-align được thiết lập sang trái, chứ không phải là trung tâm.

Thêm điều này sẽ căn giữa tất cả các tds của bạn :

.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 được cập nhật


48
Trong các phiên bản sau, có một lớp trung tâm văn bản cho việc này.
MGP

9
hãy cẩn thận: .table td {text-align: center; } sẽ căn giữa TẤT CẢ TD của bạn
rbp

9
@ xr09 Có .text-center, nhưng tính cụ thể của .table tdvẫn sẽ đánh bại nó. Đây là lý do tại sao bootstrap nên bắt đầu bằng các tên thẻ thay vì khởi chạy trực tiếp vào các lớp như.table
Sinetheta

6
Thêm .texter-centervào <table>và tất cả các hàng sẽ được căn giữa.
chaim

@chaim bình luận nên được đăng như một câu trả lời. Đã làm việc trên bootstrap-vue 2.0.1
MrCodeX

177

Trong Bootstrap 3 (3.0.3), việc thêm "text-center"lớp vào một tdphần tử sẽ hoạt động hiệu quả.

Tức là các tâm sau some texttrong một ô bảng:

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

3
Tôi thích giải pháp này hơn là thay đổi toàn bộ phong cách td .table.
Stuart

Bạn cũng có thể thêm lớp "text-center" vào phần tử bảng.
shad0wec

Đây là câu trả lời thực sự.
Nyxynyx

33

Tôi nghĩ ai là người kết hợp tốt nhất cho html & Css để mod nhanh và gọn gàng là:

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

đóng <table>thẻ init rồi sao chép vào nơi bạn muốn :) Tôi hy vọng nó có thể hữu ích Chúc một ngày tốt lành với stackoverflow

ps Bootstrap v3.2.0


1
trong khi câu hỏi này đã có câu trả lời, không có nghĩa là đăng câu trả lời mới !!
Pragnesh Ghoda シ

29

Bạn có thể căn chỉnh td mà không thay đổi css bằng cách thêm div với một lớp "text-center" bên trong ô:

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

1
Ai đã định nghĩa class?
Amol M Kulkarni

6
Theo như tôi có thể nói, trong Bootstrap 2.3, td {text-align:left}nó sẽ ghi đè bất kỳ nỗ lực bổ sung nào để căn giữa mọi thứ. Tôi chỉ cố gắng làm theo cách này, nhưng không thành công.
Jason Lowenthal

12
<td class="text-center">

và sửa lỗi .text-center trong bootstrap.css:

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

3
Tôi tin rằng bạn không muốn trực tiếp thay đổi bootstrap.css.
Mike Cole

3
Tôi không cần sửa .text-center trong bootstrap.css, điều này hoạt động mà không cần nó.
dùng573335

6

Tôi đã gặp vấn đề tương tự và cách tốt hơn để giải quyết nó mà không cần sử dụng !importantlà xác định những điều sau trong CSS của tôi:

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

Bằng cách đó, tính đặc hiệu của text-centerlớp hoạt động chính xác trong các bảng.


6

Nếu đó chỉ là một lần, bạn không nên thay đổi biểu định kiểu của mình. Chỉ cần chỉnh sửa cụ thể đó td:

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

Chúc mừng


4

Một trong những tính năng chính của Bootstrap là nó giảm bớt việc sử dụng thẻ! Important. Sử dụng câu trả lời trên sẽ đánh bại mục đích. Bạn có thể dễ dàng tùy chỉnh bootstrap bằng cách sửa đổi các lớp trong tệp css của riêng bạn và liên kết nó sau khi bao gồm css boostrap.



0

chỉ cần cung cấp cho xung quanh <tr>một lớp tùy chỉnh như:

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

và có các lựa chọn chỉ css <td>bên trong một <tr>với lớp tùy chỉnh của bạn.

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

như thế này, bạn không có nguy cơ ghi đè các bảng khác hoặc thậm chí ghi đè một lớp cơ sở bootstrap (như một số người tiền nhiệm của tôi đã đề xuất).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.