使用 Materialize CSS (rails) 更改导航栏上的文本颜色

Changing the text color on a nav bar using Materialize CSS (rails)

我想创建一个白色背景和黑色文本的导航栏,但一直无法将导航栏内链接中的文本设为非白色。

我尝试过的事情:
- 将 class "black-text" 添加到 li 标签、ul 标签、周围的 div 和 nav 标签
- 在我的 application.scss 文件中为每个 li 标签定义一个 class。
- 添加 li, nav, a { color: black; } 到我的 application.scss 文件

这是导航栏的 html:

  <header class="nav">
    <nav>
      <div class="nav-wrapper white">
        <a href="/" class="brand-logo black-text">GlobalPursuit</a>
        <ul id="nav-mobile" class="right hide-on-med-and-down">
          <li><%= link_to "Pursuits", pursuits_path %></li>
          <li><%= join_dashboard_path %></li>
          <li><%= login_logout_path %></li>
          <li><%= trips_cart_display %></li>
        </ul>
      </div>
    </nav>
  </header>

用 rails 试试这个,我为我工作,所以如果你修改样式。查看全页。

<!DOCTYPE html>
<html>

<head>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.2/css/materialize.min.css">
<!-- Compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.2/js/materialize.min.js"></script>
  
<style>    
nav ul li a{
  color: black;
}    
</style>
</head>

<body>
<header class="top-nav">

<div class="navbar-fixed">
  <nav>
    <div class="nav-wrapper white black-text">
      <a href="#!" class="brand-logo">Logo</a>
      <ul class="right hide-on-med-and-down">
        <li><a href="sass.html">Sass</a></li>
        <li><a href="badges.html">Components</a></li>
        <li class="active"><a href="collapsible.html">JavaScript</a></li>
      </ul>
    </div>
  </nav>
</div>

</header>
<main></main>
<footer></footer>
</body>
</html>

在品牌上尝试使用黑色文字:

<a href="#" class="brand-logo black-text">Logo</a>

由于向 html 添加样式更改会起作用,因此我建议您留在您选择的 materializecss 框架内。

<div class="nav-wrapper"></div>

这个导航栏的默认背景颜色是粉红色的,但是只要添加一种内置的colors/shades,你就会得到非常酷的效果。

<div class="nav-wrapper blue lighten-1></div>

现在我的导航栏有浅蓝色背景色。 同样适用于文本。

<div class="card-panel">
      <span class="blue-text text-darken-2">This is a card panel with dark blue text</span>
</div>

这将生成一个带有蓝色文本的卡片面板。希望这有帮助。

答案基于http://materializecss.com/color.html

看起来物化库在 nav ul a 级别将颜色定义为白色:

nav ul a {
    -webkit-transition: background-color .3s;
    transition: background-color .3s;
    font-size: 1rem;
    color: #fff;
    display: block;
    padding: 0 15px;
    cursor: pointer;
}

要覆盖它,您必须将具体化 text-color class 添加到导航中的实际 <a> 标签 <ul>:

<nav>
    <div class="nav-wrapper white">
      <a href="#!" class="brand-logo">Logo</a>
      <a href="#" data-target="mobile-demo" class="sidenav-trigger"><i class="material-icons">menu</i></a>
      <ul class="right hide-on-med-and-down">
        <li><a class="black-text" href="sass.html">Sass</a></li>
        <li><a class="black-text" href="badges.html">Components</a></li>
        <li><a class="black-text" href="collapsible.html">Javascript</a></li>
        <li><a class="black-text" href="mobile.html">Mobile</a></li>
      </ul>
    </div>
  </nav>