Bảng Bootstrap sọc: Làm cách nào để thay đổi màu nền sọc?


124

Với lớp Bootstrap table-striped, mọi hàng khác trong bảng của tôi có màu nền bằng #F9F9F9. Làm cách nào để thay đổi màu này?

Câu trả lời:


116
.table-striped > tbody > tr:nth-child(2n+1) > td, .table-striped > tbody > tr:nth-child(2n+1) > th {
   background-color: red;
}

thay đổi dòng này trong bootstrap.css hoặc bạn có thể sử dụng (lẻ) hoặc (chẵn) thay vì (2n + 1)


100
Đừng làm điều này. Lần tới khi nâng cấp bootstrap, bạn sẽ mất ghi đè tùy chỉnh của mình. Tốt hơn nhiều nếu có css tùy chỉnh trong một tệp riêng biệt mà bạn đặt trực tiếp sau bootstrap.css trong đầu.
Ben Thurley

Bạn sẽ thay đổi màu nền như thế nào khi di chuột qua toàn bộ hàng ở đây?
Barry Michael Doyle

2
Trang này giải thích làm thế nào để làm điều đó cho một di chuột [ stackoverflow.com/questions/15643037/...
Yvon Huỳnh

4
Đây là câu trả lời tôi cần, tuy nhiên, tôi đã thêm nó vào một tệp CSS riêng biệt, không phải CSS Bootstrap thực tế. Nó xếp tầng vì vậy nếu tôi thêm nó vào sau bootstrap và nó hoạt động hoàn hảo và giữ nó ngoài bootstrap chính. Thêm vào đó, tôi không phải mang theo bootstrap đã sửa đổi của riêng mình thay vào đó tôi chỉ cần thêm css của mình vào mỗi dự án cần điều này.
raddevus

Không bao giờ thay đổi trực tiếp bất kỳ thư viện của bên thứ ba nào. Không bao giờ! Chỉ cần ghi đè kiểu trong tệp css của riêng bạn.
Mehrdad

133

Thêm kiểu CSS sau khi tải Bootstrap:

.table-striped>tbody>tr:nth-child(odd)>td, 
.table-striped>tbody>tr:nth-child(odd)>th {
   background-color: red; // Choose your own color here
 }

hoạt động tốt khi ghi đè màu bảng bootstrap mặc định. Cảm ơn bạn.
euccas

Điều này vô hiệu hóa lớp "bảng di chuột" trên các hàng chẵn ... có cách nào khắc phục không?
exSnake

14

Nếu bạn đang sử dụng Bootstrap 3, bạn có thể sử dụng phương pháp của Florin hoặc sử dụng tệp CSS tùy chỉnh.

Nếu bạn sử dụng Bootstrap ít nguồn hơn thay vì các tệp css đã xử lý, bạn có thể trực tiếp thay đổi nó trong bootstrap/less/variables.less.

Tìm một cái gì đó như:

//** Background color used for `.table-striped`.
@table-bg-accent:               #f9f9f9;

11

Bạn có hai tùy chọn, hoặc bạn ghi đè các kiểu bằng một biểu định kiểu tùy chỉnh hoặc bạn chỉnh sửa tệp css bootstrap chính. Tôi thích cái trước hơn.

Các kiểu tùy chỉnh của bạn nên được liên kết sau bootstrap.

<link rel="stylesheet" src="bootstrap.css">
<link rel="stylesheet" src="custom.css">

Trong custom.css

.table-striped>tr:nth-child(odd){
   background-color:red;
}

Không làm việc cho tôi. Câu trả lời của kyriakos hoạt động thực sự tốt.
varagrawal

Ví dụ này là mất tích tag tbody
kenecaswell

> có nghĩa là con ngay lập tức, vì vậy nếu có thẻ tbody giữa bảng và tr, nó sẽ không hoạt động. nhưng chỉ cần loại bỏ dấu>, và nó sẽ có giá trị cho tất cả các tr trong một bảng được chỉ định, bất kể chúng có phải là con ngay lập tức hay không.
jumps4fun

3

Không tùy chỉnh CSS bootstrap của bạn bằng cách chỉnh sửa trực tiếp tệp CSS bootstrap mà thay vào đó, tôi khuyên bạn nên sao chép CSS bootstrap và lưu chúng vào một thư mục CSS khác và ở đó bạn có thể tùy chỉnh hoặc chỉnh sửa các kiểu phù hợp với nhu cầu của mình.


3
.table-striped>tbody>tr:nth-child(odd)>td,
.table-striped>tbody>tr:nth-child(odd)>th {
  background-color: #e08283;
  color: white;
}
.table-striped>tbody>tr:nth-child(even)>td,
.table-striped>tbody>tr:nth-child(even)>th {
  background-color: #ECEFF1;
  color: white;
}

Sử dụng 'chẵn' để thay đổi màu của các hàng chẵn và sử dụng 'lẻ' để thay đổi màu của các hàng lẻ.


Điều này vô hiệu hóa lớp di chuột qua bảng của bootstrap, có cách nào để sử dụng cả hai?
exSnake

3

Xóa sọc bảng. Nó ghi đè nỗ lực của bạn để thay đổi màu hàng.

Sau đó, làm điều này trong css

   tr:nth-child(odd) {
    background-color: lightskyblue;
    }

   tr:nth-child(even) {
    background-color: lightpink;
    }

    th {
       background-color: lightseagreen;
    }

2

Tôi thấy mẫu bàn cờ này (như một tập hợp con của sọc ngựa vằn) là một cách dễ chịu để hiển thị bảng hai cột. Điều này được viết bằng LESS CSS và khóa tất cả các màu khỏi màu cơ bản.

@base-color: #0000ff;
@row-color: lighten(@base-color, 40%);    
@other-row: darken(@row-color, 10%);

tbody {
    td:nth-child(odd) { width: 45%; }
    tr:nth-child(odd) > td:nth-child(odd) {
        background: darken(@row-color, 0%); }
    tr:nth-child(odd) > td:nth-child(even) {
        background: darken(@row-color, 7%); }
    tr:nth-child(even) > td:nth-child(odd) {
        background: darken(@other-row, 0%); }
    tr:nth-child(even) > td:nth-child(even) {
        background: darken(@other-row, 7%); }
}

Lưu ý rằng tôi đã bỏ .table-striped, nhưng dường như không quan trọng.

Giống như: nhập mô tả hình ảnh ở đây


2

Với Bootstrap 4, cấu hình css có trách nhiệm trong bootstrap.csscho .table-stripedlà:

.table-striped tbody tr:nth-of-type(odd) {
  background-color: rgba(0, 0, 0, 0.05);
}

Đối với một giải pháp rất đơn giản, tôi chỉ cần sao chép nó vào custom.csstệp của mình và thay đổi các giá trị của background-color, để bây giờ tôi có bóng màu xanh lam nhạt huyền ảo hơn:

.table-striped tbody tr:nth-of-type(odd) {
  background-color:  rgba(72, 113, 248, 0.068);
}

0

Nếu bạn thực sự muốn đảo ngược màu sắc, bạn nên thêm quy tắc làm cho các hàng "lẻ" có màu trắng cũng như làm cho các hàng "chẵn" bất kỳ màu nào bạn muốn.


0

Cách dễ nhất để thay đổi thứ tự sọc:

Thêm trống tr trước thẻ tr bảng của bạn.

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.