首页 > 解决方案 > 如何将 Bootstrap 卡片放置在另一张具有可滚动内容的卡片下方?

问题描述

我的网页有两张卡片:一张在另一张下方。顶部卡片具有包含大量输入组的可滚动正文。我希望将底部卡插入顶部卡的正下方。

我遇到的问题是底部卡片放置在页面底部很远,好像布局考虑到顶部卡片的输入组占用的空间,但这些应该隐藏在可滚动部分内。

下面的代码显示了我的设置。

干杯。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Scrollable Cards</title>
<!-- Bootstrap -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
</head>
<body>
<div class="container-fluid">
  <div class="row">
    <div class="col-12">
      <div class="card text-center col-xl-12 col-lg-12 col-md-12" style="height: 45%;">
        <div class="card-header"> Card 1</div>
        <div class="card-body">
            <div class="scrollable" style="max-height: 35%; overflow-y: auto;">
                <div class="input-group mb-3">
                    <div class="input-group-prepend"> <span class="input-group-text" id="basicaddon1">@</span> </div>
                    <input type="text" class="form-control" placeholder="normal sized input group" aria-describedby="basicaddon1">
                </div>
                <div class="input-group mb-3">
                    <div class="input-group-prepend"> <span class="input-group-text" id="basicaddon1">@</span> </div>
                    <input type="text" class="form-control" placeholder="normal sized input group" aria-describedby="basicaddon1">
                </div>
                <div class="input-group mb-3">
                    <div class="input-group-prepend"> <span class="input-group-text" id="basicaddon1">@</span> </div>
                    <input type="text" class="form-control" placeholder="normal sized input group" aria-describedby="basicaddon1">
                </div>
                <div class="input-group mb-3">
                    <div class="input-group-prepend"> <span class="input-group-text" id="basicaddon1">@</span> </div>
                    <input type="text" class="form-control" placeholder="normal sized input group" aria-describedby="basicaddon1">
                </div>
                <div class="input-group mb-3">
                    <div class="input-group-prepend"> <span class="input-group-text" id="basicaddon1">@</span> </div>
                    <input type="text" class="form-control" placeholder="normal sized input group" aria-describedby="basicaddon1">
                </div>
                <div class="input-group mb-3">
                    <div class="input-group-prepend"> <span class="input-group-text" id="basicaddon1">@</span> </div>
                    <input type="text" class="form-control" placeholder="normal sized input group" aria-describedby="basicaddon1">
                </div>
            </div>
        </div>
      </div>
    </div>
  </div>
</div>
<div class="container-fluid">
  <div class="row">
    <div class="col-12">
      <div class="card text-center col-xl-12 col-lg-12 col-md-12" style="height: 45%;">
        <div class="card-header"> Card 2 </div>
        <div class="card-body">
            <div class="scrollable" style="max-height: 35%; overflow-y: auto;">
                <div class="input-group mb-3">
                    <div class="input-group-prepend"> <span class="input-group-text" id="basicaddon1">@</span> </div>
                    <input type="text" class="form-control" placeholder="normal sized input group" aria-describedby="basicaddon1">
                </div>
                <div class="input-group mb-3">
                    <div class="input-group-prepend"> <span class="input-group-text" id="basicaddon1">@</span> </div>
                    <input type="text" class="form-control" placeholder="normal sized input group" aria-describedby="basicaddon1">
                </div>
            </div>
        </div>
      </div>
    </div>
  </div>
</div>

<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
</body>
</html>

标签: htmlcssbootstrap-4

解决方案


您必须制作一些height以 px 为单位的固定大小。

例如,删除 style="height: 45%;"替换 style="max-height: 35%; overflow-y: auto;"style="max-height: 150px; overflow-y: auto;"

通常,您的代码非常混乱。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Scrollable Cards</title>
<!-- Bootstrap -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
</head>
<body>
<div class="container-fluid">
  <div class="row">
    <div class="col-12">
      <div class="card text-center col-xl-12 col-lg-12 col-md-12">
        <div class="card-header"> Card 1</div>
        <div class="card-body">
            <div class="scrollable" style="max-height: 150px; overflow-y: auto;">
                <div class="input-group mb-3">
                    <div class="input-group-prepend"> <span class="input-group-text" id="basicaddon1">@</span> </div>
                    <input type="text" class="form-control" placeholder="normal sized input group" aria-describedby="basicaddon1">
                </div>
                <div class="input-group mb-3">
                    <div class="input-group-prepend"> <span class="input-group-text" id="basicaddon1">@</span> </div>
                    <input type="text" class="form-control" placeholder="normal sized input group" aria-describedby="basicaddon1">
                </div>
                <div class="input-group mb-3">
                    <div class="input-group-prepend"> <span class="input-group-text" id="basicaddon1">@</span> </div>
                    <input type="text" class="form-control" placeholder="normal sized input group" aria-describedby="basicaddon1">
                </div>
                <div class="input-group mb-3">
                    <div class="input-group-prepend"> <span class="input-group-text" id="basicaddon1">@</span> </div>
                    <input type="text" class="form-control" placeholder="normal sized input group" aria-describedby="basicaddon1">
                </div>
                <div class="input-group mb-3">
                    <div class="input-group-prepend"> <span class="input-group-text" id="basicaddon1">@</span> </div>
                    <input type="text" class="form-control" placeholder="normal sized input group" aria-describedby="basicaddon1">
                </div>
                <div class="input-group mb-3">
                    <div class="input-group-prepend"> <span class="input-group-text" id="basicaddon1">@</span> </div>
                    <input type="text" class="form-control" placeholder="normal sized input group" aria-describedby="basicaddon1">
                </div>
            </div>
        </div>
      </div>
    </div>
  </div>
</div>
<div class="container-fluid">
  <div class="row">
    <div class="col-12">
      <div class="card text-center col-xl-12 col-lg-12 col-md-12" style="height: 45%;">
        <div class="card-header"> Card 2 </div>
        <div class="card-body">
            <div class="scrollable" style="max-height: 35%; overflow-y: auto;">
                <div class="input-group mb-3">
                    <div class="input-group-prepend"> <span class="input-group-text" id="basicaddon1">@</span> </div>
                    <input type="text" class="form-control" placeholder="normal sized input group" aria-describedby="basicaddon1">
                </div>
                <div class="input-group mb-3">
                    <div class="input-group-prepend"> <span class="input-group-text" id="basicaddon1">@</span> </div>
                    <input type="text" class="form-control" placeholder="normal sized input group" aria-describedby="basicaddon1">
                </div>
            </div>
        </div>
      </div>
    </div>
  </div>
</div>

<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
</body>
</html>


推荐阅读