启用表格行特定的类背景来覆盖条纹表格中特定于单元格的类背景

问题描述 投票:0回答:1

在使用 Bootstrap v5.3.3 构建条纹 Bootstrap 表时,我需要能够使用 Bootstrap“table-danger”类显示一些具有红色背景的单元格。我还需要能够使用“表警告”类突出显示整行。但是我无法产生预期的结果。

在下面的示例中,最后一列的所有单元格都具有“table-danger”类别。使用CSS,我希望所有在带有“table-warning”类的tr内具有“table-danger”类的td元素都具有#fff3cd背景颜色。

理论上,第 1 行和第 2 行应该显示预期的行为。但实际上,只有第 2 行显示预期行为。 #1 行的背景仍然是红色,但它应该是黄色。如果我检查“纽约”单元格,背景颜色值符合预期,但它不显示该值。

我不明白是什么导致了这种行为。

    /* Higher specificity to target the table-danger cells inside table-warning rows */
    tr.table-warning td.table-danger {
        background-color: #fff3cd !important;
        /* Ensure the table-warning background color is applied */
    }
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"/>
<body>
    <div class="container mt-5">
        <table class="table table-striped">
            <thead>
                <tr class="table-warning">
                    <th scope="col">Row</th>
                    <th scope="col">Name</th>
                    <th scope="col">Age</th>
                    <th scope="col">City</th>
                </tr>
            </thead>
            <tbody>
                <tr class="table-warning">
                    <td>#1</td>
                    <td>John Doe</td>
                    <td>25</td>
                    <td class="table-danger">New York</td>
                </tr>
                <tr class="table-warning">
                    <td>#2</td>
                    <td>Jane Smith</td>
                    <td>30</td>
                    <td class="table-danger">London</td>
                </tr>
                <tr>
                    <td>#3</td>
                    <td>Mark Johnson</td>
                    <td>35</td>
                    <td class="table-danger">Paris</td>
                </tr>
            </tbody>
        </table>
    </div>
</body>

html css twitter-bootstrap bootstrap-5
1个回答
0
投票

问题在于具有 table-danger 类别的单元格位于具有 table-warning 类别的 tr 中。一个单元格不能有两种背景颜色。所以你必须做出选择。

这是解决您问题的代码:

.last-cell {
        background-color: #fff3cd !important;
      }
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
    <link
      href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css"
      rel="stylesheet"
    />
    <title>Document</title>
    
  </head>
  <body>
    <body>
      <div class="container mt-5">
        <table class="table table-striped">
          <thead>
            <tr class="table-warning">
              <th scope="col">Row</th>
              <th scope="col">Name</th>
              <th scope="col">Age</th>
              <th scope="col">City</th>
            </tr>
          </thead>
          <tbody>
            <tr class="table-warning">
              <td>#1</td>
              <td>John Doe</td>
              <td>25</td>
              <td class="last-cell">New York</td>
            </tr>
            <tr class="table-warning">
              <td>#2</td>
              <td>Jane Smith</td>
              <td>30</td>
              <td class="last-cell">London</td>
            </tr>
            <tr>
              <td>#3</td>
              <td>Mark Johnson</td>
              <td>35</td>
              <td class="">Paris</td>
            </tr>
          </tbody>
        </table>
      </div>
    </body>
  </body>
</html>

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.