2012-09-29 10 views
5

Przeszukałem sieć, aby przesłonić kod CSS bootstraps, ale muszę go jeszcze sprawować. Próbuję zmienić domyślny kolor navbar bez edytowania pliku bootstrap.css.
Próbowałem wprowadzenie następujących w głowie po załadowaniu bootstrap.css:Kłopoty z przesłonięciem Bootstrap CSS

.navbar-inner { 
    background-color: #006633; 
    background-image: -mox-linear-gradient(top, #006633, #006633); 
    background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#006633), to(#006633)); 
    background-image: -webkit-linear-gradient(top, #006633, #006633); 
    background-image: -o-linear-gradient(top, #006633, #006633); 
    background-image: linear-gradient(to bottom, #006633, #006633); 
    border-color: #006633; 
    filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff006633', endColorstr='#ff006633', GradientType=0); 
} 

To nie działa tak próbowałem wprowadzenie go w jego własnym pliku CSS, a następnie ładuje tę stylów tak:

bootstrapOverload .css

.navbar-inner { 
    background-color: #006633; 
    background-image: -mox-linear-gradient(top, #006633, #006633); 
    background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#006633), to(#006633)); 
    background-image: -webkit-linear-gradient(top, #006633, #006633); 
    background-image: -o-linear-gradient(top, #006633, #006633); 
    background-image: linear-gradient(to bottom, #006633, #006633); 
    border-color: #006633; 
    filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff006633', endColorstr='#ff006633', GradientType=0); 
} 

_Layout.cshtml

<link rel="stylesheet" href="Content/bootstrap.css"> 
<link rel="stylesheet" href="Content/bootstrapOverload.css"> 

Kiedy to nie pomogło Próbowałem dodanie niestandardowej klasy do elementu

_Layout.cshtml

<div class="navbar-inner navbar-override"> <!-- added navbar-override --> 

bootstrapOverload.css

.navbar-override { 
    background-color: #006633; 
    background-image: -mox-linear-gradient(top, #006633, #006633); 
    background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#006633), to(#006633)); 
    background-image: -webkit-linear-gradient(top, #006633, #006633); 
    background-image: -o-linear-gradient(top, #006633, #006633); 
    background-image: linear-gradient(to bottom, #006633, #006633); 
    border-color: #006633; 
    filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff006633',  endColorstr='#ff006633', GradientType=0); 
} 

Am I robienie czegoś złego? Naprawdę chciałbym nauczyć się, jak to zrobić w odpowiedni sposób, jeśli to możliwe.

+0

Oprócz odpowiedzi poniżej tego linka http://www.nzwhost.com/article/understanding-css-hierarchy może pomóc –

+0

Jest to bardzo podobne do [zmiana koloru paska nawigacyjnego w twitterze bootstrap 2 0 4] (http://stackoverflow.com/questions/11196638/change-navbar-color-in-twitter-bootstrap- 2-0-4), który ma bardzo kompleksowe rozwiązanie. – everette

Odpowiedz

2

Aby przeciążyć css, musisz później znaleźć się w kodzie lub bardziej szczegółowo niż css, który próbujesz przeciążyć.

może być możliwe tylko dodać body przed .navbar-inner tak, że stanowi body .navbar-inner tak, że jest bardziej szczegółowy, a może div.navbar-inner, najlepiej byłoby mieć identyfikator tam gdzieś.

Jeśli wybierzesz go tak dokładnie, jak jest w bootstrap.css, to myślę, że css nie jest ładowany po bootstrapie, jak myślisz. Sprawdź, co zostało wybrane za pomocą narzędzia takiego jak narzędzie programistyczne Chromes lub firebug przeglądarki Firefox.

+0

W tym przypadku nie ma potrzeby dodawania niepotrzebnych selektorów. –

+0

Właśnie poprawiłem niektóre błędy i próbowałem dodać ciało, div i identyfikator, ale nadal nie działa. Również usunąłem pamięć podręczną, ponieważ nie wiedziałem, czy uniemożliwiło mi to obserwowanie wyników z jakiegoś powodu. Kiedy sprawdzam element w Chrome, mówi on, że nadal używa on pliku bootstrap.css, ale kiedy odznaczam wszystkie wartości, wyświetla on kolor z mojego arkusza stylów. Mam mój arkusz stylów umieszczony po bootstrap.css w moim kodzie. – Jeff

+0

Który selektor to 'bootstrap.css' używający dla twojego elementu? – Krycke

3

Jest literówka w CSS:

background-image: -mox-linear-gradient(top, #006633, #006633); 

myślę, że powinno być:

background-image: -moz-linear-gradient(top, #006633, #006633); 

Jeśli wpiszesz błąd w CSS, jego zatrzymanie interpretacji resztę, więc nie ma obejścia dla ty.

+0

Awesome. Nie wiedziałem, że przestał renderować po jednym błędzie. Aby mieć pewność, że tym razem dobrze się stało, skopiowałem css z bootstrap.css do mojego własnego arkusza stylów i zmieniłem wartości kolorów. Nadal niestety niestety szczęście. – Jeff

3

Właśnie spędziłem większość dnia próbuje zmienić kolor paska nawigacyjnego: [

Myślę, że problem jest .navbar-odwrotny

Twój oddzielny plik .css powinien zawierać coś takiego wówczas kolor zmieni :

.navbar-inverse .navbar-inner { 
background-color: #586214; 
background-image: none; 
} 
1

można zastąpić wartości domyślne bootstrap, zmieniając zmienne LESS.

http://bootstrap.lesscss.ru/less.html

// pasek nawigacyjny

  • @navbarBackground: @ Color1;
  • @navbarBackgroundHighlight: @ Color1;
  • @navbarBrandColor: #FFFFFF;
  • @navbarLinkColor: #FFFFFF;
  • @navbarLinkColorHover: #FFFFFF;
  • @navbarLinkColorActive: #FFFFFF;
  • @navbarInverseBackground: #FFFFFF;
  • @navbarInverseBackgroundHighlight: #FFFFFF;
  • @navbarInverseBorder: #FFFFFF;
  • @navbarInverseLinkColorHover: @ Color7;
  • @navbarInverseLinkColorActive: @ Color11;
  • @navbarInverseLinkColor: @ Color1;
+0

należy również dodać, że po zmianie mniejszych plików, css musi zostać zrekompilowany (lub zinterpretowany przez lessjs) – Mangiucugna

8

Czy próbowałeś dodać znacznik !important na każdej linii CSS, aby nakazać elementowi zastąpić bootstrap?

coś takiego:

.navbar-override { 
    background-color: #006633 !important; 
    background-image: -moz-linear-gradient(top, #006633, #006633) !important; 
    background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#006633), to(#006633)) !important; 
    background-image: -webkit-linear-gradient(top, #006633, #006633) !important; 
    background-image: -o-linear-gradient(top, #006633, #006633) !important; 
    background-image: linear-gradient(to bottom, #006633, #006633) !important; 
    border-color: #006633 !important; 
    filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff006633',  endColorstr='#ff006633', GradientType=0) !important; 
} 
nie

Zazwyczaj najlepszym sposobem, aby to zrobić, ale myślę, że to powinno działać.

0

Rozwiąż swój problem, kopiując klasę CSS i zmieniając jej nazwę. Następnie użyć tej klasy :)

Znam jego Wzmocnione ale wyglądają conajmniej działa

Przykład:

.drop-down {...}  /* is from bootstrap */ 
.drop-down-new {...} /* Your new Class that works*/