With Bootstrap class table-striped, every other row in my table has a background colour equal to #F9F9F9. How can I change this colour?
15 Answers
Add the following CSS style after loading 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
}
-
works well on overwriting the default bootstrap table color. Thank you. – euccas Aug 26 '15 at 22:21
-
2This disable the "table-hover" class on even rows... is there a fix? – exSnake Dec 01 '18 at 00:36
-
And while we use the color here, we do not need to have "table-striped" class. – AgentNirmites Mar 05 '22 at 13:21
.table-striped > tbody > tr:nth-child(2n+1) > td, .table-striped > tbody > tr:nth-child(2n+1) > th {
background-color: red;
}
add this line into your style.css after main bootstrap.css or you could use (odd) or (even) instead of (2n+1)
- 4,997
- 2
- 19
- 30
-
119Don't do this. Next time you upgrade bootstrap you'll lose your custom override. Much better to have custom css in a separate file which you put directly after bootstrap.css in the head. – Ben Thurley Aug 08 '14 at 11:53
-
1How would you change the background-color for hovering the whole row here? – Barry Michael Doyle Aug 19 '15 at 16:07
-
2this page explain how to do it for a hover [http://stackoverflow.com/questions/15643037/how-do-i-change-the-hover-over-color-for-a-hover-over-table-in-bootstrap] – Yvon Huynh Nov 28 '15 at 22:20
-
4This was the answer I needed, however, I added it to a separate CSS file, not the actual Bootstrap CSS. It's cascading so if I add it after the bootstrap and it works perfectly and keeps it out of the main bootstrap. Plus then I don't have to carry my own modified bootstrap instead I just add my css to each project that needs this. – raddevus Apr 06 '16 at 21:10
-
1Never change any third-party library directly. Never! Just override the style in your own css file. – Mehrdad Feb 03 '17 at 18:18
If you are using Bootstrap 3, you can use Florin's method, or use a custom CSS file.
If you use Bootstrap less source instead of processed css files, you can directly change it in bootstrap/less/variables.less.
Find something like:
//** Background color used for `.table-striped`.
@table-bg-accent: #f9f9f9;
- 692
- 2
- 11
- 22
You have two options, either you override the styles with a custom stylesheet, or you edit the main bootstrap css file. I prefer the former.
Your custom styles should be linked after bootstrap.
<link rel="stylesheet" src="bootstrap.css">
<link rel="stylesheet" src="custom.css">
In custom.css
.table-striped>tr:nth-child(odd){
background-color:red;
}
- 1,673
- 11
- 16
-
-
-
the > means immediate child, so if there is a tbody tag between table and tr, it won't work. but just remove the >, and it will be valid for all tr under a specified table, no matter if they are immediate children or not. – jumps4fun May 01 '20 at 10:43
Delete table-striped Its overriding your attempts to change row color.
Then do this In css
tr:nth-child(odd) {
background-color: lightskyblue;
}
tr:nth-child(even) {
background-color: lightpink;
}
th {
background-color: lightseagreen;
}
- 191
- 3
- 8
With Bootstrap 4, the responsible css configuration in bootstrap.css for .table-striped is:
.table-striped tbody tr:nth-of-type(odd) {
background-color: rgba(0, 0, 0, 0.05);
}
For a very simple solution, I just copied it into my custom.css file, and changed the values of background-color, so that now I have a fancier light blue shade:
.table-striped tbody tr:nth-of-type(odd) {
background-color: rgba(72, 113, 248, 0.068);
}
- 170
- 2
- 8
Easiest way for changing order of striped:
Add empty tr before your table tr tags.
- 602
- 4
- 6
.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;
}
Use 'even' for change colour of even rows and use 'odd' for change colour of odd rows.
- 2,787
- 7
- 29
- 48
- 115
- 1
- 7
-
This disable the table-hover class of bootstrap, there is a way to use both? – exSnake Dec 01 '18 at 00:39
I found this checkerboard pattern (as a subset of the zebra stripe) to be a pleasant way to display a two-column table. This is written using LESS CSS, and keys all colors off the base color.
@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%); }
}
Note I've dropped the .table-striped, but doesn't seem to matter.
Looks like:
- 7,517
- 3
- 54
- 69
Don't customize your bootstrap CSS by directly editing bootstrap CSS file.Instead, I suggest to copy paste bootstrap CSS and save them in a different CSS folder and there you can customize or edit stylings suitable to your needs.
If using SASS and Bootstrap 4, you can change the alternating background row color for both .table and .table-dark with:
$table-accent-bg: #990000;
$table-dark-accent-bg: #990000;
- 5,268
- 4
- 47
- 51
I came across this post while hunting down a solution for myself. By using chrome's inspector, I was able to determine that the striped color was being applied from the --bs-table-striped-color tag.
overriding that tag in your css:
<style scoped>
table {
--bs-table-striped-color: #85d1ee;
}
</style>
- 11
- 3
If you want to actually reverse the colors, you should add a rule that makes the "odd" rows white as well as making the "even" rows whatever color you want.
- 41
- 3
I know this is an old post, but changing th or td color is not te right way. I was fooled by this post as well.
First load your bootstrap.css and add this in your own css. This way it is only 2 lines if you have a hovered table, else its only 1 line, unless you want to change odd and even :-)
.table-striped>tbody>tr:nth-child(odd) {
background-color: LemonChiffon;
}
.table-hover tbody tr:hover {
background-color: AliceBlue;
}
- 1,083
- 1
- 9
- 10
Bootstrap 5 using --#{$variable-prefix}table-accent-bg
take into consideration
.table-striped>tbody>tr:nth-child(odd) > td:hover {
--#{$variable-prefix}table-accent-bg: #000099;
}
- 1
- 1