Reputation: 95
How can I style bootstrap table buttons fully, currently the buttons remain blue and hovering over my table buttons only makes half of the button the colour I want, I would like the button black (#282828) and then just slightly lighter when hovered over or active.
JSFiddle at bottom of question
My table is generated by javascript
function bootstrapTableStateHandler(origin, msg, type) {
console[type]("[bootstrapTable." + origin + "]", msg)
}
var $table = $('#results');
$table.bootstrapTable({
url: 'getresults.php',
search: true,
buttonsClass: 'primary',
showFooter: false,
minimumCountColumns: 2,
columns: [{
field: 'results',
title: 'results',
sortable: true,
}, ....So on and so forth
And the drop down turned on by this in the table
<table id="results" data-show-columns="true" data-show-toggle="true"></table>
I have tried to style everything using the CSS below and the button remains blue, when I hover over it only half the button turns black - the outline does turn black though - sorry for so much CSS
.btn-primary {
color: #ffffff !important;
background-color: #282828 !important;
border-color: #292730;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.open .dropdown-toggle.btn-primary {
color: #ffffff;
background-color: #282828 !important;
border-color: #282828 !important;
}
.btn-primary:active,
.btn-primary.active,
.open .dropdown-toggle.btn-primary {
background-image: none;
}
.btn-primary.disabled,
.btn-primary[disabled],
fieldset[disabled] .btn-primary,
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled:active,
.btn-primary[disabled]:active,
fieldset[disabled] .btn-primary:active,
.btn-primary.disabled.active,
.btn-primary[disabled].active,
fieldset[disabled] .btn-primary.active {
background-color: #1F1B1B;
border-color: #282828 !important;
}
.btn-primary .badge {
color: #1F1B1B;
background-color: #282828 !important;
}
.dropdown-toggle {
color: #ffffff;
background-color: #282828 !important;
border-color: #292730;
}
.dropdown-toggle:hover,
.dropdown-toggle:focus,
.dropdown-toggle:active,
.dropdown-toggle.active,
.open .dropdown-toggle.dropdown-toggle {
color: #ffffff;
background-color: #282828 !important;
border-color: #282828 !important;
}
.dropdown-toggle:active,
.dropdown-toggle.active,
.open .dropdown-toggle.dropdown-toggle {
background-image: none;
}
.dropdown-toggle.disabled,
.dropdown-toggle[disabled],
fieldset[disabled] .dropdown-toggle,
.dropdown-toggle.disabled:hover,
.dropdown-toggle[disabled]:hover,
fieldset[disabled] .dropdown-toggle:hover,
.dropdown-toggle.disabled:focus,
.dropdown-toggle[disabled]:focus,
fieldset[disabled] .dropdown-toggle:focus,
.dropdown-toggle.disabled:active,
.dropdown-toggle[disabled]:active,
fieldset[disabled] .dropdown-toggle:active,
.dropdown-toggle.disabled.active,
.dropdown-toggle[disabled].active,
fieldset[disabled] .dropdown-toggle.active {
background-color: #282828 !important;
border-color: #282828 !important;
}
.dropdown-toggle .badge {
color: #1F1B1B;
background-color: #282828 !important;
}
What do I need to style to force the table buttons to be black (#282828) Looking at the output of the page, the button when inspected is called btn btn-primary dropdown-toggle
Thank you
Upvotes: 2
Views: 2176
Reputation: 5144
I have tried to replicate the issue. I came up with this code: https://jsfiddle.net/gemkzwva/. It explains what happens in the code.
<button></button>
<button id="fixed"></button>
button{
height: 50px;
width: 100px;
background-image: linear-gradient(red, blue);/*bootstrap-theme behaviour*/
}
button:hover{
background-position: 0 25px;/*bootstrap-theme behaviour*/
}
#fixed:hover{
background-position: 0; /*override background-position */
background-image: none; /*remove the bootstrap-theme image/linear-gradient*/
background-color: green;
}
The behaviour of the background-image
and background-position
is triggered by the .btn-primary class in your bootstrap-theme.min.css file. So you could:
Upvotes: 1
Reputation: 1174
If you use background
instead of background-color
you should be able to override the settings. This is because these bootstrap uses linear-gradients which are a background-image and will be on top. So you need to override this property in order for your color to be seen. You could also use background-image: none
and background-color: #282828
, but just using background: #282828
gets the job done and is less to manage.
https://jsfiddle.net/bonez0607/0qkubms6/
.btn-primary {
color: #ffffff !important;
background: #282828;
border-color: #292730;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.open .dropdown-toggle.btn-primary {
color: #ffffff;
background: #484848;
border-color: #282828 !important;
}
.btn-primary:active,
.btn-primary.active,
.open .dropdown-toggle.btn-primary {
background-image: none;
}
.btn-primary.disabled,
.btn-primary[disabled],
fieldset[disabled] .btn-primary,
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled:active,
.btn-primary[disabled]:active,
fieldset[disabled] .btn-primary:active,
.btn-primary.disabled.active,
.btn-primary[disabled].active,
fieldset[disabled] .btn-primary.active {
background-color: #1F1B1B;
border-color: #282828;
}
.btn-primary .badge {
color: #1F1B1B;
background-color: #282828 !important;
}
.dropdown-toggle {
color: #ffffff;
background: #282828;
border-color: #292730;
}
.dropdown-toggle:hover,
.dropdown-toggle:focus,
.dropdown-toggle:active,
.dropdown-toggle.active,
.open .dropdown-toggle.dropdown-toggle {
color: #ffffff;
background: #484848;
border-color: #282828 !important;
}
Upvotes: 1