Die Antwort darauf lautet CSS-Spezifität. Sie müssen in Ihrem CSS "spezifischer" sein, damit es die Bootstrap-CSS-Eigenschaften überschreiben kann.
Zum Beispiel haben Sie hier einen Beispielcode für ein Bootstrap-Menü:
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div id="home-menu-container" class="collapse navbar-collapse">
<ul id="home-menu" class="nav navbar-nav">
<li><a class="navbar-brand" href="#"><img src="images/xd_logo.png" /></a></li>
<li><a href="#intro">Home</a></li>
<li><a href="#about">About Us</a></li>
<li><a href="#services">What We Do</a></li>
<li><a href="#process">Our Process</a><br /></li>
<li><a href="#portfolio">Portfolio</a></li>
<li><a href="#contact">Contact Us</a></li>
</ul>
</div><!-- /.navbar-collapse -->
</nav>
Hier müssen Sie sich an die Hierarchie der Spezifität erinnern. Es geht so:
- Geben Sie ein Element mit einer ID von 100 Punkten an
- Geben Sie ein Element mit einer Klasse von 10 Punkten an
- Geben Sie einem einfachen Element einen einzelnen 1 Punkt
Also, für die oben genannten, wenn Ihr CSS so etwas hat:
.navbar ul li a { color: red; } /* 10(.navbar) + 1(ul) + 1(li) + 1(a) = 13 points */
.navbar a { color: green; } /* 10(.navbar) + 1(a) = 11 points */
Selbst wenn Sie das .navbar a
After definiert haben, wird .navbar ul li a
es immer noch mit einer roten Farbe anstelle einer grünen Farbe überschrieben, da die Spezifität größer ist (13 Punkte).
Alles, was Sie tun müssen, ist, die Punkte für das Element, für das Sie das CSS ändern möchten, über das Inspect-Element in Ihrem Browser zu berechnen. Hier hat bootstrap sein CSS für das Element als angegeben
.navbar-inverse .navbar-nav>li>a { /* Total = 22 points */
color: #999;
}
Selbst wenn Ihr CSS geladen wird, wird es nach bootstrap.css geladen, das die folgende Zeile enthält:
.navbar-nav li a {
color: red;
}
Es wird immer noch als # 999 gerendert. Um dies zu lösen, hat Bootstrap 22 Punkte (berechnen Sie es selbst). Wir brauchen also nur etwas mehr. Daher habe ich den Elementen benutzerdefinierte IDs hinzugefügt, z. B. Home-Menü-Container und Home-Menü. Jetzt funktioniert das folgende CSS:
#home-menu-container #home-menu li a { color: red; } /* 100 + 100 + 1 + 1 = 202 points :) */
Getan.
Sie können auf diesen MDN-Link verweisen .