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

8pr*_*ons 1 html css twitter-bootstrap twitter-bootstrap-3

这个伟大的答案提到了当你仍然需要来自所述类的一些样式时,给出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>
Run Code Online (Sandbox Code Playgroud)

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

#ft-nav-text {
    font-size: 18px;
    font-family: "Myriad Pro";
    color: blue;
}
Run Code Online (Sandbox Code Playgroud)

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

van*_*ren 5

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

工作实例:

#ft-nav-text > li > a {
  font-size: 18px;
  font-family: "Myriad Pro";
  color: blue;
}
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)

  • @ 8protons:CSS具有*特性*规则的概念.如果元素的样式由多个规则控制,则*特定*规则获胜.(根据后面的CSS应用相同特异性的规则.)例如,`a {}`非常通用; `.navbar-nav a {}`更具体.因此,如果它们都指定了颜色,后者将赢得`.navbar-nav`元素中的`a`元素.另一个例子:`.navbar-nav.nav a {}`比`.navbar-nav a {}`更具体. (3认同)