【问题标题】:CSS Border only on certain div'sCSS 边框仅在某些 div 上
【发布时间】:2021-01-15 16:29:53
【问题描述】:

我想为除行中的最后一个之外的所有 div 获得右侧边框,其中行列数通过依赖于设备的引导网格系统可变。

4、3、2 或 1 列。

如果我有 4 列,那么只有前 3 列会有右边框。 如果我有 3 列,那么只有前 2 列会有右边框。 等等。

rg-product-container {
  border-bottom: 1px solid #eee;
  min-height: auto;
  padding: 30px;
}

.rg-product-container:nth-child(1n+1) {
  border-right: 1px solid #eee;
}
<div class="row">
  <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 rg-product-container">STUFF HERE</div>
  <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 rg-product-container">STUFF HERE</div>
  <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 rg-product-container">STUFF HERE</div>
  <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 rg-product-container">STUFF HERE</div>
  <!-- ... More dynamically generated HTML -->
</div>

作为参考,我创建了这张照片,上面的 CSS 呈现如下图所示的结果。我要消除的是照片中显示的红色边框。问题是它是基于引导网格的变量。

【问题讨论】:

  • 引导程序版本 4

标签: html css twitter-bootstrap bootstrap-4


【解决方案1】:

outline结合overflow:hidden行就可以了

.rg-product-container {
  outline: 1px solid red;
  padding: 30px;
}

.row {
  overflow:hidden;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">

<div class="container">
  <div class="row">
    <div class="col-12 col-sm-6 col-md-4 col-lg-3 rg-product-container">STUFF HERE</div>
    <div class="col-12 col-sm-6 col-md-4 col-lg-3 rg-product-container">STUFF HERE</div>
    <div class="col-12 col-sm-6 col-md-4 col-lg-3 rg-product-container">STUFF HERE</div>
    <div class="col-12 col-sm-6 col-md-4 col-lg-3 rg-product-container">STUFF HERE</div>
    <div class="col-12 col-sm-6 col-md-4 col-lg-3 rg-product-container">STUFF HERE</div>
    <div class="col-12 col-sm-6 col-md-4 col-lg-3 rg-product-container">STUFF HERE</div>
    <div class="col-12 col-sm-6 col-md-4 col-lg-3 rg-product-container">STUFF HERE</div>
    <div class="col-12 col-sm-6 col-md-4 col-lg-3 rg-product-container">STUFF HERE</div>
    <div class="col-12 col-sm-6 col-md-4 col-lg-3 rg-product-container">STUFF HERE</div>
    <div class="col-12 col-sm-6 col-md-4 col-lg-3 rg-product-container">STUFF HERE</div>
    <div class="col-12 col-sm-6 col-md-4 col-lg-3 rg-product-container">STUFF HERE</div>
    <div class="col-12 col-sm-6 col-md-4 col-lg-3 rg-product-container">STUFF HERE</div>
  </div>
</div>

【讨论】:

    【解决方案2】:

    如果您想排除边框的最后一个子行,您可以简单地使用last-of-type 选择器。试试这个 CSS 代码。

    rg-product-container{
        border-bottom:1px solid #eee;
        min-height:auto;
        padding:30px;
    }
    .rg-product-container {
        border-right: 1px solid #eee;
    }
    .rg-product-container:last-of-type{
        border-right: none;
    }
    

    【讨论】:

    • 你好@Aryan 谢谢你的回答!看起来这可行,但它只删除我堆栈中的最后一个 div,而不是根据引导网格系统每隔 4、3、2 次删除一次。因此,如果我有一个&lt;div class="row"&gt;&lt;/div&gt; ,假设为 25 &lt;div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 rg-product-container"&gt;STUFF HERE&lt;/div&gt;,那么如果在大屏幕上查看,我将需要每 4 个 div 没有边框,如果在中型屏幕上查看,则每 3 个 div 没有边框,等等。等等。
    • 只有 1 个父 row div,然后是多个 col div,因为它们是动态生成的,具体取决于我的数据库中有多少产品并且可以更改。我最初的想法是我会使用媒体查询 + 第 n 个 CSS 的组合,但到目前为止我还没有运气。
    猜你喜欢
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-30
    相关资源
    最近更新 更多