【问题标题】:giving two background colors for html with css not working为 html 提供两种背景颜色,但 css 不起作用
【发布时间】:2020-11-07 06:01:41
【问题描述】:

我有一个要以 HTML 格式显示的表单,表单 HTML 代码如下:

<form action="<?php echo base_url('editAllProductsAction'); ?>" method="post">
  <?php foreach($products as $key=>$val){ ?>
  <div class="row">
    <h5></h5>
    <input type="hidden" value="<?php echo $val['id']; ?>" name="id[]" />
    <div class="col-lg-3">
      <label>Product Name</label>
      <input name="product_name[]" value="<?php echo $val['product_name']; ?>" type="text" class="form-control" />
    </div>
    <div class="col-lg-3">
      <label>Min Qty </label>
      <select name="min_qty[]" class="form-control">
        <?php for($i=1;$i<50;$i++){ ?>
        <option <?php if($i==$val[ 'min_qty']) echo 'selected'; ?> value="
          <?php echo $i; ?>">
          <?php echo $i; ?>
        </option>
        <?php }?>
      </select>
    </div>
    <div class="col-lg-3">
      <label>Purchase Price </label>
      <input name="purchase_price[]" value="<?php echo $val['purchase_price']; ?>" type="number" data-id="<?php echo $val['id']; ?>" class="form-control edit_purchase_price" />
    </div>
    <div class="col-lg-3">
      <label>Nosh Price </label>
      <input name="nosh_price[]" value="<?php echo $val['nosh_price']; ?>" type="number" class="form-control edit_nosh_price_<?php echo $val['id']; ?>" />
    </div>
  </div>
  <?php } ?>
  <button type="submit" class="btn btn-primary right_side">Submit</button>
</form>

如您所见,我使用 php 显示表单中的值,当我显示表单时,因为所有行都具有与下面相同的白色背景,这很尴尬:

我正在尝试为表单提供 2 种背景颜色,例如在第一行中所有输入背景颜色将显示一种颜色,第二行所有输入背景将显示不同颜色,并且每行都将继续显示。我做了以下CSS:

.form-control:nth-child(2n+1) {
  background-color: grey;
}

但这没有显示颜色,谁能告诉我我在这里做错了什么。提前致谢

【问题讨论】:

  • 你确定你的意思不是:nth-of-type-selector?

标签: html css forms input background


【解决方案1】:

:nth-child(2n+1) 部分代码将适用于与兄弟姐妹处于同一级别的form-control 类。在同一级别上没有其他 form-control 类作为同级。他们住在不同的柱子里。这就是为什么 2n+1 在它自己的关卡中找不到第三个form-control 的原因。所以,基本上你必须将col-lg-3 类定位为:nth-child(2n+1)。应该像这样工作-

.col-lg-3:nth-child(2n+1) {
    background-color: grey;
}

如果您想在每列的基础上设置不同的样式,那么您将选择每隔一列,然后选择最终的 form-control 类。

您可以在这里直观地看到它-https://css-tricks.com/examples/nth-child-tester/

编辑: 进一步澄清,这里是在这种情况下应该工作的代码,上面的解释与选择器的一点点变化有关-

.row:nth-child(2n+1) .form-control {
    background-color: #000;
}

【讨论】:

  • 这不是我要找的兄弟,类似 .row:nth-child(2n+1){ background: gray; },但只针对输入背景,如何在这个中指定输入背景
  • 然后你只需选择 .form-control 就像这样 - .row:nth-child(2n+1) .form-control。一旦选择了第 n 行/列,您只需通过添加带有空格的类名作为普通 seelctor 并设置背景颜色:灰色来选择其中的输入。
  • 你能从页面源中复制生成的 html 并添加一个 jsfiddle fiddle 并提供链接吗?
  • 兄弟你能开个聊天吗
  • 兄弟你能开个聊天吗
【解决方案2】:

你必须给 class row 而不是 form-control

.row:nth-child(2n+1){
background: grey;
}

【讨论】:

  • 几乎是我要找的,但我想指定只更改输入背景颜色
  • 那么你可以这样做.row:nth-child(2n+1) &gt; input { background: grey}
猜你喜欢
  • 2018-03-07
  • 2016-06-11
  • 2017-09-08
  • 2021-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多