【问题标题】:Force Bootstrap Columns to Stay Within Container强制引导列留在容器内
【发布时间】:2021-09-28 10:33:03
【问题描述】:

我正在尝试使用引导程序 5 为某些照片显示两行层次结构。但是,图像不会留在容器内,而是溢出了。我希望容器填满屏幕,使其充当封面显示,而无需用户滚动。如何让它们动态调整大小以适应容器?

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" />

<div class="container" style="height: 100vh; background-color: yellow;">
    <div class="row justify-content-center">
        <div class="col col-12 col-md-4">
            <img class="w-100 p-5" src="https://via.placeholder.com/1080" style="border-radius: 80px;">
        </div>
    </div>
    <div class="row">
        <div class="col col-12 col-md-4">
            <img class="w-100 p-5" src="https://via.placeholder.com/1080" style="border-radius: 80px;">
        </div>
        <div class="col col-12 col-md-4">
            <img class="w-100 p-5" src="https://via.placeholder.com/1080" style="border-radius: 80px;">
        </div>
        <div class="col col-12 col-md-4">
            <img class="w-100 p-5" src="https://via.placeholder.com/1080" style="border-radius: 80px;">
        </div>
    </div>
</div>

元素像这样溢出:

我希望它缩小图像,使其看起来像这样:

我尝试在元素上设置一个高度,但是它们占据了整个屏幕,就好像高度没有相对于容器定义一样。我可以使用一些不同的方法来显示图像,以便它们动态变化吗?

【问题讨论】:

标签: html css bootstrap-5


【解决方案1】:

关于您的问题,我唯一能想到的就是您在容器上设置了height: 100vh。删除它。

正如您在此处看到的,我添加了另一行并且您的容器缩放得很好;

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" />

<div class="container" style="background-color: yellow;">
    <div class="row justify-content-center">
        <div class="col col-12 col-md-4">
            <img class="w-100 p-5" src="https://via.placeholder.com/1080" style="border-radius: 80px;">
        </div>
    </div>
    <div class="row">
        <div class="col col-12 col-md-4">
            <img class="w-100 p-5" src="https://via.placeholder.com/1080" style="border-radius: 80px;">
        </div>
        <div class="col col-12 col-md-4">
            <img class="w-100 p-5" src="https://via.placeholder.com/1080" style="border-radius: 80px;">
        </div>
        <div class="col col-12 col-md-4">
            <img class="w-100 p-5" src="https://via.placeholder.com/1080" style="border-radius: 80px;">
        </div>
    </div>
   <div class="row">
        <div class="col col-12 col-md-4">
            <img class="w-100 p-5" src="https://via.placeholder.com/1080" style="border-radius: 80px;">
        </div>
        <div class="col col-12 col-md-4">
            <img class="w-100 p-5" src="https://via.placeholder.com/1080" style="border-radius: 80px;">
        </div>
        <div class="col col-12 col-md-4">
            <img class="w-100 p-5" src="https://via.placeholder.com/1080" style="border-radius: 80px;">
        </div>
    </div>
</div>

但是,如果你把高度放回去,你会看到不太好;

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" />

<div class="container" style="height: 100vh; background-color: yellow;">
    <div class="row justify-content-center">
        <div class="col col-12 col-md-4">
            <img class="w-100 p-5" src="https://via.placeholder.com/1080" style="border-radius: 80px;">
        </div>
    </div>
    <div class="row">
        <div class="col col-12 col-md-4">
            <img class="w-100 p-5" src="https://via.placeholder.com/1080" style="border-radius: 80px;">
        </div>
        <div class="col col-12 col-md-4">
            <img class="w-100 p-5" src="https://via.placeholder.com/1080" style="border-radius: 80px;">
        </div>
        <div class="col col-12 col-md-4">
            <img class="w-100 p-5" src="https://via.placeholder.com/1080" style="border-radius: 80px;">
        </div>
    </div>
   <div class="row">
        <div class="col col-12 col-md-4">
            <img class="w-100 p-5" src="https://via.placeholder.com/1080" style="border-radius: 80px;">
        </div>
        <div class="col col-12 col-md-4">
            <img class="w-100 p-5" src="https://via.placeholder.com/1080" style="border-radius: 80px;">
        </div>
        <div class="col col-12 col-md-4">
            <img class="w-100 p-5" src="https://via.placeholder.com/1080" style="border-radius: 80px;">
        </div>
    </div>
</div>

请记住,如果您设置对象的高度或宽度,则它会受到该限制的约束。如果删除宽度或高度,它是动态的或基于对象的。

【讨论】:

  • 感谢您的宝贵时间!这是有道理的,为什么这是一个问题。但我希望内容适合屏幕而不是用户必须滚动。有什么办法可以让它在容器仍然只填满屏幕的情况下压缩?
  • 您想要实现的目标需要大量的返工。您将需要查看 CSS GRID 或 SCALABLE CSS GRIDS - nebulab.com/blog/fully-scalable-css-grid - 您会看到这些指南不会像您使用的那样使用设置值,这会导致事情超出其界限(即您的高度是 100vh 但您的填充和其他 css 将对象推到 100vh 之外)。
  • 我发现了一个可以回答你问题的堆栈问题; stackoverflow.com/questions/51577807/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-06
  • 1970-01-01
  • 1970-01-01
  • 2020-05-15
  • 2023-03-25
  • 2022-01-12
  • 1970-01-01
相关资源
最近更新 更多