导航栏项目的文本颜色不反映自定义 CSS [重复]

Posted

技术标签:

【中文标题】导航栏项目的文本颜色不反映自定义 CSS [重复]【英文标题】:Text color of nav bar items not reflecting custom CSS [duplicate] 【发布时间】:2021-08-16 18:28:15 【问题描述】:

我的导航栏文本的颜色没有改变。我猜我正在使用默认导航栏。我对 Bootstrap 很陌生,我已经搜索了互联网,但似乎没有任何效果。

/*Navigation bar*/

.menu-bar 
  background-color: #101010;


* 
  font-family: 'Poppins', sans-serif;


.nav-link 
  font-size: 24px;
  color: #FFFFFF;
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous">
<link rel="stylesheet" href="../css/style.css">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;700&display=swap" rel="stylesheet">

<div class="header">
  <div class="menu-bar">
    <nav class="navbar navbar-expand-lg navbar-light bg-transparent">
      <div class="container-fluid">
        <a class="navbar-brand" href="#"><img src="../assets/Icon.svg"  > </a>
        <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
                         <span class="navbar-toggler-icon"></span>
                       </button>
        <div class="collapse navbar-collapse justify-content-end" id="navbarNav">
          <ul class="navbar-nav ml-auto">
            <li class="nav-item">
              <a class="nav-link active" aria-current="page" href="#">Home</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Features</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Pricing</a>
            </li>
            <li class="nav-item">
              <a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
            </li>
          </ul>
        </div>
      </div>
    </nav>
  </div>
</div>

<main>

</main>

<footer>

</footer>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-gtEjrD/SeCtmISkJkNUaaKMoLD0//ElJ19smozuHV6z3Iehds+3Ulb9Bn9Plx0x4" crossorigin="anonymous"></script>

我知道在 color(.nav-link) 前面写 important 会使我的代码工作,但我在一篇文章中读到这不是一个好习惯这样做。我试图在网上观看教程,但它对我不起作用(虽然它对他们起作用:)。

【问题讨论】:

【参考方案1】:

在您的 CSS 代码中,尝试将您的选择器 .nav-link 更改为 .navbar-light .navbar-nav .nav-link,如下所示:

.navbar-light .navbar-nav .nav-link
    font-size: 24px;
    color: #FFFFFF;

事实上,为了给这个元素应用样式,Bootstrap 使用选择器.navbar-light .navbar-nav .nav-link,它比你的更具体。在 CSS 中,将应用最具体的选择器。

更多关于 CSS 特殊性的信息:https://www.w3schools.com/css/css_specificity.asp

<!DOCTYPE html>
<html lang="en">


<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Stiks</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous">
    <link rel="stylesheet" href="../css/style.css">
    <link rel="preconnect" href="https://fonts.gstatic.com">
    <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;700&display=swap" rel="stylesheet">
    <style>
    /*Navigation bar*/
.menu-bar
    background-color: #101010;


*
    font-family: 'Poppins', sans-serif;


.navbar-light .navbar-nav .nav-link
    font-size: 24px;
    color: #FFFFFF;

    </style>
</head>


<body>
            <div class="header">
              <div class="menu-bar">
               <nav class="navbar navbar-expand-lg navbar-light bg-transparent">
                 <div class="container-fluid">
                    <a class="navbar-brand" href="#"><img src="../assets/Icon.svg"  > </a>
                    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
                     <span class="navbar-toggler-icon"></span>
                   </button>
                    <div class="collapse navbar-collapse justify-content-end" id="navbarNav">
                      <ul class="navbar-nav ml-auto">
                        <li class="nav-item">
                         <a class="nav-link active" aria-current="page" href="#">Home</a>
                       </li>
                       <li class="nav-item">
                         <a class="nav-link" href="#">Features</a>
                       </li>
                       <li class="nav-item">
                          <a class="nav-link" href="#">Pricing</a>
                       </li>
                        <li class="nav-item">
                          <a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
                        </li>
                     </ul>
                   </div>
                  </div>
                </nav>
              </div>
            </div>

    <main>

    </main>

    <footer>

    </footer>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-gtEjrD/SeCtmISkJkNUaaKMoLD0//ElJ19smozuHV6z3Iehds+3Ulb9Bn9Plx0x4" crossorigin="anonymous"></script>

</body>
</html>

【讨论】:

您可以从问题帖子中复制 sn-p 并将您的解决方案应用于它。我不确定它是否有效。不过,这是正确的方法。【参考方案2】:

尝试为 header 提供一个 id,然后像这样相应地更改 css,这就是您如何更改应用 css 样式的首选项

<div class="header" id="myId"> 
#myId .menu-bar
    background-color: #101010;


#myId .nav-link
    font-size: 24px;
    color: #FFFFFF;

【讨论】:

在我看来,CSS 中的 ID 并不理想。一方面,它们不可重复使用。另一方面,它们需要更多标记。 @isherwood 代替 Id 也可以给出一个类。这个想法是这样的,它将被给予更多的优先权。

以上是关于导航栏项目的文本颜色不反映自定义 CSS [重复]的主要内容,如果未能解决你的问题,请参考以下文章

用两行更改此自定义导航栏中的文本颜色?

在自定义导航栏中设置条形按钮项目颜色

我不知道为啥我的代码导航栏文本颜色没有改变? [复制]

自定义 iOS 7 状态栏文本颜色

更改导航栏文本颜色

Twitter Bootstrap 中的导航栏颜色