html - Bootstrap img-responsive 不缩放到父级

标签 html css twitter-bootstrap responsive-design

我正在尝试使用 Bootstrap img-responsive 类让一些图像在它们的父容器中响应式缩放,但进展不顺利。在这种情况下,我想在屏幕上以网格模式显示 2 到 4 个图像,并让图像在其父 div 内响应。

问题是图像不会随着 img-container 类缩小。

https://jsfiddle.net/fcLv3750/2/

enter image description here

HTML

<div class="container-fluid">


  <div class="row">
    <div class="row-inner">
      <div class="col-sm-6">
        <div class="img-container">
          <img src="http://i.imgur.com/gHDJC06.jpg" class="img-responsive">
        </div>
      </div>

      <div class="col-sm-6">
        <div class="img-container">
          <img src="http://i.imgur.com/gHDJC06.jpg" class="img-responsive">
        </div>
      </div>
    </div>
  </div>


  <div class="row">
    <div class="row-inner">
      <div class="col-sm-6">
        <div class="img-container">
          <img src="http://i.imgur.com/gHDJC06.jpg" class="img-responsive">
        </div>

      </div>
      <div class="col-sm-6">
        <div class="img-container">
          <img src="http://i.imgur.com/gHDJC06.jpg" class="img-responsive">
        </div>
      </div>
    </div>
  </div>


</div>

CSS

.row-container {
  background-color: red;
  padding: 5px;
  max-height: 50%;
  height: auto;
}

.img-container {
  padding: 4px;
  max-height: 100%;
  border: 5px;
  border-color: black;
  border-style: solid;
}

.col-sm-6 {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.row-inner {
  background-color: orange;
  height: 50vh;   //I want the page contents to resize based on browser window height (no scrolling)
  width: auto;
}

注意:以下将使图像变得响应式,但它通过使 img-container 成为行的全高而脱离了网格,我不想这样做。 (我不希望 img-container 高度为 100%)

https://jsfiddle.net/bm83ts0p/2/

enter image description here

.img-container {
  padding: 4px;
  height: 100%;   //changed from max-height:100%
  border: 5px;
  border-color: black;
  border-style: solid;
}

img{
 max-height: 100%
}

A) 是什么导致 img-responsive 类被忽略?
B) 我该怎么做才能使图像响应,并且 img-container div 不是 100% 高度。

编辑:一个关键特性是内容可以根据浏览器窗口调整大小而无需滚动,因此 height: 50vh; 用于 2 行中的每一行。

EDIT2:这是期望的结果(仅当图像处于最大分辨率且没有缩放时才有效。大图像或较小的浏览器窗口会产生上面列出的问题) enter image description here

最佳答案

我已经从您的代码中删除了包装器“row-inner”,因为它会导致 clearfix 问题。主要是原因。

HTML:

<div class="container-fluid">


  <div class="row">

      <div class="col-sm-6">
        <div class="img-container">
          <img src="http://i.imgur.com/gHDJC06.jpg" class="img-responsive">
        </div>
      </div>

      <div class="col-sm-6">
        <div class="img-container">
          <img src="http://i.imgur.com/gHDJC06.jpg" class="img-responsive">
        </div>
      </div>

  </div>


  <div class="row">

      <div class="col-sm-6">
        <div class="img-container">
          <img src="http://i.imgur.com/gHDJC06.jpg" class="img-responsive">
        </div>

      </div>
      <div class="col-sm-6">
        <div class="img-container">
          <img src="http://i.imgur.com/gHDJC06.jpg" class="img-responsive">
        </div>
      </div>

  </div>


</div>

Boostrap 网格中的列紧跟在行之后。例如 row>col 以避免任何类型的 clearfix 问题。希望对您有所帮助。

JS fiddle :https://jsfiddle.net/dncwdvkq/

关于html - Bootstrap img-responsive 不缩放到父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40824976/

相关文章:

html - CSS div 相对于其他 div 的定位

html - ="search"类型的输入没有显示圆 Angular

css - Angular 局部 View

jquery - 如何减小 Accordion 宽度(调整大小)并像导航栏或侧边栏一样向右对齐?

jquery - 动态 <li> 没有响应

javascript - Jquery获取和设置html字符串某些部分的css属性

python - Django 包含标签不显示数据

html - 页面顶部的标签未正确对齐

javascript - 表单加载时如何显示加载器?

jquery - Twitter Bootstrap 选项卡 : loading a link