2017-10-17 175 views
0

我想改變背景顏色和我的引導導航欄的字體顏色,用一個簡單的CSS代碼:引導導航欄:overiding字體顏色

#mainNav { 
 
     overflow: hidden; 
 
     background-color: transparent; 
 
    \t color: #333; 
 
     position: fixed; /* Set the navbar to fixed position */ 
 
     top: 0; /* Position the navbar at the top of the page */ 
 
     width: 100%; /* Full width */ 
 
    } 
 
    .navbar a{ 
 
    \t color: #333; 
 
    }

我得到的透明背景和字體顏色爲白色(而不是黑色)

我的自舉的Navbar代碼是作爲folows:

<nav id="mainNav" class="navbar navbar-default navbar-custom navbar-fixed-top"> 
 
    <div class="container"> 
 
    <!-- Brand and toggle get grouped for better mobile display --> 
 
    <div class="navbar-header page-scroll"> 
 
     <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> 
 
         <span class="sr-only">Toggle navigation</span> Menu <i class="fa fa-bars"></i> 
 
        </button> 
 
     <a class="navbar-brand page-scroll" href="#page-top"><img src="img/abc.png" alt="logo" width="72" height="68" id="logo"> 
 
     </a> 
 
    </div> 
 

 
    <!-- Collect the nav links, forms, and other content for toggling --> 
 
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> 
 
     <ul class="nav navbar-nav navbar-right"> 
 
     <li class="hidden"> 
 
      <a href="#page-top"></a> 
 
     </li> 
 
     <li> 
 
      <a class="page-scroll" href="#services">services</a> 
 
     </li> 
 
     <li> 
 
      <a class="page-scroll" href="#portfolio">portfolio</a> 
 
     </li> 
 
     <li> 
 
      <a class="page-scroll" href="#portfolio_sectors">Sectors</a> 
 
     </li> 
 

 
     <li> 
 
      <a class="page-scroll" href="#my_carousel">References</a> 
 
     </li> 
 

 
     <li> 
 
      <a class="page-scroll" href="#about">About</a> 
 
     </li> 
 
     <li> 
 
      <a class="page-scroll" href="#team">Team</a> 
 
     </li> 
 
     <li> 
 
      <a class="page-scroll" href="#contact">Contact</a> 
 
     </li> 
 
     </ul> 
 
    </div> 
 
    <!-- /.navbar-collapse --> 
 
    </div> 
 
    <!-- /.container-fluid --> 
 
</nav>

我想不出什麼我做錯了。

回答

0

您確實正確定位了元素,並且您的.navbar a規則正在得到應用。問題是Bootstrap提供了higher specificity.navbar-default .navbar-brand正在覆蓋.navbar a。因此,您可以使用.navbar-default a.navbar-brand來定位徽標而不是.navbar a,從而提供更高的特異性。

請注意,您的#mainNav選擇器確實正在應用您的所有自定義規則。

這可以看出,在下面的例子:

#mainNav { 
 
    overflow: hidden; 
 
    background-color: transparent; 
 
    color: #333; 
 
    position: fixed; /* Set the navbar to fixed position */ 
 
    top: 0; /* Position the navbar at the top of the page */ 
 
    width: 100%; /* Full width */ 
 
} 
 

 
.navbar-default a.navbar-brand { 
 
    color: #333; 
 
    color: red /* To clearly showcase the override */ 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 

 

 
<nav id="mainNav" class="navbar navbar-default navbar-custom navbar-fixed-top"> 
 
    <div class="container"> 
 
    <!-- Brand and toggle get grouped for better mobile display --> 
 
    <div class="navbar-header page-scroll"> 
 
     <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> 
 
     <span class="sr-only">Toggle navigation</span> Menu <i class="fa fa-bars"></i> 
 
     </button> 
 
     <a class="navbar-brand page-scroll" href="#page-top"><img src="img/abc.png" alt="logo" width="72" height="68" id="logo"> 
 
     </a> 
 
    </div> 
 
    <!-- Collect the nav links, forms, and other content for toggling --> 
 
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> 
 
     <ul class="nav navbar-nav navbar-right"> 
 
     <li class="hidden"> 
 
      <a href="#page-top"></a> 
 
     </li> 
 
     <li> 
 
      <a class="page-scroll" href="#services">services</a> 
 
     </li> 
 
     <li> 
 
      <a class="page-scroll" href="#portfolio">portfolio</a> 
 
     </li> 
 
     <li> 
 
      <a class="page-scroll" href="#portfolio_sectors">Sectors</a> 
 
     </li> 
 
     <li> 
 
      <a class="page-scroll" href="#my_carousel">References</a> 
 
     </li> 
 
     <li> 
 
      <a class="page-scroll" href="#about">About</a> 
 
     </li> 
 
     <li> 
 
      <a class="page-scroll" href="#team">Team</a> 
 
     </li> 
 
     <li> 
 
      <a class="page-scroll" href="#contact">Contact</a> 
 
     </li> 
 
     </ul> 
 
    </div> 
 
    <!-- /.navbar-collapse --> 
 
    </div> 
 
    <!-- /.container-fluid --> 
 
</nav>

希望這有助於! :)

+0

非常感謝,黑曜石,讓我知道這個更高的特異性規則,因爲我是一個完全bootstrap newby。由於我使用引導程序模板,因此試圖瞭解它背後的所有CSS只是壓倒性的。 我已根據您的建議更改了我的代碼,並且儘管可以在隔離時使其工作,但在我的模板中不會再運行一次。 我想這是關於在我的模板代碼某處的更高特異性,但無法找到它... –

+0

沒問題;這是你一定要用CSS記住的東西! Bootstrap確實增加了很多自定義規則(不僅在'bootstrap.css'中,而且在像'navbar.less'這樣的文件中)。我建議使用F12 Developer Tools檢查器(檢查'規則')來查看哪些規則正在被添加。 '計算'會告訴你哪一個正在得到應用。從這個工作例子開始,作爲一個「基礎」,慢慢地運用,直到它停止工作;那麼你知道這個問題,並且可以檢查規則。不要忘記你可以用'!important'來覆蓋,但這只是最後的手段;) –