css优先级和Bootstrap,背景颜色的问题

时间:2018-02-24 22:27:42

标签: html css twitter-bootstrap bootstrap-4

视觉上这个项目只是Bootstrap列的金字塔。但是由于引导类的命名方式,一些颜色会覆盖其他颜色。订单应该是绿色 - >蓝色 - >紫色。但是现在它是绿色 - >紫色 - >绿色。当我真的希望最外面的列控制颜色时,最里面的列控制列的颜色。

我查了如何更改Bootstrap中的类名,但这看起来很困难,绝对超出了他们希望我们对项目做的范围。

我已经有一段时间了,并没有看到一个简单的解决方法。

HTML:

<div class="row justify-content-center">
  <div class="col-4 text-center">
    fourth layer
  </div>
</div>

<div class="row justify-content-center">
  <div class="col-5">
    <div class= "row">
    <div class="col-6 text-center">
      fith layer
    </div>
    <div class="col-6 text-center">
      fifth layer
    </div>
  </div>
</div>
</div>

 <div class="row justify-content-center">
  <div class="col-6">
    <div class= "row">
    <div class="col-4 text-center">
      sixth layer
    </div>
    <div class="col-4 text-center">
      sixth layer
    </div>
    <div class="col-4 text-center">
      sixth layer
    </div>

  </div>
</div>
</div>

CSS:

body{
    color:white;
}

.col-4{
    background-color: green;
}

.col-5{
    background-color: blue;
}

.col-6{
    background-color: purple;
}

2 个答案:

答案 0 :(得分:1)

以下是产生预期效果的一种方法。

.col-5 .col-6这样的规则意味着:

如果有一个类.col-5的元素包含其中的某个位置(无论嵌套有多深)具有类.col-6的元素,那么将相应的规则应用于它

以下是片段:

&#13;
&#13;
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    
<style>    
    .col-4{
        background-color: green;
    }

    .col-5 .col-6{
        background-color: blue;
    }

    .col-6 .col-4{
        background-color: purple;
    }
</style>

<div class="row justify-content-center">
    <div class="col-4 text-center">
        fourth layer
    </div>
</div>

<div class="row justify-content-center">
    <div class="col-5">
        <div class= "row">
            <div class="col-6 text-center">
                fith layer
            </div>
            <div class="col-6 text-center">
                fifth layer
            </div>
        </div>
    </div>
</div>

<div class="row justify-content-center">
    <div class="col-6">
        <div class= "row">
            <div class="col-4 text-center">
                sixth layer
            </div>
            <div class="col-4 text-center">
                sixth layer
            </div>
            <div class="col-4 text-center">
                sixth layer
            </div>

        </div>
    </div>
</div>
&#13;
&#13;
&#13;

我的意思是,不清楚为什么你不仅仅使用id或自定义类。

答案 1 :(得分:0)

您可以根据父级的类设置每个孩子的背景,如下所示:

body {
  color: white;
}

.col-4 {
  background-color: green;
}

.col-5 {
  background-color: blue;
}

.col-6 {
  background-color: purple;
}


.col-4 div {
  background-color: green !important;
}

.col-5 div {
  background-color: blue !important;
}

.col-6 div {
  background-color: purple !important;
}
<div class="row justify-content-center">
  <div class="col-4 text-center">
    fourth layer
  </div>
</div>

<div class="row justify-content-center">
  <div class="col-5">
    <div class="row">
      <div class="col-6 text-center">
        fith layer
      </div>
      <div class="col-6 text-center">
        fifth layer
      </div>
    </div>
  </div>
</div>

<div class="row justify-content-center">
  <div class="col-6">
    <div class="row">
      <div class="col-4 text-center">
        sixth layer
      </div>
      <div class="col-4 text-center">
        sixth layer
      </div>
      <div class="col-4 text-center">
        sixth layer
      </div>

    </div>
  </div>
</div>