jquery - 创建具有等高图像列和可滚动列表组列的行

标签 jquery html css twitter-bootstrap bootstrap-4

有谁知道如何创建两个具有相同高度的响应式 Bootstrap 4 列,其中一列是图像,另一列是可滚动列表?

这是一个 fiddle (请注意,我不希望列表组在调整视口(viewport)大小时超过图像的高度):https://jsfiddle.net/lgants/gyk31vow/

我确实在这上面花了好几天时间,所以非常感谢任何帮助!

HTML:

<div class="row row-eq-height">
  <div class="col">
    <img src="http://lorempixel.com/output/sports-q-c-800-600-2.jpg">
  </div>
  <div class="col">
    <div class="card">
      <ul class="list-group">
        <li class="list-group-item">Cras justo odio</li>
        <li class="list-group-item">Dapibus ac facilisis in</li>
        <li class="list-group-item">Morbi leo risus</li>
        <li class="list-group-item">Porta ac consectetur ac</li>
        <li class="list-group-item">Porta ac consectetur ac</li>
        <li class="list-group-item">Porta ac consectetur ac</li>
        <li class="list-group-item">Porta ac consectetur ac</li>
        <li class="list-group-item">Porta ac consectetur ac</li>
      </ul>
    </div>
  </div>
</div>

CSS:

img {
  max-width:100%;
  max-height:100%;
  object-fit: contain;
}

.list-group {
  overflow-y: scroll;
}

最佳答案

所以在这种情况下你需要做的是使用JS找到图像的高度并将列表的高度设置为等于图像的高度。此外,由于 Bootstrap 4 在 row 上使用 flex display,因此您需要将 col 设置为 align-items: start; 通过给 row 一类 align-items-start 我正在使用 Bootstrap v4-beta

var picHeight = $('.pic-height').height();
$('.list-group').css('height', picHeight);

$(window).resize(function() {
	var picHeight = $('.pic-height').height();
	$('.list-group').css('height', picHeight);
});
img {
  max-width:100%;
  max-height:100%;
  object-fit: contain;
}

.list-group {
  overflow-y: scroll;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" rel="stylesheet"/>


<div class="row row-eq-height align-items-start">
  <div class="col pic-height">
    <img src="http://lorempixel.com/output/sports-q-c-800-600-2.jpg">
  </div>
  <div class="col">
    <div class="card">
      <ul class="list-group">
        <li class="list-group-item">Cras justo odio</li>
        <li class="list-group-item">Dapibus ac facilisis in</li>
        <li class="list-group-item">Morbi leo risus</li>
        <li class="list-group-item">Porta ac consectetur ac</li>
        <li class="list-group-item">Porta ac consectetur ac</li>
        <li class="list-group-item">Porta ac consectetur ac</li>
        <li class="list-group-item">Porta ac consectetur ac</li>
        <li class="list-group-item">Porta ac consectetur ac</li>
        <li class="list-group-item">Porta ac consectetur ac</li>
        <li class="list-group-item">Porta ac consectetur ac</li>
        <li class="list-group-item">Porta ac consectetur ac</li>
        <li class="list-group-item">Porta ac consectetur ac</li>
      </ul>
    </div>
  </div>
</div>


<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

关于jquery - 创建具有等高图像列和可滚动列表组列的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45890627/

相关文章:

html - z-index 为 -1 时,after 伪元素隐藏在背景后面

html - :not() selector 中的两个类

html - 如何在 CSS 中居中对齐溢出元素

javascript - Jquery Image like ..鼠标悬停时替换图像

javascript - JQuery Mobile Canvas 字段(签名)样式问题

jQuery - 向下滑动而不是向上滑动

php - 我想在查询中使用 href 的这个 id 来显示该类别 id 的文本和图像

javascript - 导航到下一个 div 不起作用

javascript - 具有扩展 div 的表与下一行重叠?

jquery - 响应式多级菜单