You have to be strictly precise when you override a property.
Bootstrap declares .navbar-text
class as being part of .navbar-default
.
Excerpt of navbar.less
code, imported by bootstrap.less
:
// Default navbar
.navbar-default {
background-color: @navbar-default-bg;
border-color: @navbar-default-border;
.navbar-brand {
color: @navbar-default-brand-color;
&:hover,
&:focus {
color: @navbar-default-brand-hover-color;
background-color: @navbar-default-brand-hover-bg;
}
}
.navbar-text { //inside navbar-default
color: @navbar-default-color;
}
Therefore, you should override like this:
.navbar-default .navbar-text {
color: red;
}
The following would NOT match:
.navbar-text {
color: red;
}
Same applies when a property is specific for a specific media. You should override the property as being in the SAME media.
@media (min-width: 768px){
.myClass {color: red}
}
would NOT be overriden by just:
.myClass{color: blue}
but by:
@media (min-width: 768px){
.myClass {color: blue}
}