为什么我的ID不会覆盖Bootstrap类?

时间:2016-07-04 05:13:19

标签: html css twitter-bootstrap twitter-bootstrap-3

这个great answer提到了当你仍然需要来自所述类的一些样式时,给出ID是一种覆盖现有类元素的好方法。例如,下面我有以下内容:

<ul class="nav navbar-nav navbar-right" id="ft-nav-text">
     <li><a href="#">Home</a></li>
     <li><a href="#">About</a></li>
</ul>

我想改变文本的一些属性,比如颜色。

#ft-nav-text {
    font-size: 18px;
    font-family: "Myriad Pro";
    color: blue;
}

然而,除非我删除navbar-nav类,否则文本将不会更改为蓝色,我仍然需要一些样式。我不想破解主 Bootstrap 文件。

2 个答案:

答案 0 :(得分:5)

您没有定位要更改的元素,请使用更具体的选择器。

工作示例:

#ft-nav-text > li > a {
  font-size: 18px;
  font-family: "Myriad Pro";
  color: blue;
}
<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.6/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<nav class="navbar navbar-default">
  <div class="container-fluid">

    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Brand</a>
    </div>

    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav navbar-right" id="ft-nav-text">
        <li><a href="#">Home</a>
        </li>
        <li><a href="#">About</a>
        </li>
      </ul>
    </div>

  </div>
</nav>

答案 1 :(得分:1)

Bootstrap在引导程序中的.navbar-nav > li > a上定义了一些样式,即它不是从父类继承color样式。因此,在其任何父级上定义id将不起作用。

您需要使用#fg-nav-text a来覆盖样式。

a {
  color: black;
}

#ft-nav-text {
  font-size: 18px;
  font-family: "Myriad Pro";
  color: blue;
}
<ul class="nav navbar-nav navbar-right" id="ft-nav-text">
     <li><a href="#">Home</a></li>
     <li><a href="#">About</a></li>
</ul>