【问题标题】:Can Bootstrap 4 Cards Have Tiled Background Images可以引导 4 卡平铺背景图像吗
【发布时间】:2020-03-31 21:22:53
【问题描述】:

我正在尝试让卡片具有平铺背景图像。要获得单个图像背景,我使用:

<div class="card img-fluid">
  <img class="card-img-top" src="images/backcard-brushedmetal.jpg">
  <div class="card-img-overlay">
    <div class="card-body text-justify">
      <h3 class="articleh3"><a href="#">xxxDescriptionxxx</a></h3>
      <p>
        <a href="#"><img src="images/xxxImagexxx.jpg" alt="xxxDescriptionxxx" height="100" width="80" style="margin-right: 10px;float: left" /></a>
        xxxSomeTextHerexxx
      </p>
    </div>
  </div>
</div>

我的问题是我使用不同尺寸的卡片,而现在我的图像大小决定了卡片的大小;我想我想反过来(控制显示背景大小的卡片)。所以我想知道是否可以平铺背景图像,使其仅填充背景,然后卡片或图像的大小无关紧要。

据我所知,这甚至可能是不可能的,如果没有,那很好,我会寻找另一种方法来做类似的事情:)

不管怎样,谢谢你的建议:)

詹姆斯

【问题讨论】:

    标签: html bootstrap-4 background-image tiles


    【解决方案1】:

    如果使用 img 元素的唯一目的是作为背景 - 使用 background-image CSS property 在元素上设置背景图像。

    按 cmets 编辑: 显然float 部分在给定的标记上引起了一些“问题”,但是还有更多的东西......无法弄清楚为什么这不起作用 - 所以我删除了 BS4(添加了 2 个示例):

    .card.img-fluid {
      background: url(http://www.rocksquad.co.uk/images/backcard-brushedmetal.jpg) no-repeat;
      background-position: center;
      background-size: cover;
    }
    <div class="card img-fluid">
      <div class="card-img-overlay">
        <div class="card-body text-justify">
          <h3 class="articleh3"><a href="#">xxxDescriptionxxx</a></h3>
          <p>
            <a href="#"><img src="http://www.rocksquad.co.uk/images/backcard-brushedmetal.jpg" alt="xxxDescriptionxxx" height="100" width="80" style="margin-right: 10px;" /></a>
            xxxSomeTextHerexxx<br>xxxSomeTextHerexxx
          </p>
        </div>
      </div>
    </div>
    <hr>
    <div class="card img-fluid">
      <div class="card-img-overlay">
        <div class="card-body text-justify">
          <h3 class="articleh3"><a href="#">xxxDescriptionxxx</a></h3>
          <p>
            <a href="#"><img src="http://www.rocksquad.co.uk/images/backcard-brushedmetal.jpg" alt="xxxDescriptionxxx" height="100" width="80" style="margin-right: 10px;" /></a>
            xxxSomeTextHerexxx<br>xxxSomeTextHerexxx<br>        xxxSomeTextHerexxx<br>xxxSomeTextHerexxx<br>        xxxSomeTextHerexxx<br>xxxSomeTextHerexxx<br>        xxxSomeTextHerexxx<br>
          </p>
        </div>
      </div>
    </div>

    这个问题需要一些“bootstrap 4 专家”来回答 - 显然这不是我(:


    旧(不工作)答案:

    在您的情况下,由于您希望图像覆盖元素,您可以这样做:

    <style>
    .card.img-fluid {
      background: url(images/backcard-brushedmetal.jpg) no-repeat;
      background-position: center;
      background-size: cover;
    }
    </style>
    <div class="card img-fluid">
      <div class="card-img-overlay">
        <div class="card-body text-justify">
          <h3 class="articleh3"><a href="#">xxxDescriptionxxx</a></h3>
          <p>
            <a href="#"><img src="images/xxxImagexxx.jpg" alt="xxxDescriptionxxx" height="100" width="80" style="margin-right: 10px;float: left" /></a>
            xxxSomeTextHerexxx
          </p>
        </div>
      </div>
    </div>
    

    【讨论】:

    • 嗨,这不起作用或似乎没有做任何事情;不知道为什么。我必须重新添加“" 以使其正常工作,并且当我更改页面大小时(模仿使用较小的屏幕),背景不会改变,不会扩展或扩展。添加背景图像似乎也使文本在卡片外“流血”。感谢您的尝试:)
    • 实际上,“出血”文本(文本出现在卡片外部)似乎与
      相关,即如果我将其移除,卡片会正常运行正确,否则不会。
    • @JamesRocks 所以我阅读了文档,看来您正在尝试这样做:getbootstrap.com/docs/4.0/components/card/#image-overlays。所以(a)你需要使用正确的类和(b)检查这个注释:将图像变成卡片背景并覆盖卡片的文本。根据图像,您可能需要也可能不需要其他样式或实用程序。 (c) 上传您的图片,我会尽力提供帮助。
    • 嗯,我如何上传我正在使用的图像?这个链接有帮助吗? rocksquad.co.uk/images/backcard-brushedmetal.jpg。詹姆斯
    • @JamesRocks 抱歉,但我没有设法让它与 BS4 一起使用。我添加了没有它的示例和一些注释。希望你能得到你的 BS4 答案(:
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签