Bảng Bootstrap không có sọc / viền


190

Tôi bị mắc kẹt với một vấn đề CSS trong khi sử dụng Bootstrap. Tôi cũng đang sử dụng Angular JS với Angular UI.bootstrap (có thể là một phần của vấn đề).

Tôi đang tạo một trang web hiển thị dữ liệu trong một bảng. Đôi khi, dữ liệu chứa đối tượng mà tôi phải hiển thị trong bảng. Vì vậy, tôi muốn đặt các bảng không biên giới trong một bảng bình thường trong khi giữ các đường phân cách cho các bảng không biên giới.

Nhưng dường như ngay cả khi tôi đặc biệt nói không hiển thị đường viền trên bàn, nó vẫn bị ép buộc:

HTML:

<table class='table borderless'>

CSS:

.borderless table {
    border-top-style: none;
    border-left-style: none;
    border-right-style: none;
    border-bottom-style: none;
}

Vì vậy, ở đây, những gì tôi muốn chỉ là biên giới bên trong.


1
Phiên bản Bootstrap nào bạn đang sử dụng?
Martin Bean

2
Tôi đang sử dụng bootstrap 2.3.1
Romain

với bootstrap 4: .borderless tr td, .borderless tr th {Border: none;}
Yevhenii Shashkov 8/12/18

Câu trả lời:


284

Kiểu dáng đường viền được đặt trên các tdyếu tố.

html:

<table class='table borderless'>

css:

.borderless td, .borderless th {
    border: none;
}

Cập nhật: Kể từ Bootstrap 4.1, bạn có thể sử dụng .table-borderlessđể xóa đường viền.

https://getbootstrap.com/docs/4.1/content/tables/#borderless-table


11
Lưu ý: bạn cũng nên thêm .borderless th, vì kiểu dáng Bootstrap cũng áp dụng <th>.
Benjamin

11
Nếu bạn đang sử dụng Bootstrap 3, hãy kiểm tra câu trả lời của tôi .
Davide Pastore

42
Tôi đã phải thêm biên giới: không! Quan trọng; Để làm cho nó hoạt động.
Srikanth Jeeva

@SrikanthJeeva .. hoặc bạn chỉ cần thêm kiểu css trong dòng style=hoặc đặt nó vào một tệp tùy chỉnh và đảm bảo rằng nó được tải muộn hơn tệp css Bootstrap , để ghi đè kiểu mặc định Bootstrap. CSS được tải theo thứ tự; cái sau ghi đè lên cái trước, càng cụ thể thì ghi đè lên cái chung hơn.
WesternGun

1
Đối với boostrap> 4.1 sử dụng <table class='table table-borderless'>cho mỗi Max bên dưới
lăng mộ

339

Sử dụng Bootstrap 3.2.0 Tôi gặp vấn đề với giải pháp Brett Henderson (đường viền luôn ở đó), vì vậy tôi đã cải thiện nó:

HTML

<table class="table table-borderless">

CSS

.table-borderless > tbody > tr > td,
.table-borderless > tbody > tr > th,
.table-borderless > tfoot > tr > td,
.table-borderless > tfoot > tr > th,
.table-borderless > thead > tr > td,
.table-borderless > thead > tr > th {
    border: none;
}

2
Đừng quên sự phân chia thtrong cơ thể: .borderless tbody tr th(như được sử dụng trong các ví dụ )
Wietse

2
@DavidePastore Nếu điều này chỉ dành cho các bảng, có thể là tiền tố của nó .table-, như Bootstrap 3 dành cho các lớp khác liên quan đến bảng (ví dụ: table-stripedv.v.). Vì vậy, tên sẽ được table-borderless.
arogachev

1
Hoạt động cho v4.0.0-alpha.2. Cảm ơn!
Dominofoe

Tôi vẫn nhận được một đường viền dọc theo cuối bảng cho đến khi tôi thêm .table-borderless,vào phần đầu của đặc tả kiểu này.
Christopher King

Tôi không thấy table-borderlesstrong tài liệu này getbootstrap.com/docs/3.3/css/#tables . Nó đến từ đâu?
Arup Rakshit

24

tương tự như phần còn lại, nhưng cụ thể hơn:

    table.borderless td,table.borderless th{
     border: none !important;
}

Bạn không cần quan trọng với .table.borderless
Không được yêu thích vào

@Sam Jones - Điều này có ảnh hưởng đến toàn bộ bảng không? Tôi muốn một số hàng có đường viền dưới cùng. Tôi muốn biên giới đi.
MarcoZen

! quan trọng là rất quan trọng
FLICKER

18

Đừng thêm .tablelớp vào <table>thẻ của bạn . Từ các tài liệu Bootstrap trên các bảng :

Đối với đệm phong cách ánh sáng cơ bản và chỉ chia ngang -Thêm các lớp cơ sở .tablecho bất kỳ <table>. Nó có vẻ rất dư thừa, nhưng do việc sử dụng rộng rãi các bảng cho các plugin khác như lịch và bộ chọn ngày, chúng tôi đã chọn cách ly các kiểu bảng tùy chỉnh của mình.


Ngay cả như thế này: html: <table class = 'Borderless'> css: .borderless {Border: none; } Nó không hoạt động.
Romain

2
Tôi khuyên bạn nên sử dụng Trình kiểm tra web trong Chrome sau đó và xem bất kỳ đường viền nào đang được áp dụng, vì các bảng theo mặc định không có viền khi sử dụng Bootstrap để có thể tương tác với các thành phần khác như trình chọn ngày, v.v.
Martin Bean

6
Điều này hoạt động rất tốt, tôi chỉ sử dụng 'bảng cô đọng' và các biến thể khác mà không có lớp 'bảng' và thoát khỏi biên giới. Mẹo tuyệt vời khi các tài liệu đã ném tôi một chút ở đó.
chrismacp


5

Trong CSS của tôi:

.borderless tr td {
    border: none !important;
    padding: 0px !important;
}

Trong chỉ thị của tôi:

<table class='table borderless'>
    <tr class='borderless' ....>

Tôi đã không đặt 'không biên giới' cho phần tử td.

Đã thử nghiệm và nó đã làm việc! Tất cả các đường viền và miếng đệm được loại bỏ hoàn toàn.


4

Tôi đã mở rộng các kiểu bảng Bootstrap như Davide Pastore đã làm, nhưng với phương thức đó, các kiểu này cũng được áp dụng cho tất cả các bảng con và chúng không áp dụng cho chân trang.

Một giải pháp tốt hơn sẽ là bắt chước các kiểu bảng Bootstrap cốt lõi, nhưng với lớp mới của bạn:

.table-borderless>thead>tr>th
.table-borderless>thead>tr>td
.table-borderless>tbody>tr>th
.table-borderless>tbody>tr>td
.table-borderless>tfoot>tr>th
.table-borderless>tfoot>tr>td {
    border: none;
}

Sau đó, khi bạn <table class='table table-borderless'>chỉ sử dụng bảng cụ thể với lớp sẽ được viền, không phải bất kỳ bảng nào trong cây.


3

Thử cái này:

<table class='borderless'>

CSS

.borderless {
 border:none;
}

Lưu ý: Những gì bạn đang làm trước đây không hoạt động vì mã css của bạn đang nhắm mục tiêu một bảng trong bảng .borderless của bạn (có thể không tồn tại)


3

Tôi biết đây là một chủ đề cũ và bạn đã chọn một câu trả lời, nhưng tôi nghĩ tôi đã đăng bài này vì nó phù hợp với bất kỳ ai khác đang tìm kiếm.

Không có lý do để tạo quy tắc CSS mới, chỉ cần hoàn tác các quy tắc hiện tại và các đường viền sẽ biến mất.

    .table> tbody> tr> th,
    .table> tbody> tr> td {
        đỉnh biên: 0;
    }

tiến về phía trước, bất cứ điều gì theo kiểu

    .bàn

sẽ không có biên giới


2

Sử dụng border-lớp từ Boostrap 4

<td class="border-0"></td>

hoặc là

<table class='table border-0'></table>

Hãy chắc chắn kết thúc đầu vào lớp với thay đổi cuối cùng bạn muốn làm.



1

Tôi đến trễ trò chơi ở đây nhưng FWIW: thêm .table-borderedvào một .tablebảng chỉ bọc một đường viền, mặc dù bằng cách thêm một đường viền đầy đủ vào mỗi ô.

Nhưng loại bỏ .table-borderedvẫn để lại các dòng quy tắc. Đây là một vấn đề ngữ nghĩa, nhưng phù hợp với danh pháp BS3 + tôi đã sử dụng bộ ghi đè này:

.table.table-unruled>tbody>tr>td,
.table.table-unruled>tbody>tr>th {
  border-top: 0 none transparent;
  border-bottom: 0 none transparent;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<div class="container">
  <div class="row">
    <div class="col-xs-5">
      .table
      <table class="table">
        <thead>
          <tr>
            <th>a</th>
            <th>b</th>
            <th>c</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>a</td>
            <td>b</td>
            <td>c</td>
          </tr>
          <tr>
            <td>a</td>
            <td>b</td>
            <td>c</td>
        </tbody>
        <tfoot>
          <tr>
            <th>a</th>
            <th>b</th>
            <th>c</th>
          </tr>
        </tfoot>
      </table>
    </div>
    <div class="col-xs-5 col-xs-offset-1">
      <table class="table table-bordered">
        .table .table-bordered
        <thead>
          <tr>
            <th>a</th>
            <th>b</th>
            <th>c</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>a</td>
            <td>b</td>
            <td>c</td>
          </tr>
          <tr>
            <td>a</td>
            <td>b</td>
            <td>c</td>
        </tbody>
        <tfoot>
          <tr>
            <th>a</th>
            <th>b</th>
            <th>c</th>
          </tr>
        </tfoot>
      </table>
    </div>
  </div>

  <div class="row">
    <div class="col-xs-5">
      <table class="table table-unruled">
        .table .table-unruled
        <thead>
          <tr>
            <th>a</th>
            <th>b</th>
            <th>c</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>a</td>
            <td>b</td>
            <td>c</td>
          </tr>
          <tr>
            <td>a</td>
            <td>b</td>
            <td>c</td>
        </tbody>
        <tfoot>
          <tr>
            <th>a</th>
            <th>b</th>
            <th>c</th>
          </tr>
        </tfoot>
      </table>
    </div>
    <div class="col-xs-5 col-xs-offset-1">
      <table class="table table-bordered table-unruled">
        .table .table-bordered .table-unruled
        <thead>
          <tr>
            <th>a</th>
            <th>b</th>
            <th>c</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>a</td>
            <td>b</td>
            <td>c</td>
          </tr>
          <tr>
            <td>a</td>
            <td>b</td>
            <td>c</td>
        </tbody>
        <tfoot>
          <tr>
            <th>a</th>
            <th>b</th>
            <th>c</th>
          </tr>
        </tfoot>
      </table>
    </div>
  </div>

</div>



1

Hầu hết các ví dụ dường như quá cụ thể và / hoặc cồng kềnh.

Đây là giải pháp rút gọn của tôi bằng cách sử dụng Bootstrap 4.0.0 (4.1 bao gồm .table-borderlessnhưng vẫn là alpha) ...

.table-borderless th{border:0;}
.table-borderless td{border:0;}

Tương tự như nhiều giải pháp được đề xuất, nhưng byte tối thiểu

Lưu ý: Đã kết thúc tại đây vì tôi đang xem các tài liệu tham khảo BS4.1 và không thể hiểu tại sao .table-borderlessnó không hoạt động với các nguồn 4.0 của tôi (ví dụ: lỗi vận hành, duh)


Sửa: 4.1 không phải là alpha. Giả sử là vì tôi đã không sử dụng phiên bản đó
Mavelo

1

Trong một số trường hợp, người ta cũng phải sử dụng khoảng cách viền trong lớp bảng, như:

khoảng cách biên: 0! quan trọng;


0

Cài đặt bootstrap với liên kết npm hoặc cdn

<table class="table table-borderless">
<thead>
<tr>
  <th scope="col">#</th>
  <th scope="col">First</th>
  <th scope="col">Last</th>
  <th scope="col">Handle</th>
</tr>
</thead>
<tbody>
<tr>
  <th scope="row">1</th>
  <td>Mark</td>
  <td>Otto</td>
  <td>@mdo</td>
</tr>
<tr>
  <th scope="row">2</th>
  <td>Jacob</td>
  <td>Thornton</td>
  <td>@fat</td>
  </tr>
  <tr>
  <th scope="row">3</th>
    <td colspan="2">Larry the Bird</td>
    <td>@twitter</td>
   </tr>
 </tbody>
</table>

có được tài liệu tham khảo với liên kết này

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.