javascript - 如何设置列和容器的最大高度以便图像适合 bootstrap 4 中的整个页面?

标签 javascript html css twitter-bootstrap bootstrap-4

我使用 bootstrap 4 连续两列。我想使用整个屏幕来显示图像。这是我的代码:

<div class="container-fluid" style="padding-left:0px;">
        <div class="row">
            <div class="col-md-6 ">
                <img class="img-fluid" src="jumbo_background.jpg" />
            </div>
            <div class="col-md-6">
                <div class="contact-wrapper">
                  <p>Test</p>
                </div>
            </div>
        </div>
   </div>

一切正常且响应迅速,但这是我从这段代码中得到的结果:

result 1

我想要的首选结果是:

Result2

我使用的图片尺寸是6000 X 4000

我尝试过的解决方案:

html, body {
height: 100%;

}

我已经使用 Google 开发工具检查了浏览器,我可以看到正文是 100%,但仍然不是我想要的结果。

我从 Bootstrap 中使用了 h-100,但仍然得到相同的结果。

我使用了 height: 100vh; 但在较小的设备上它没有响应

我已经检查了这个链接:

Height not 100% on Container Fluid even though html and body are

还是得不到我想要的结果。

如何在 bootstrap 4 中为图像提供全高?

更新:

分辨率为 nikolay 解决方案后:1156 x 1013

result3

最佳答案

您似乎想将图像用作背景。所以我的建议是这样做,因为跨浏览器支持更好(我并不是说不能单独使用 <img> 来完成,只是使用 background-image 更容易)。请注意我要离开 <img>加入标签有两个原因:

  • SEO 索引(如果您需要)
  • 在移动设备上正确调整列的大小。

然而,<img>未呈现。你总是在看 <div> 的背景图片.

这是一个获取 src 的解决方案第一个的属性 <img>每个元素 .column-image并将其用作 <div> s backgroundImage .要使其正常工作,请确保 <div>image-column类:

$(function() {
  $('.image-column').each(function() {
    const src = $('img', this).eq(0).attr('src');
    if (src) {
      $(this).css({ backgroundImage: `url(${src})` })
    }
  })
});
.image-column {
  min-height: 100vh;
  background: transparent no-repeat center /cover;
}

.image-column .img-responsive {
  visibility: hidden;
}

@media(max-width: 767px) {
  .image-column {
    min-height: 0;
  }
  .image-column .img-responsive {
    width: 100%;
    height: auto;
  }
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>

<div class="container-fluid">
  <div class="row">
    <div class="col-md-6 image-column">
      <img src="https://i.picsum.photos/id/237/600/400.jpg" class="img-responsive">
    </div>
    <div class="col-md-6">
      <div class="contact-wrapper">
        <p>Test</p>
      </div>
    </div>
  </div>
</div>

注意:即使它同时用作 src<img>background-image<div> ,资源(图片)只加载一次。

关于javascript - 如何设置列和容器的最大高度以便图像适合 bootstrap 4 中的整个页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59751399/

相关文章:

javascript - fadein/out slow 没有 "slow"效果

css - 背景视频过滤器隐藏覆盖 Div

javascript - Chart.js 在线图顶部裁剪

javascript - 标签和输入字段在同一行

java - 如何从HTML获取链接, `doc.select`的正确用法

php - jQuery Combobox 和数据库问题

javascript - 如何通过vue中该对象的另一个数组中的id号查找数组中的对象

javascript - Node Js、javascript、mysql,客户端看到/看不到什么?

javascript - JS DOM顺序问题

css - :first-child Where Class is :not(. 禁用)